SEC EDGAR API
Resolve a company name or ticker to its CIK, then read the filer profile, filings history, any XBRL concept as a time series, or search the filing documents themselves — each a single POST returning structured JSON.
50 free credits on signup. No card required.
{ "data": { "query": "apple", "exchange": null, "total_results": 6, "limit": 10, "count": 6, "results": [ { "cik": "0000320193", "cik_number": 320193, "name": "Apple Inc.", "ticker": "AAPL", "exchange": "Nasdaq", "match": "name_prefix", "submissions_url": "https://data.sec.gov/submissions/CIK0000320193.json", "company_facts_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json" } ] }, "response_time": 640, "credits_used": 1, "credits_remaining": 4684}Live call against the real endpoint — 3 free runs, then it's your own key.
What is the Scavio SEC EDGAR API?
The Scavio SEC EDGAR API is a REST API that returns SEC filing data as structured JSON. You resolve a company name or ticker to a CIK, then send that to one of 5 further POST endpoints with your API key to get the filer profile, filings history, every value reported for one XBRL concept, the index of all concepts, or full-text search across filing documents.
- 6
- endpoints, all live in production
- 1
- credit per call, every endpoint
- CIK
- resolved from a name or ticker
Start here, then pick a lens
Resolve the filer once; filings, fundamentals and documents all key on that CIK.
Find filer
POST /api/v1/sec/lookupStart here. Turns a company name or ticker into a CIK — the zero-padded id every other EDGAR endpoint keys on, and the thing that trips up most first integrations.
XBRL concept
POST /api/v1/sec/conceptEvery value a filer has ever reported for one concept — revenue, net income, share count — newest first. A time series without parsing a single filing.
Filings
POST /api/v1/sec/filingsA filer's filings with accession number, form type and both filing and period dates, so you can separate when it was filed from what period it covers.
Full-text search
POST /api/v1/sec/searchSearch across filing documents themselves. Each hit is the matching document with its URL, which is how you find a disclosure rather than a company.
All 6 SEC EDGAR endpoints
Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Find filer (start here)/api/v1/sec/lookup | A company NAME or ticker to its CIK, with exchange | 1 |
Filer profile/api/v1/sec/company | Legal and former names, SIC industry, filer category, EIN | 1 |
Filings/api/v1/sec/filings | Accession number, form and root form, filing and period dates | 1 |
XBRL concept/api/v1/sec/concept | Every value reported for one concept — revenue, net income, shares | 1 |
Concept index/api/v1/sec/facts | Every XBRL concept a filer reports, with the SEC's own definitions | 1 |
Full-text search/api/v1/sec/search | Matching filing DOCUMENTS — URL, form and filer | 1 |
50 free credits on signup covers 50 calls of any kind. See plans
Ticker to a revenue time series
Resolve the CIK, then pull every value reported for one concept. The response on the right is a real capture, field names and all.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Step 1: name or ticker -> CIK
hits = client.sec.lookup(query="apple", limit=10)
cik = hits["data"]["results"][0]["cik"]
# Step 2: every revenue value ever reported - 1 credit
rev = client.sec.concept(cik=cik, concept="Revenues"){
"data": {
"query": "apple",
"exchange": null,
"total_results": 6,
"limit": 10,
"count": 6,
"results": [
{
"cik": "0000320193",
"cik_number": 320193,
"name": "Apple Inc.",
"ticker": "AAPL",
"exchange": "Nasdaq",
"match": "name_prefix",
"submissions_url": "https://data.sec.gov/submissions/CIK0000320193.json",
"company_facts_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json"
}
]
},
"response_time": 640,
"credits_used": 1,
"credits_remaining": 4684
}The SEC's API is free — so what does this add?
Access is not the problem here; shape is. If raw XBRL JSON suits you, use data.sec.gov directly.
data.sec.gov (free)
- No way to resolve a company name or ticker to a CIK — you must already know it
- Raw XBRL JSON with deeply nested unit and period structures
- A declared User-Agent is required, and requests are throttled without one
- Full-text search lives on a separate system with a different response shape
Scavio SEC EDGAR API
- Name or ticker resolved to CIK in a documented first call
- Normalised responses, with the SEC's own source URLs echoed so you can drop down any time
- Filings, concepts and full-text search in one consistent envelope
- Same key and JSON envelope as 30 other Scavio platforms
SEC filings are public records in the public domain. Nothing here is investment advice.
What developers build with it
Fundamental time series
The concept endpoint returns every value a filer ever reported for revenue, net income or share count, newest first. That is a financial time series without downloading or parsing a single filing.
lookup + conceptFiling alerts
Poll a filer's filings and alert on a new 8-K or 10-Q. Both the filing date and the period date come back, so you can tell a fresh disclosure from a late one.
filingsDisclosure research
Full-text search returns the matching document rather than the company, which is how you find every filing that mentions a term, a risk factor or a counterparty.
searchEntity resolution for finance data
CIK is the canonical US filer id. Resolving a name or ticker to one, with the exchange attached, is the join key that makes every other financial dataset line up.
lookup + companyAgent tools for equity research
Point an agent at the MCP server and EDGAR becomes a callable tool — what did they report, what have they filed lately — with the same key as every other Scavio platform.
MCP + RESTHow to get SEC EDGAR data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required.
- 2
Resolve the name or ticker to a CIK
Send {"query": "apple", "limit": 10} to https://api.scavio.dev/api/v1/sec/lookup. CIK is the SEC\u2019s filer id, zero-padded to ten digits, and every other endpoint keys on it.
- 3
Then read filings, concepts or documents
Each is 1 credit. company returns the filer profile, filings the submission history, concept a single XBRL metric over time, facts the index of everything reported, and search the filing documents themselves.
SEC EDGAR API FAQ
What is the Scavio SEC EDGAR API?
+
It is a REST API that returns SEC EDGAR data as structured JSON. Six POST endpoints cover filer lookup by name or ticker, the filer profile, filings history, a single XBRL concept over time, the index of every concept a filer reports, and full-text search across filing documents. You authenticate with a Scavio API key.
Who are these endpoints for?
+
Equity researchers and quant teams building fundamentals; fintech developers embedding filings; AI agent builders wiring EDGAR in as an MCP or SDK tool; automation engineers running filing alerts inside n8n, Zapier or Make; compliance teams tracking disclosures; and journalists researching companies. Same API for all of them.
Is the SEC's own API free? Why use this?
+
Yes, the SEC publishes data.sec.gov free of charge, and if you are happy working with raw XBRL JSON you should use it directly — we would rather say that than pretend otherwise. What this adds is a name-or-ticker-to-CIK resolver, normalised responses, full-text search in the same shape, and one key and envelope shared with 30 other platforms.
What is a CIK and why does it matter?
+
The Central Index Key is the SEC's identifier for a filer, zero-padded to ten digits. Nothing on EDGAR is addressable without it, and it cannot be derived from a ticker or a name, which is why the lookup endpoint exists and comes first.
What does the concept endpoint return?
+
Every value a filer has reported for one XBRL concept — Revenues, NetIncomeLoss, shares outstanding — newest first, with the period each value covers. It turns a metric into a time series without you parsing filings.
How much does a request cost?
+
Every SEC EDGAR endpoint costs 1 credit. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
What does full-text search return?
+
Documents, not companies. Each hit is the matching filing document with its URL, form type and filer, which is what you want when looking for a specific disclosure rather than a specific company.
What does the response look like?
+
The API wraps the payload under a data key and adds credits_used and credits_remaining. A lookup returns results with cik, cik_number, name, ticker, exchange, match type, and the SEC's own submissions_url and company_facts_url so you can drop to the raw source whenever you want.
Which languages and tools are supported?
+
Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoints directly with an HTTP client.
Is this data free to use?
+
SEC filings are public records and EDGAR data is in the public domain, so there are no licensing restrictions on the underlying data. Nothing here is investment advice, and you remain responsible for how you use it.
Explore more of Scavio
Companies House API
The UK statutory company register.
LinkedIn API
Profiles, companies, posts and jobs.
Google News API
Headlines, sources and ISO dates.
Glassdoor API
Employers, reviews and salary bands.
MCP server
Every platform as a callable tool for agents.
Pricing
Credit packs and plans, no per-platform surcharge.
Start pulling SEC filings today
50 free credits on signup, no card. Your first request is a POST with a ticker in it.