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.comAuthentication
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/summariesRetrieve 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/summariesSecond page of summaries:
GET /v1/summaries?page=2AAPL summaries only:
GET /v1/summaries?symbol=AAPLResponse 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-pressResponse 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-02Response 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-Remainingheader