The beatandraise.com SEC Filings API is open: get a free API key, or see plans. Questions: [email protected].

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-Key or Authorization: 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 in X-Plan and X-RateLimit-Limit.

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"}
StatuserrorMeaning
401api_key_required, invalid_api_keyNo key, or an unknown, revoked or expired one. The body and WWW-Authenticate name the page to create one.
402free_calls_usedThe free plan’s 100 calls are used.
429rate_limited, download_rate_limited, daily_download_limit, monthly_download_quotaWait Retry-After seconds.
404not_found, filing_not_found, file_not_listedNo such endpoint, filing or file; the message says which.
503unavailableRetry 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.

GET/filings?cik=&form=&from=&to=List filings by company, form type and date range, newest first.Try
GET/filing/<accession>One filing: metadata and every file it contains, with links to sec.gov.Try

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.

GET/files/<accession>The files a filing lists.Try
GET/files/<accession>/<filename>Download one file exactly as stored, or its markdown copy. Downloads count against your plan’s download limits.Try

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>/tablesThe 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.

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.

FormWhat it isFilingsServed
10-KAnnual 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,944By Item, as documents, and as XBRL statements (23 Items)
10-QQuarterly 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,464By Item, as documents, and as XBRL statements (11 Items)
8-KCurrent 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,762By Item, as documents (33 Items)
20-FAnnual 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,801As documents and XBRL statements; not yet by Item
40-FAnnual 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,154As documents and XBRL statements; not yet by Item
6-KReport 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,898As documents

Filings include amendments and transition reports (10-K/A, 10-KT, 8-K/A…).

GET/items/<accession>Where each Item of a 10-K, 10-Q or 8-K begins and ends, found by its heading, never the table of contents.Try
GET/items/<accession>/<item>One Item’s text (Risk Factors, MD&A, Item 2.02…), as markdown or HTML.Try

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.

FormForm typesXML filingsFields
Forms 3, 4 and 5: insider ownership3, 3/A, 4, 4/A, 5, 5/A5,200,108735
Form 13F: institutional investment managers13F-HR, 13F-HR/A, 13F-NT, 13F-NT/A410,757100
Form 144: proposed sales of restricted securities144, 144/A127,67086
Form D: exempt offeringsD, D/A781,433175
Schedules 13D and 13G: 5% ownersSCHEDULE 13D, SCHEDULE 13D/A, SCHEDULE 13G, SCHEDULE 13G/A59,457217
Form N-PX: proxy voting recordsN-PX, N-PX/A33,946148
Form N-CEN: annual report of registered fundsN-CEN, N-CEN/A28,949862
Form N-CR: money market fund eventsN-CR2124
Form 24F-2: annual notice of fund securities sold24F-2NT, 24F-2NT/A24,316120
Form X-17A-5: broker-dealer annual reportsX-17A-5, X-17A-5/A17,62467
Form 25-NSE: removal from listing25-NSE, 25-NSE/A16,70576
Form C: Regulation CrowdfundingC, C/A, C-U, C-U-W, C-AR, C-AR/A, C-AR-W, C-TR, C-TR-W, C-W36,505115
Forms 1-A, 1-K and 1-Z: Regulation A1-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-W13,194314
Form MA: municipal advisorsMA, MA/A, MA-A, MA-I, MA-I/A, MA-W34,7853,560
Forms TA-1, TA-2 and TA-W: transfer agentsTA-1, TA-1/A, TA-2, TA-2/A, TA-W11,927504
Form ATS-N: alternative trading systemsATS-N, ATS-N/MA, ATS-N/UA, ATS-N/CA, ATS-N/OFA, ATS-N-C, ATS-N-W1,212528
Form Funding Portal: crowdfunding portalsCFPORTAL, CFPORTAL/A, CFPORTAL-W821588
Forms SBSE: security-based swap dealersSBSE, SBSE/A, SBSE-A, SBSE-A/A, SBSE-BD, SBSE-BD/A, SBSE-C, SBSE-W7491,708
Form SBSEF: security-based swap execution facilitiesSBSEF, SBSEF/A, SBSEF-W25180
Form 1: national securities exchanges1, 1/A0383

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|xmlEvery 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|quarterlyThe 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.

GET/holdings/<cik>?period=A 13F manager’s positions for a quarter, with values in dollars.Try
GET/institutional-holders/<cik>Who holds a company: % of each share class held by 13F filers by quarter, top holders, buyers and sellers, 5% holders.Try

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/sicThe 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-citationsCheck 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.

GET/filings?item=5.02&from=&to=Every 8-K whose header lists one of those Items, across all companies (form defaults to 8-K, 8-K/A).Try
GET/filings?item=&item_text=MD&A,1A,5.02Adds each filing’s text of those Items (any 10-K, 10-Q or 8-K): up to 25 filings and 500,000 characters a page.Try

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

Plan and status

GET/accountYour plan, limits and this month’s usage.Try
GET/statusService status and how fresh the data is.Try

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