EarningsHub APIearningshub.com ↗
Access upcoming and reported earnings data via the EarningsHub API. Get EPS estimates, actuals, revenue figures, and report timing for public companies.
What is the EarningsHub API?
The EarningsHub API exposes two endpoints covering the earnings calendar and recent results for publicly traded companies. get_upcoming_earnings returns structured records for companies scheduled to report within the next 30 days, including EPS and revenue estimates, while get_reported_earnings delivers the same fields plus actuals for companies that reported in the past 30 days. Each response includes a count, a date range object, and a sortable array of earnings entries.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/2f15267d-2491-4111-ba2c-ce7eb2e52e47/get_upcoming_earnings?end_date=%3CYYYY-MM-DD%3E&start_date=%3CYYYY-MM-DD%3E' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace earningshub-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""EarningsHub SDK — upcoming and reported earnings walkthrough."""
from parse_apis.earningshub_earnings_data_api import EarningsHub, UpcomingEarning, ReportedEarning, UpstreamError
client = EarningsHub()
# Fetch upcoming earnings (next 30 days), capped at 5 items
for earning in client.earningscalendars.upcoming(limit=5):
print(earning.ticker, earning.company_name, earning.report_date, earning.eps_estimate)
# Drill into the first reported earning from the past 30 days
reported = client.earningscalendars.reported(limit=1).first()
if reported:
print(reported.ticker, reported.company_name, reported.eps_actual, reported.revenue_actual)
# Typed error handling around a call
try:
for item in client.earningscalendars.reported(limit=3):
print(item.ticker, item.report_date, item.eps_estimate, item.eps_actual)
except UpstreamError as exc:
print(f"upstream issue: {exc}")
print("exercised: earningscalendars.upcoming / earningscalendars.reported")Extract upcoming earnings data for entries with a report_date between today and 30 days from today. Returns ticker, company_name, report_date, report_time, quarter, eps_estimate, and revenue_estimate for each entry, sorted by report_date then ticker. No input parameters required — the date window is always relative to today.
No input parameters required.
{
"type": "object",
"fields": {
"count": "integer - total number of upcoming earnings entries",
"date_range": "object with start and end date strings in YYYY-MM-DD format",
"upcoming_earnings": "array of earnings entry objects with ticker, company_name, report_date, report_time, quarter, eps_estimate, revenue_estimate"
},
"sample": {
"data": {
"count": 332,
"date_range": {
"end": "2026-07-11",
"start": "2026-06-11"
},
"upcoming_earnings": [
{
"ticker": "ACB",
"quarter": "Q4 2026",
"report_date": "2026-06-11",
"report_time": "Before Market Open",
"company_name": "Aurora Cannabis Inc",
"eps_estimate": -0.07,
"revenue_estimate": 55290000
},
{
"ticker": "ADBE",
"quarter": "Q2 2026",
"report_date": "2026-06-11",
"report_time": "After Market Close",
"company_name": "Adobe Systems Incorporated",
"eps_estimate": 5.6,
"revenue_estimate": 6453117928
}
]
},
"status": "success"
}
}About the EarningsHub API
Upcoming Earnings Calendar
get_upcoming_earnings returns a upcoming_earnings array covering companies with a report_date between today and 30 days out. Each entry carries ticker, company_name, report_date (YYYY-MM-DD), report_time (indicating before-market, after-market, or unconfirmed), quarter, eps_estimate, and revenue_estimate. The response also includes a top-level count integer and a date_range object with start and end strings, making it straightforward to verify the window covered. Results are sorted by report_date then ticker.
Recently Reported Earnings
get_reported_earnings covers the trailing 30-day window and only includes entries where at least one actual value — eps_actual or revenue_actual — is present. Each object extends the upcoming-earnings shape with those two actuals alongside their corresponding estimate fields (eps_estimate, revenue_estimate). This lets you compute beat/miss figures directly from the response without secondary lookups. The response follows the same envelope structure: count, date_range, and a reported_earnings array.
Data Shape and Coverage
Both endpoints require no input parameters — the 30-day windows are computed server-side relative to the current date. Null values appear for fields not yet populated (for example, eps_estimate may be null for thinly-covered names). Revenue figures are returned as numeric values in consistent units. Neither endpoint paginates; the full window is returned in a single response.
The EarningsHub API is a managed, monitored endpoint for earningshub.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when earningshub.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official earningshub.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build an earnings calendar widget that groups upcoming reports by
report_dateand highlights pre- vs. post-marketreport_time. - Screen for upcoming earnings beats by comparing
eps_estimateagainst historicaleps_actualvalues fromget_reported_earnings. - Alert traders when a tracked
tickerappears in the upcoming earnings array within a configurable number of days. - Calculate EPS surprise percentage using
eps_estimateandeps_actualfields fromget_reported_earnings. - Populate a dashboard comparing
revenue_estimatevs.revenue_actualacross recently reporting companies. - Filter the reported earnings array by
quarterto group results for a specific fiscal period. - Cross-reference
report_timewith trading hours logic to schedule pre-market or after-hours event handling.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does EarningsHub offer an official developer API?+
What does get_reported_earnings return that get_upcoming_earnings does not?+
get_reported_earnings adds eps_actual and revenue_actual to each entry, and only includes records where at least one of those actuals is populated. get_upcoming_earnings contains only estimate fields since results have not yet been released.Can I query earnings data for a specific ticker or date beyond the 30-day windows?+
Are historical earnings results (older than 30 days) available?+
get_reported_earnings covers only the past 30 days where actuals are present. You can fork the API on Parse and revise it to add an endpoint targeting a longer historical window.How fresh is the earnings data, and can estimate values be null?+
get_reported_earnings are only present once EarningsHub records them after a company reports.