Structured financial data from SEC EDGAR filings — 10-Q, 10-K, and 8-K earnings releases.
Base URL:
Fetch Apple's Q1 2025 financials:
curl "https://financialmodelupdater.com/api/financials?ticker=AAPL&year=2025&quarter=1&key=YOUR_KEY"
Response:
{
"status": "success",
"metadata": {
"ticker": "AAPL",
"year": 2025,
"quarter": 1,
"source": { "filing_type": "10-Q" }
},
"facts": [
{
"metric": "Revenue",
"value": 124300000000,
"unit": "USD"
}
]
}
All requests require a key query parameter. There are three access tiers:
| Tier | How to get | Rate limit |
|---|---|---|
| Public | No key required (default) | 5 requests / 7 days |
| Registered | Sign up at financialmodelupdater.com | 6 requests / 7 days |
| Paid | Contact feedback@henrychien.com | 500 requests / 7 days |
Example: /api/financials?ticker=AAPL&year=2025&quarter=1&key=YOUR_KEY
Omitting the key uses the public tier. Invalid keys return 401.
Returns all extracted financial facts from a company's SEC filing for a given period.
| Name | Type | Description | |
|---|---|---|---|
key | string | optional | API key. Defaults to public tier. |
ticker | string | required | Stock ticker symbol (e.g. AAPL) |
year | integer | required | Fiscal year (e.g. 2025) |
quarter | integer | required | Fiscal quarter (1–4) |
full_year_mode | string | optional | Set to "true" for full-year (10-K) data |
source | string | optional | Set to "8k" to extract from 8-K earnings release instead of 10-Q/10-K |
curl "https://financialmodelupdater.com/api/financials?ticker=MSFT&year=2025&quarter=2&key=YOUR_KEY"
{
"status": "success",
"metadata": {
"ticker": "MSFT",
"year": 2025,
"quarter": 2,
"source": { "filing_type": "10-Q" }
},
"facts": [
{
"metric": "Revenue",
"value": 69600000000,
"unit": "USD"
},
{
"metric": "Net Income",
"value": 24100000000,
"unit": "USD"
}
]
}
| Status | Reason |
|---|---|
400 | Invalid or missing ticker, year, or quarter |
401 | Invalid API key |
429 | Rate limit exceeded or server busy |
502 | Extraction failed |
503 | SEC temporarily unavailable |
Returns a list of SEC filings (10-Q, 10-K, 8-K) available for a company in a given period.
| Name | Type | Description | |
|---|---|---|---|
key | string | optional | API key. Defaults to public tier. |
ticker | string | required | Stock ticker symbol |
year | integer | required | Fiscal year |
quarter | integer | required | Fiscal quarter (1–4) |
curl "https://financialmodelupdater.com/api/filings?ticker=AAPL&year=2025&quarter=1&key=YOUR_KEY"
{
"status": "success",
"filings": [
{
"filing_type": "10-Q",
"filing_date": "2025-01-31",
"url": "https://www.sec.gov/Archives/...",
"accession_number": "0000320193-25-000012"
},
{
"filing_type": "8-K",
"filing_date": "2025-01-30",
"url": "https://www.sec.gov/Archives/...",
"accession_number": "0000320193-25-000011"
}
]
}
| Status | Reason |
|---|---|
400 | Invalid or missing ticker, year, or quarter |
401 | Invalid API key |
429 | Rate limit exceeded |
500 | Server error |
Returns a single financial metric by name from a company's filing. Useful for targeted lookups without fetching the full data set.
| Name | Type | Description | |
|---|---|---|---|
key | string | optional | API key. Defaults to public tier. |
ticker | string | required | Stock ticker symbol |
year | integer | required | Fiscal year |
quarter | integer | required | Fiscal quarter (1–4) |
metric_name | string | required | Name of the metric (e.g. "Revenue", "Net Income") |
full_year_mode | string | optional | Set to "true" for full-year data |
source | string | optional | Set to "8k" for 8-K earnings data |
date_type | string | optional | Date type filter for the metric |
curl "https://financialmodelupdater.com/api/metric?ticker=AAPL&year=2025&quarter=1&metric_name=Revenue&key=YOUR_KEY"
{
"status": "success",
"ticker": "AAPL",
"metric_name": "Revenue",
"value": 124300000000,
"unit": "USD",
"year": 2025,
"quarter": 1,
"source": "10-Q"
}
| Status | Reason |
|---|---|
400 | Invalid or missing parameters, or missing metric_name |
401 | Invalid API key |
429 | Rate limit exceeded or server busy |
500 | Server error |
Returns parsed qualitative sections from 10-K/10-Q filings — Risk Factors, MD&A, Business description, and more.
| Name | Type | Description | |
|---|---|---|---|
key | string | optional | API key. Defaults to public tier. |
ticker | string | required | Stock ticker symbol |
year | integer | required | Fiscal year |
quarter | integer | required | Fiscal quarter (1–4) |
sections | string | optional | Comma-separated section IDs to return (e.g. "1A,7"). Omit for all sections. |
format | string | optional | "summary" (default) or "full" |
max_words | integer | optional | Max words per section (default 3000) |
curl "https://financialmodelupdater.com/api/sections?ticker=AAPL&year=2025&quarter=1§ions=1A,7&format=summary&key=YOUR_KEY"
{
"status": "success",
"ticker": "AAPL",
"year": 2025,
"quarter": 1,
"sections": {
"1A": {
"title": "Risk Factors",
"text": "The Company's business, reputation, results of operations...",
"word_count": 2847
},
"7": {
"title": "Management's Discussion and Analysis",
"text": "The following discussion should be read in conjunction...",
"word_count": 3000
}
}
}
| Status | Reason |
|---|---|
400 | Invalid parameters or invalid format value |
401 | Invalid API key |
429 | Rate limit exceeded or server busy |
500 | Server error |
Rate limits are applied per API key on a rolling 7-day window. Only successful responses (200) count against your limit.
| Tier | Requests | Window |
|---|---|---|
| Public | 5 | 7 days |
| Registered | 6 | 7 days |
| Paid | 500 | 7 days |
When a request is already processing (server is single-threaded for SEC extraction), you may receive a 429 with a "please try again shortly" message. Paid-tier keys get priority queuing.