SEC Filings API documentation
Three parts: the filings as filed, the structured data we build from them, and queries across companies. Plans are on the SEC Filings API page; to run any endpoint with your key, use the explorer.
Getting started
All under https://beatandraise.com/api/v1, JSON over HTTPS, authenticated with your API key in an X-API-Key or Authorization: Bearer header. Every result drawn from a filing carries its source: the file on sec.gov, the filing index, and a ready-made citation.
curl -H "X-API-Key: $BEATANDRAISE_KEY" \ "https://beatandraise.com/api/v1/filings?cik=320193&form=10-K&limit=1"
Response (shortened)
{
"count": 1,
"filings": [
{
"accession_number": "0000320193-25-000079",
"cik": "0000320193",
"company_name": "Apple Inc.",
"content_object": [
{
"description": "10-K",
"doc_type": "10-K",
"filename": "aapl-20250927.htm",
"markdown_exists": 1,
"sequence": "1",
"url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm"
}
],
"filing_date": "2025-10-31T00:00:00Z",
"form": "10-K",
"source": {
"sec_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
"filing_index_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm",
"beatandraise_url": "https://beatandraise.com/cik/0000320193/accessionNumber/0000320193-25-000079/aapl-20250927.htm",
"citation": "Apple Inc., Form 10-K, filed 2025-10-31, https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm"
},
"sec_base_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/",
"beatandraise_base_url": "https://beatandraise.com/cik/0000320193/accessionNumber/0000320193-25-000079/"
}
]
}- Base URL
https://beatandraise.com/api/v1- Auth
- Your key in
X-API-KeyorAuthorization: Bearer. Never in the URL. - Format
- JSON. Documents as markdown or HTML; original files byte for byte.
- Free
- 100 successful calls per account, 10 requests a second. A failed call is not counted.
- Limits
- 429 with
Retry-After; your plan inX-PlanandX-RateLimit-Limit. - Spec
- OpenAPI 3.1, llms.txt, llms-full.txt
The OpenAPI 3.1 specification (Postman, client generators, agents); for language models, llms.txt and llms-full.txt. Keys are on the API keys page.
Errors
A refused request (key, plan, limits) is JSON with a code to branch on and a sentence to show:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: ApiKey realm="beatandraise.com", header="X-API-Key", uri="https://beatandraise.com/api-keys"
{"error": "api_key_required",
"message": "An API key is required. Create one (free) at https://beatandraise.com/api-keys and send it in the X-API-Key header.",
"create_key_url": "https://beatandraise.com/api-keys"}| Status | error | Meaning |
|---|---|---|
| 401 | api_key_required, invalid_api_key | No key, or an unknown, revoked or expired one. The body and WWW-Authenticate name the page to create one. |
| 402 | free_calls_used | The free plan’s 100 calls are used. |
| 429 | rate_limited, download_rate_limited, daily_download_limit, monthly_download_quota | Wait Retry-After seconds. |
| 404 | not_found, filing_not_found, file_not_listed | No such endpoint, filing or file; the message says which. |
| 503 | unavailable | Retry shortly. |
As filed
What the SEC holds, as the filer submitted it: every filing since 1993, every file in it, byte for byte. Nothing here is interpreted; documents also come as a clean markdown copy.
Filings
Every filing on EDGAR since 1993, about 18.8 million, under the accession number the SEC gave it. A filing carries its company, form type, dates and the list of files in it.
Files and downloads
The files of a filing as the filer submitted them: the main document, exhibits, XML, XBRL, images and PDFs. Only files the filing lists can be downloaded.
Documents
Any document as HTML as filed, or as a markdown copy that keeps its paragraphs, headings and tables, with the links to its source on sec.gov.
| GET | /document/<cik>/<accession>/<filename> | A document as markdown or HTML, with its source links. | Try |
XBRL pages (R-pages)
The pages of the SEC's XBRL viewer for a filing, from its FilingSummary.xml. Which page is which financial statement is under Financial statements.
| GET | /filing/<accession>/tables | The XBRL financial-table pages SEC renders for a filing: cover, statements, notes and details, each with its title. | Try |
Structured
What we build from the filings: search, Items found by their headings, every XML form as JSON, statements from XBRL, insiders, holdings and share counts. Every value is as filed and names the filing it came from.
Search
Full-text search over the documents, and a grep of one filing or document with lines of context. To search across companies by Item or text, see Query.
| GET | /search?q=&form=&cik=&year= | Full-text search across filing documents since 2020 (not Forms 3/4/5, 144, 13F, N-PORT or D, which are served as data). | Try |
| GET | /document/search/<cik>/<accession>?q= | Search every document of one filing; matching lines with context. | Try |
| GET | /document/search/<cik>/<accession>/<filename>?q= | Search one document. | Try |
Items of 10-K, 10-Q, 8-K
Reports are filed as documents, not XML. For 10-K, 10-Q and 8-K the API finds each Item by its heading (never the table of contents) and serves any one of them. Each form's page lists its Items and what the SEC requires under them.
| Form | What it is | Filings | Served |
|---|---|---|---|
| 10-K | Annual report. The annual report every US-listed company files within 60 to 90 days of its fiscal year end: the business, its risks, management's discussion of the results, audited financial statements, controls, and governance. Divided by the SEC into four Parts and 23 numbered Items, in a fixed order. | 297,944 | By Item, as documents, and as XBRL statements (23 Items) |
| 10-Q | Quarterly report. The report for each of the first three fiscal quarters, filed within 40 to 45 days of quarter end: unaudited financial statements, management's discussion of the quarter, and what changed since the 10-K. Part I holds the financial information, Part II the other information; both have an Item 1, so Items are named by Part. | 743,464 | By Item, as documents, and as XBRL statements (11 Items) |
| 8-K | Current report. The report of a material event, filed within four business days of it: an acquisition, an earnings release, a change of auditor, an executive's departure, a shareholder vote. Each kind of event is an Item, numbered by section (1 for business and operations, 2 for financial information, through 9 for exhibits); a filing contains only the Items it reports, usually one or two plus 9.01. | 2,119,762 | By Item, as documents (33 Items) |
| 20-F | Annual report of a foreign private issuer. The annual report of a foreign company listed in the US, filed within four months of year end. Its 19 Items follow international disclosure standards rather than Regulation S-K, and its financial statements may be in IFRS. | 25,801 | As documents and XBRL statements; not yet by Item |
| 40-F | Annual report of a Canadian issuer. The annual report of an eligible Canadian company under the multijurisdictional disclosure system: a wrapper around the documents it files in Canada (annual information form, audited statements, MD&A), usually as exhibits. | 4,154 | As documents and XBRL statements; not yet by Item |
| 6-K | Report of a foreign private issuer. Whatever a foreign private issuer publishes, files or sends to shareholders at home: interim results, press releases, meeting notices. It has no Items; the content is the attached documents. | 578,898 | As documents |
Filings include amendments and transition reports (10-K/A, 10-KT, 8-K/A…).
XML forms as JSON
One page per SEC XML form family: what the form is, how many filings EDGAR holds, every field the SEC defines, and a document as filed next to the JSON the API returns for it. The JSON is the whole document and converts back to the original XML with nothing lost.
| Form | Form types | XML filings | Fields |
|---|---|---|---|
| Forms 3, 4 and 5: insider ownership | 3, 3/A, 4, 4/A, 5, 5/A | 5,200,108 | 735 |
| Form 13F: institutional investment managers | 13F-HR, 13F-HR/A, 13F-NT, 13F-NT/A | 410,757 | 100 |
| Form 144: proposed sales of restricted securities | 144, 144/A | 127,670 | 86 |
| Form D: exempt offerings | D, D/A | 781,433 | 175 |
| Schedules 13D and 13G: 5% owners | SCHEDULE 13D, SCHEDULE 13D/A, SCHEDULE 13G, SCHEDULE 13G/A | 59,457 | 217 |
| Form N-PX: proxy voting records | N-PX, N-PX/A | 33,946 | 148 |
| Form N-CEN: annual report of registered funds | N-CEN, N-CEN/A | 28,949 | 862 |
| Form N-CR: money market fund events | N-CR | 2 | 124 |
| Form 24F-2: annual notice of fund securities sold | 24F-2NT, 24F-2NT/A | 24,316 | 120 |
| Form X-17A-5: broker-dealer annual reports | X-17A-5, X-17A-5/A | 17,624 | 67 |
| Form 25-NSE: removal from listing | 25-NSE, 25-NSE/A | 16,705 | 76 |
| Form C: Regulation Crowdfunding | C, C/A, C-U, C-U-W, C-AR, C-AR/A, C-AR-W, C-TR, C-TR-W, C-W | 36,505 | 115 |
| Forms 1-A, 1-K and 1-Z: Regulation A | 1-A, 1-A/A, 1-A POS, 1-A-W, 1-A-W/A, 1-K, 1-K/A, 1-Z, 1-Z/A, 1-Z-W | 13,194 | 314 |
| Form MA: municipal advisors | MA, MA/A, MA-A, MA-I, MA-I/A, MA-W | 34,785 | 3,560 |
| Forms TA-1, TA-2 and TA-W: transfer agents | TA-1, TA-1/A, TA-2, TA-2/A, TA-W | 11,927 | 504 |
| Form ATS-N: alternative trading systems | ATS-N, ATS-N/MA, ATS-N/UA, ATS-N/CA, ATS-N/OFA, ATS-N-C, ATS-N-W | 1,212 | 528 |
| Form Funding Portal: crowdfunding portals | CFPORTAL, CFPORTAL/A, CFPORTAL-W | 821 | 588 |
| Forms SBSE: security-based swap dealers | SBSE, SBSE/A, SBSE-A, SBSE-A/A, SBSE-BD, SBSE-BD/A, SBSE-C, SBSE-W | 749 | 1,708 |
| Form SBSEF: security-based swap execution facilities | SBSEF, SBSEF/A, SBSEF-W | 25 | 180 |
| Form 1: national securities exchanges | 1, 1/A | 0 | 383 |
Not on this list yet: N-PORT and N-MFP portfolio holdings, ABS-EE asset-level data, and N-PX vote tables, which run to millions of rows a quarter. 13F positions are served under Holdings.
| GET | /form-data?cik=&form=&format=json|xml | Every filing of an XML form for a company or person, every field, convertible back to the original XML. | Try |
Private offerings (Form D)
Every field of every electronic Form D (since 2009) comes through /form-data?form=D. Offerings searched and totalled by SEC's own industry group, fund type, exemption, state and placement agent are in the MCP server today (search_private_offerings, get_private_offering). What the form holds and how to read its totals: Form D.
Financial statements
Which page of a filing is which statement comes from the statements' own XBRL, not their titles. Served filing by filing as filed; nothing is combined across filings except in the experimental period-by-period endpoint, which says how each value was found.
| GET | /statements/<cik>/<accession> | Balance sheet, income statement and cash flow from a 10-K or 10-Q’s XBRL. | Try |
| GET | /financial-history?cik=&period=annual|quarterly | The same statements from a company’s last several 10-Ks or 10-Qs in one call, filing by filing. | Try |
| GET | /get-statements?cik=&statement=income|cash_flow|balance_sheet&period=quarterly|annual&from=&to= | Experimental. One statement period by period, every value a filed XBRL fact. Quarters a filing does not report on their own (often Q4) are worked out from year-to-date figures and say so, with the filings used. | Try |
Insiders
Forms 3, 4 and 5 in full are also under XML forms, and Form 144 under Form 144.
| GET | /insider-transactions?cik=&from=&to= | Form 4 transactions; Table II (options, RSUs, convertibles) on request. | Try |
| GET | /insiders?cik=|owner=&months= | In development. Insider trading totalled for a company or one insider: open-market buys, sales and Form 144 planned sales, top buyers and sellers, the share under 10b5-1 plans. Since 2024. | Try |
Shares outstanding
Never summed across share classes. A split is listed when a later filing restates the earlier share counts.
| GET | /shares-outstanding?cik=&share_class=&from=&to= | Shares outstanding per class from every 10-K/10-Q cover page since 2009, as filed, with stock splits listed apart. | Try |
Holdings and holders (13F)
One row per 13F filer as filed, never merged; ownership per share class, against the company's own cover-page count. 5% holders come from Schedules 13D and 13G. Every field of both forms: Form 13F, Schedules 13D and 13G.
Companies and identifiers
CIKs are the SEC's identifiers; tickers come from SEC's ticker files and the companies' own cover pages, CUSIPs from Schedules 13D/G and fund holdings reports.
| GET | /company/search?q= | Find a company or fund by name or ticker. | Try |
| GET | /company/<cik> | A company: names, tickers, SIC industry, addresses, successor filings. | Try |
| GET | /identifiers?cik=|ticker=|cusip= | Given a CIK, ticker or CUSIP, the others: SEC tickers and former ones, the symbols its cover pages state, and its CUSIPs with the filings that tie them to the issuer. | Try |
| GET | /sic | The SEC’s SIC industry codes and the companies in each. | Try |
Checking figures and quotes
Built so a figure or quote from a filing can be checked and linked to the exact characters it came from.
| GET | /document/verify/<cik>/<accession>/<filename>?quote= | Confirm a sentence or figure is in the document; returns a link that highlights it. | Try |
| GET | /document/verify-figure/<cik>/<accession>[/<filename>]?value= | Find a number however it is written ("$416.2 billion" vs "416,161"). | Try |
| GET | /document/figures/<cik>/<accession>/<filename>?near= | Every number in a document with its label and a reference to its exact characters. | Try |
| POST | /check-citations | Check every cited figure in a draft and return it with footnotes to the source. | Try |
Query
Questions across companies and filings at once, rather than one filing at a time.
Items across companies
Without a cik, /filings works across every company: all 8-Ks with an officer departure (Item 5.02) last month, with the text of that Item.
Text across filings
| GET | /search?q=&form=&year= | Full-text search over every company’s filings since 2020; leave out cik to search them all. | Try |
SQL across datasets (coming)
Coming: read-only SQL over the extracted datasets (Form D first, then insiders, holdings and more), so one request can screen or total across every filer. Tell us what you would ask at [email protected].
Account
The free plan gives 100 successful requests to try the API, and Pro is unlimited; see plans. To tell us what you need, email [email protected]. The same data is free to use through the MCP server in Claude, ChatGPT, Codex and other MCP clients.
Source: SEC EDGAR. Nothing on this site is investment advice.·Terms of use·Privacy policy·Support