Quick Start
Get up and running with the Earnings API in just a few steps.
Make Your First Request
Try the API with a simple GET request to fetch the latest content.
curl "https://api.earningsapi.com/v1/summaries?page=1"
Integrate the Response
Parse the JSON response and integrate the content into your application.
[ { "id": "aapl-q2-2025-press", "symbol": "AAPL", "type": "press", "title": "Apple Reports Q2 2025 Results", "content": "Apple announced revenue of $95B, up 7% YoY...", "isoDate": "2025-05-17T21:00:00Z", "symbols": [{ "exchange": "NASDAQ", "symbol": "AAPL" }] }, { "id": "nvda-q1-2026-call", "symbol": "NVDA", "type": "call", "title": "NVIDIA Q1 FY2026 Earnings Call Summary", "content": "CEO Jensen Huang highlighted record datacenter revenue...", "isoDate": "2025-05-15T22:00:00Z", "symbols": [{ "exchange": "NASDAQ", "symbol": "NVDA" }] } ]
API Endpoints
Two simple endpoints provide complete access to all earnings content with flexible filtering and pagination.
Base URL
https://api.earningsapi.com
Authentication
To authorize your requests, add ?apikey=YOUR_API_KEY
at the end of every request.
Note: When adding the API key to your requests, ensure to use &apikey=
if other query parameters already exist in the endpoint.
List All Summaries
/v1/summaries
Retrieve a list of summaries with flexible filtering by type and symbol. Perfect for browsing and discovery.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
symbol | string | No | Stock symbol filter: AAPL , MSFT . CSV for multiple. |
page | integer | No | Page number (default: 1, min: 1) |
Example Requests
Latest summaries (first page):
GET /v1/summaries
Second page of summaries:
GET /v1/summaries?page=2
AAPL summaries only:
GET /v1/summaries?symbol=AAPL
Response Example
[ { "id": "aapl-q2-2025-press", "symbol": "AAPL", "type": "press", "title": "Apple Reports Q2 2025 Results", "content": "Apple announced revenue of $95B, up 7% YoY...", "isoDate": "2025-05-17T21:00:00Z", "symbols": [{ "exchange": "NASDAQ", "symbol": "AAPL" }] }, { "id": "nvda-q1-2026-call", "symbol": "NVDA", "type": "call", "title": "NVIDIA Q1 FY2026 Earnings Call Summary", "content": "CEO Jensen Huang highlighted record datacenter revenue...", "isoDate": "2025-05-15T22:00:00Z", "symbols": [{ "exchange": "NASDAQ", "symbol": "NVDA" }] } ]
📄 Summaries API Deep Dive
Explore detailed documentation, advanced examples, and use cases for the Summaries endpoints.
Get Summary by ID
/v1/summaries/{id}
Retrieve the full summary of a specific article including complete text and metadata.
Path Parameters
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Yes | Unique content identifier (e.g., "aapl-q2-2025-press") |
Example Request
GET /v1/summaries/aapl-q2-2025-press
Response Example
{ "id": "aapl-q2-2025-press", "symbol": "AAPL", "type": "press", "title": "Apple Reports Q2 2025 Results", "content": "Apple (NASDAQ:AAPL) reported revenue of $95B, up 7% YoY. Net income ...", "isoDate": "2025-05-17T21:00:00Z", "symbols": [{ "exchange": "NASDAQ", "symbol": "AAPL" }] }
📄 Summaries API Deep Dive
Explore detailed documentation, advanced examples, and use cases for the Summaries endpoints.
Get Earnings Calendar
/v1/calendar/{yyyy-mm-dd}
Retrieve earnings calendar for a specific date, including companies scheduled to report earnings before market open, after market close, and during trading hours.
Path Parameters
Parameter | Type | Required | Description |
---|---|---|---|
yyyy-mm-dd | string | Yes | Date in YYYY-MM-DD format (e.g., "2025-07-02") |
Example Request
GET /v1/calendar/2025-07-02
Response Example
{ "date": "2025-07-02", "pre": [ { "lastYearRptDt": "6/26/2024", "lastYearEPS": "$2.19", "time": "time-pre-market", "symbol": "UNF", "name": "Unifirst Corporation", "marketCap": 3494292442, "fiscalQuarterEnding": "May/2025", "epsForecast": "$2.12", "noOfEsts": "1" } ], "after": [ { "lastYearRptDt": "6/26/2024", "lastYearEPS": "$0.43", "time": "time-after-hours", "symbol": "FC", "name": "Franklin Covey Company", "marketCap": 296379885, "fiscalQuarterEnding": "May/2025", "epsForecast": "($0.08)", "noOfEsts": "3" } ], "notSupplied": [ { "lastYearRptDt": "5/01/2024", "lastYearEPS": "$0.12", "time": "time-not-supplied", "symbol": "HLN", "name": "Haleon plc", "marketCap": 46686825025, "fiscalQuarterEnding": "Mar/2025", "epsForecast": "", "noOfEsts": "N/A" } ] }
Response Fields
Field | Type | Description |
---|---|---|
date | string | Date in YYYY-MM-DD format |
pre | array | Companies reporting before market open |
after | array | Companies reporting after market close |
notSupplied | array | Companies with unspecified reporting times |
📅 Calendar API Deep Dive
Explore detailed documentation, advanced examples, and use cases for the Calendar endpoint.
SDKs & Code Examples
Integration examples in popular programming languages.
JavaScript / Node.js
Get Summaries
const response = await fetch('https://api.earningsapi.com/v1/summaries?apikey=YOUR_API_KEY'); const data = await response.json(); console.log(data);
Get Earnings Calendar
const response = await fetch('https://api.earningsapi.com/v1/calendar/2025-07-02?apikey=YOUR_API_KEY'); const calendar = await response.json(); console.log('Pre-market earnings:', calendar.pre); console.log('After-hours earnings:', calendar.after);
Python
Get Summaries
import requests response = requests.get('https://api.earningsapi.com/v1/summaries?apikey=YOUR_API_KEY') data = response.json() print(data)
Get Earnings Calendar
import requests response = requests.get('https://api.earningsapi.com/v1/calendar/2025-07-02?apikey=YOUR_API_KEY') calendar = response.json() print(f"Pre-market earnings: {calendar['pre']}") print(f"After-hours earnings: {calendar['after']}")
cURL
Get Summaries
curl "https://api.earningsapi.com/v1/summaries?page=1&apikey=YOUR_API_KEY"
Get Earnings Calendar
curl "https://api.earningsapi.com/v1/calendar/2025-07-02?apikey=YOUR_API_KEY"
Rate Limiting
The API enforces rate limits to ensure fair usage. When you exceed the limit, you'll receive a 429 status code.
- • Default limit: 1000 requests per hour
- • Implement exponential backoff when hitting limits
- • Check the
X-RateLimit-Remaining
header