Verified factsChecked 2026-10-18
| Price | Free. The SEC says the data.sec.gov APIs need no authentication or API keys.1 [Verified 2026-10-18] |
| API key / auth | No key, but send a descriptive User-Agent (name and contact email). On 2026-10-18 our request with a contact User-Agent returned HTTP 200; with no User-Agent, or curl’s default, it returned HTTP 403.3 [Verified 2026-10-18] |
| Rate limit | No more than 10 requests per second per user in total, regardless of how many machines you use. The SEC may block IPs that send excessive requests and does not allow unclassified bots.3 [Verified 2026-10-18] |
| Terms | Automated access must follow SEC.gov’s Privacy and Security Policy and fair-access rules. The API pages publish no separate data license.1 [Verified 2026-10-18] |
| Freshness | Submissions update with a typical delay under a second and XBRL APIs under a minute after dissemination (longer at peak times). Bulk ZIPs are rebuilt nightly around 3:00 a.m. ET.1 [Verified 2026-10-18] |
| CORS | The SEC says data.sec.gov does not support CORS. Our GET with an Origin header did return Access-Control-Allow-Origin: *, but an OPTIONS preflight got HTTP 403, so plan on calling it from a server.1 [Verified 2026-10-18] |
FeaturesChecked 2026-10-18
| Capability | Value |
|---|---|
| StatusThe SEC gives no stage label; the API page was last reviewed Apr 8, 2025. | Not published1 [Not published by vendor: checked 2026-10-18 on https://www.sec.gov/search-filings/edgar-application-programming-interfaces] |
| API key requiredNo key; User-Agent required. With a contact User-Agent we got 200; with none or curl’s default, 403. | No2 [Verified 2026-10-18 by test request to https://data.sec.gov/api/xbrl/companyconcept/CIK0000320193/us-gaap/AccountsPayableCurrent.json] |
| Free tierFree. The SEC says the APIs need no authentication or API keys. | Yes1 [Verified 2026-10-18 on https://www.sec.gov/search-filings/edgar-application-programming-interfaces] |
| Rate limitAcross all your machines; the SEC may block IPs that exceed it. | 10 requests/second per user3 [Verified 2026-10-18 on https://www.sec.gov/about/developer-resources] |
| Official MCP serverNo official MCP server. The SEC developer pages list REST APIs, RSS feeds and bulk files only. | No3 [Verified 2026-10-18 on https://www.sec.gov/about/developer-resources] |
| Official SDKPlain JSON over HTTPS. No SEC client library is published. | No3 [Verified 2026-10-18 on https://www.sec.gov/about/developer-resources] |
| Data license / termsThe API pages publish no data license; access must follow SEC.gov’s Privacy and Security Policy and fair-access rules. | Not published1 [Not published by vendor: checked 2026-10-18 on https://www.sec.gov/search-filings/edgar-application-programming-interfaces] |
| Commercial use allowedThe SEC does not state rules for commercial reuse on its API pages. | Not published1 [Not published by vendor: checked 2026-10-18 on https://www.sec.gov/search-filings/edgar-application-programming-interfaces] |
| CORS / browser useNot supported (per SEC). GET returned Access-Control-Allow-Origin: *, but our OPTIONS preflight got 403 and the SEC says CORS is unsupported. | No1 [Verified 2026-10-18 on https://www.sec.gov/search-filings/edgar-application-programming-interfaces] |
| Freshness / coverageSubmissions under a second, XBRL under a minute after dissemination; ZIPs around 3:00 a.m. ET. | Real time; bulk ZIPs nightly1 [Verified 2026-10-18 on https://www.sec.gov/search-filings/edgar-application-programming-interfaces] |
What it does
The SEC’s data.sec.gov APIs return JSON straight from EDGAR. submissions/CIK##########.json lists a filer’s names, tickers, exchanges and recent filings (at least a year or 1,000 filings, with links to older pages). The XBRL APIs return reported financial facts: companyconcept (one company, one tag), companyfacts (every tag for one company) and frames (one tag across all companies for a calendar period). Everything updates as filings are disseminated, and nightly ZIP bundles cover bulk needs. This is reported data, not advice: agents should quote the filing, form and period behind every number.
Working exampleRun 2026-10-18
curl -sS "https://data.sec.gov/api/xbrl/companyconcept/CIK0000320193/us-gaap/AccountsPayableCurrent.json" \ -A "YourApp research you@example.com"
Response (trimmed)
HTTP 200 (application/json), run 2026-10-18
{"cik":320193,"taxonomy":"us-gaap","tag":"AccountsPayableCurrent","label":"Accounts Payable, Current",
"entityName":"Apple Inc.","units":{"USD":[ ...142 facts...,
{"end":"2026-06-27","val":64525000000,"accn":"0000320193-26-000020","fy":2026,"fp":"Q3",
"form":"10-Q","filed":"2026-07-31","frame":"CY2026Q2I"}]}}Agent setup
Prompt to give your agent
Use the SEC EDGAR APIs with a User-Agent of "<your app> <contact email>". Look up the company's 10-digit CIK first (pad with leading zeros), then use companyconcept or companyfacts for the figures. For every number, give the form, fiscal period, period end date and accession number. Stay under 10 requests a second. Report what was filed; do not give investment advice.
Agent / MCP-style tool snippet
// Minimal agent tool (OpenAI/Anthropic function-calling style)
{
"name": "sec_company_concept",
"description": "Reported XBRL values for one company and one us-gaap tag from SEC EDGAR (data.sec.gov).",
"input_schema": {
"type": "object",
"properties": {
"cik": { "type": "string", "description": "10-digit CIK with leading zeros, e.g. 0000320193" },
"tag": { "type": "string", "description": "us-gaap tag, e.g. AccountsPayableCurrent" }
},
"required": ["cik", "tag"]
}
}
// Implementation: GET https://data.sec.gov/api/xbrl/companyconcept/CIK{cik}/us-gaap/{tag}.json
// with header User-Agent: "<app> <contact email>"Fit and safety
Good for
- Pulling reported revenue, cash or debt for a company into an analysis
- Watching a company’s newest filings
- Comparing one reported metric across all filers for a quarter with frames
Watch out
- Do not call it from a browser app. The SEC says data.sec.gov does not support CORS; proxy through your server.
- Do not crawl it in parallel from many machines. The 10-requests-a-second limit is per user across all machines; use the nightly bulk ZIPs for large pulls.
- Do not expect non-U.S. filers that don’t file with the SEC, or custom company tags. The XBRL APIs only aggregate standard taxonomies (us-gaap, ifrs-full, dei, srt).
- Do not present the numbers as investment advice. They are what companies reported.
Alternatives
| FinancialFilings MCP | Filings from 60 markets including Europe and Japan, as Markdown, through a hosted MCP with a free account. |
| OpenFIGI API | Free identifier mapping (tickers to FIGIs) to pair with EDGAR data. |
| DexPaprika API | Keyless market data for crypto tokens, which EDGAR does not cover. |
FAQ
Does the SEC EDGAR API need an API key?
No. data.sec.gov needs no key, but requests without a descriptive User-Agent were refused with HTTP 403 in our test.
What is the SEC EDGAR rate limit?
No more than 10 requests per second per user, across all of your machines.
Can I call data.sec.gov from the browser?
The SEC says it does not support CORS. In our test a preflight request was refused, so call it from a server.
Compare
Put SEC EDGAR APIs (data.sec.gov) side by side with other free agent tools on keys, limits, MCP support, licensing and CORS. Open the comparison grid →
SourcesFootnotes
- 1sec.gov/search-filings/edgar-application-programming-interfacesVerified 2026-10-18
- 2data.sec.gov/api/xbrl/companyconcept/CIK0000320193/us-gaap/AccountsPayabTested 2026-10-18
- 3sec.gov/about/developer-resourcesVerified 2026-10-18