EDGAR Filings API

Structured financial data from SEC EDGAR filings — 10-Q, 10-K, and 8-K earnings releases.

Quick Start

Base URL:

https://financialmodelupdater.com

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"
    }
  ]
}

Authentication

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.

Endpoints

GET /api/financials

Returns all extracted financial facts from a company's SEC filing for a given period.

Parameters

NameTypeDescription
keystringoptionalAPI key. Defaults to public tier.
tickerstringrequiredStock ticker symbol (e.g. AAPL)
yearintegerrequiredFiscal year (e.g. 2025)
quarterintegerrequiredFiscal quarter (14)
full_year_modestringoptionalSet to "true" for full-year (10-K) data
sourcestringoptionalSet to "8k" to extract from 8-K earnings release instead of 10-Q/10-K

Example Request

curl "https://financialmodelupdater.com/api/financials?ticker=MSFT&year=2025&quarter=2&key=YOUR_KEY"

Example Response

{
  "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"
    }
  ]
}

Error Responses

StatusReason
400Invalid or missing ticker, year, or quarter
401Invalid API key
429Rate limit exceeded or server busy
502Extraction failed
503SEC temporarily unavailable
GET /api/filings

Returns a list of SEC filings (10-Q, 10-K, 8-K) available for a company in a given period.

Parameters

NameTypeDescription
keystringoptionalAPI key. Defaults to public tier.
tickerstringrequiredStock ticker symbol
yearintegerrequiredFiscal year
quarterintegerrequiredFiscal quarter (14)

Example Request

curl "https://financialmodelupdater.com/api/filings?ticker=AAPL&year=2025&quarter=1&key=YOUR_KEY"

Example Response

{
  "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"
    }
  ]
}

Error Responses

StatusReason
400Invalid or missing ticker, year, or quarter
401Invalid API key
429Rate limit exceeded
500Server error
GET /api/metric

Returns a single financial metric by name from a company's filing. Useful for targeted lookups without fetching the full data set.

Parameters

NameTypeDescription
keystringoptionalAPI key. Defaults to public tier.
tickerstringrequiredStock ticker symbol
yearintegerrequiredFiscal year
quarterintegerrequiredFiscal quarter (14)
metric_namestringrequiredName of the metric (e.g. "Revenue", "Net Income")
full_year_modestringoptionalSet to "true" for full-year data
sourcestringoptionalSet to "8k" for 8-K earnings data
date_typestringoptionalDate type filter for the metric

Example Request

curl "https://financialmodelupdater.com/api/metric?ticker=AAPL&year=2025&quarter=1&metric_name=Revenue&key=YOUR_KEY"

Example Response

{
  "status": "success",
  "ticker": "AAPL",
  "metric_name": "Revenue",
  "value": 124300000000,
  "unit": "USD",
  "year": 2025,
  "quarter": 1,
  "source": "10-Q"
}

Error Responses

StatusReason
400Invalid or missing parameters, or missing metric_name
401Invalid API key
429Rate limit exceeded or server busy
500Server error
GET /api/sections

Returns parsed qualitative sections from 10-K/10-Q filings — Risk Factors, MD&A, Business description, and more.

Parameters

NameTypeDescription
keystringoptionalAPI key. Defaults to public tier.
tickerstringrequiredStock ticker symbol
yearintegerrequiredFiscal year
quarterintegerrequiredFiscal quarter (14)
sectionsstringoptionalComma-separated section IDs to return (e.g. "1A,7"). Omit for all sections.
formatstringoptional"summary" (default) or "full"
max_wordsintegeroptionalMax words per section (default 3000)

Example Request

curl "https://financialmodelupdater.com/api/sections?ticker=AAPL&year=2025&quarter=1§ions=1A,7&format=summary&key=YOUR_KEY"

Example Response

{
  "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
    }
  }
}

Error Responses

StatusReason
400Invalid parameters or invalid format value
401Invalid API key
429Rate limit exceeded or server busy
500Server error

Rate Limits

Rate limits are applied per API key on a rolling 7-day window. Only successful responses (200) count against your limit.

TierRequestsWindow
Public57 days
Registered67 days
Paid5007 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.