EDGAR API documentation for source-backed filing data.
Query SEC filing facts, dimensional breakouts, filing sections, structured tables, metric series, and premium extraction caches from a single API. The tool matrix below is generated from the canonical launch manifest.
Production endpoint
All public endpoints live under /api/*. This page groups the
route families, the shared playground, MCP access, and the OpenAPI docs.
Make your first request
Use an API key in the query string for simple scripts, or send
Authorization: Bearer when you want Swagger, the playground, and
modern HTTP clients to share the same auth pattern.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.edgarparser.com/api/metric?ticker=AAPL&year=2025&quarter=1&metric_name=Revenue&date_type=Q"
import requests
API_KEY = "YOUR_API_KEY"
response = requests.get(
"https://www.edgarparser.com/api/metric",
headers={"Authorization": f"Bearer {API_KEY}"},
params={
"ticker": "AAPL",
"year": 2025,
"quarter": 1,
"metric_name": "Revenue",
"date_type": "Q",
},
timeout=30,
)
print(response.json())
Run a live request against the public API
The shared demo key is cache-only and intended for quick inspection. Try
AAPL, MSFT, or NVDA for the best chance of a warm cache hit.
Query param or Bearer header
Both auth styles are supported. If you send both on the same request, the Bearer header wins and the query-string key is ignored.
curl "https://www.edgarparser.com/api/financials?ticker=AAPL&year=2025&quarter=1&key=YOUR_API_KEY"
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://www.edgarparser.com/api/financials?ticker=AAPL&year=2025&quarter=1"
Empty or whitespace-only Bearer tokens resolve to the public tier. Non-Bearer schemes
such as Basic fall back to ?key= if you provide it.
Parser features exposed by the API
The API now exposes the same layers used by the cached company pages: source-backed XBRL facts, dimensional facts, narrative sections, structured tables, metric search, extraction caches, and cache warming.
Dimensional facts
Financial fact payloads include axis_key, structured
dimensions, source, and nested source_ref
fields so segment, geography, product-line, instrument, and other XBRL-axis
disclosures survive into API responses.
Structured filing tables
Sections can return structured table data with include_tables=true,
while /api/tables and /api/tables/search expose
table IDs, headers, rows, units, section placement, and xbrl_overlap.
Tag equivalence
Metric lookup and series requests support alias and equivalence behavior for common XBRL tag variants, including explicit split-group errors when a former group has been divided into narrower replacements.
Premium extraction search
Paid and internal clients can query cached langextract spans through
/api/extractions/search and /api/extractions/series
with schema, class, period-range, source, stale-cache, and attribute filters.
Public tool surface
This matrix is rendered from docs/tool_manifest.yaml. Per-tool
parameters, schemas, examples, and error notes live in the full reference.
| Tool | Summary | Tier | HTTP surface | Reference |
|---|---|---|---|---|
get_financials
Financials
|
Return the full structured XBRL financial fact payload for one filing period. | public |
GET /api/financials
|
Reference |
get_metric
Metric
|
Return one discovered metric or XBRL tag with current, prior, and YoY values. | public |
GET /api/metric
|
Reference |
get_metric_series
Metric Series
|
Return one metric across multiple periods with per-period cache and coverage status. | public |
GET /api/metric/series
|
Reference |
list_metrics
List Metrics
|
List exact metric candidates available in one filing period. | public |
GET /api/financials/list_metrics
|
Reference |
search_metrics
Search Metrics
|
Search filing metrics by natural-language query and return ranked exact candidates. | public |
GET /api/financials/search_metrics
|
Reference |
get_statement
Statement
|
Return a template-backed income statement, balance sheet, or cash flow statement from cached concepts. | public |
GET /api/statement
|
Reference |
get_concept
Concept
|
Resolve one registry-backed financial concept from cached filing facts. | public |
GET /api/concept
|
Reference |
compare_concept
Compare Concept
|
Compare one registry-backed concept across a caller-provided ticker set. | public |
POST /api/concept/compare
|
Reference |
concept_trend
Concept Trend
|
Return a cache-only concept time series across a requested period range. | public |
GET /api/concept/trend
|
Reference |
cite_concept
Cite Concept
|
Join a registry-backed concept value to filing prose and optional extraction evidence. | paid |
POST /api/concept/cite
|
Reference |
warm_metric_cache
Warm Metric Cache
|
Queue paid-tier background warming for metric periods before follow-up reads. | paid |
POST /api/warm
|
Reference |
warm_metric_cache_status
Warm Metric Cache Status
|
Poll a background cache-warming job returned by warm_metric_cache. | paid |
GET /api/warm/{job_id}
|
Reference |
get_tag_equivalence_registry
Tag Equivalence Registry
|
Return registry-backed XBRL tag equivalence groups for client taxonomy alignment. | public |
GET /api/tag_equivalence
|
Reference |
| Tool | Summary | Tier | HTTP surface | Reference |
|---|---|---|---|---|
get_filings
Filings
|
Return filing metadata and SEC accession details for one ticker period. | public |
GET /api/filings
|
Reference |
get_event_filings
Event Filings
|
Discover event filings by ticker, CIK, date range, form type, or query. | public |
GET /api/filings/events
|
Reference |
describe_filing
Describe Filing
|
Show cached availability for financials, sections, tables, markdown, and extractions for one filing. | public |
GET /api/filing/describe
|
Reference |
get_filing_document
Filing Document
|
Return a readable markdown filing document with section filtering and pagination. | registered |
GET /api/filing/document
|
Reference |
get_filing_sections
Filing Sections
|
Extract selected qualitative filing sections and optional embedded tables. | public |
GET /api/sections
|
Reference |
get_filing_cover_facts
Filing Cover Facts
|
Return exact DEI cover-page facts such as shares outstanding with citations. | registered |
GET /api/filing/cover-facts
|
Reference |
get_filing_evidence
Filing Evidence
|
Plan and retrieve citation-ready filing evidence for qualitative SEC questions. | paid |
POST /api/filing/evidence
|
Reference |
| Tool | Summary | Tier | HTTP surface | Reference |
|---|---|---|---|---|
get_filing_tables
Filing Tables
|
Return filing table metadata or one hydrated structured table. | public |
GET /api/tables
|
Reference |
search_filing_tables
Search Filing Tables
|
Search cached filing table metadata across a ticker and period range. | public |
GET /api/tables/search
|
Reference |
compare_filing_tables
Compare Filing Tables
|
Compare matching filing tables across multiple tickers. | public |
POST /api/tables/compare
|
Reference |
| Tool | Summary | Tier | HTTP surface | Reference |
|---|---|---|---|---|
search_filing_text
Search Filing Text
|
Search cached markdown within one filing and return matching spans. | registered |
GET /api/filing/text/search
|
Reference |
| Tool | Summary | Tier | HTTP surface | Reference |
|---|---|---|---|---|
get_filing_extractions
Filing Extractions
|
Return cached langextract spans for one filing or run paid extraction on cache miss. | paid |
POST /api/extractions
|
Reference |
search_extractions
Search Extractions
|
Search cached langextract spans across filings with structured filters. | paid |
GET /api/extractions/search
|
Reference |
get_extraction_series
Extraction Series
|
Return periodized counts and optional hits for cached langextract spans. | paid |
GET /api/extractions/series
|
Reference |
extract_filing_file
Extract Filing File
|
Ingest a trusted local markdown filing and run a selected extraction schema. | internal |
MCP only
|
Reference |
list_extraction_schemas
List Extraction Schemas
|
List document extraction schemas available to the internal document API. | internal |
GET /api/documents/schemas
|
Reference |
| Tool | Summary | Tier | HTTP surface | Reference |
|---|---|---|---|---|
get_operational_kpi_drivers
Operational KPI Drivers
|
Extract non-XBRL operational KPI values and driver growth rates from filing narrative. | paid |
GET /api/operational-kpis/drivers
|
Reference |
Tier behavior
Playground traffic is intentionally constrained. Production tiers are meant for direct client use; the shared demo key is for read-only cache inspection. MCP calls use the same API key pool and tier bucket as direct HTTP calls.
| Tier | Limit | Bucket | Notes |
|---|---|---|---|
| Public | 5 per 7 days | Per IP | No key required. |
| Registered | 20 per 7 days | Per key | Free signup tier. |
| Paid | 500 per 7 days | Per key | Paid tools, extraction caches, and warm workflows. |
| Playground | 30 per hour | Per visitor IP | Shared demo key, cache-only for warm tickers. |
MCP traffic is not a separate quota. Agents authenticate with the same key, receive the same tier permissions, and draw from the same rate-limit bucket as API requests.
Use the same API through MCP
The edgar-mcp package wraps the deployed API for agent workflows in Claude Code
and other MCP clients.
pip install edgar-mcp
Claude Code config
"edgar-financials": {
"type": "stdio",
"command": "python3",
"args": [
"/Users/henrychien/Documents/Jupyter/Edgar_updater/mcp_server.py"
],
"env": {
"EDGAR_API_KEY": "YOUR_KEY_HERE"
}
}
GitHub: henrysouchien/edgar-mcp
MCP exposes the same manifest-backed tool set shown in the matrix above, including XBRL facts, filing evidence, tables, text search, extraction caches, and operational KPI tools. MCP calls use the same API key pool as direct API requests.
Swagger UI and ReDoc
Use the generated schema for client generation, or test requests directly in Swagger UI with the Authorize button. Both the query-param key and Bearer auth are registered in the schema.
Swagger UI exposes both ApiKeyQuery and BearerAuth, so the same schema works
for copy-paste curl usage and the interactive Authorize flow.