SEC EDGAR API: Filings & XBRL Financials
Pricing
from $1.40 / 1,000 records
SEC EDGAR API: Filings & XBRL Financials
Query SEC EDGAR by ticker or CIK. Returns filing history with form types, dates and document links; XBRL financial facts for chosen concepts; or full-text search hits across all filings. Readable company data for equity research, compliance monitoring and financial datasets. No API key needed.
Pricing
from $1.40 / 1,000 records
Rating
0.0
(0)
Developer
Axiora Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
SEC EDGAR API — SEC filings, XBRL financials, full-text search
The SEC EDGAR API Actor queries the official SEC EDGAR API by ticker symbol or CIK to return filing history, XBRL financial facts, or full-text search hits. Point it at a company or a phrase and get clean, source-linked records with no API key and no login. No unofficial scraper — EDGAR's public JSON API is the source.
What you get
formType,filingDate,reportDateandaccessionNumberfor every filing, plus a workingfilingUrl.- Resolved
cik,tickerandentityNamebackfilled on every row. - XBRL financial facts with
concept,unit,value,valueNum,periodStart,periodEndandframe. isXBRL/isInlineXBRLflags so you can spot machine-readable filings at a glance.- Full-text search hits with
formType,filedDate,periodOfReportand entity metadata. - A deterministic
recordHashper row, so two daily runs diff down to just the new filings.
Quick start
- Open the Actor and leave Mode set to
filings(or pickfacts/search). - Enter one or more tickers or 10-digit CIKs in Tickers, CIKs, or search terms.
- Optionally narrow with
formTypesandfiledAfter— "the last four annual reports" is two fields. - Click Start, then read the Filings, Financial facts or Search hits dataset tab.
A minimal input — the last four 10-K filings for Apple:
{"queries": ["AAPL"],"mode": "filings","formTypes": ["10-K"],"maxFilingsPerCompany": 4}
Example output
One representative dataset row (a 10-K filing):
{"recordType": "filing","ok": true,"errorCode": null,"cik": "0000320193","entityName": "Apple Inc.","ticker": "AAPL","accessionNumber": "0000320193-26-000081","formType": "10-K","filingDate": "2026-08-01","reportDate": "2026-06-30","primaryDocument": "aapl-20260630.htm","primaryDocDescription": "10-K","filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000081/aapl-20260630.htm","fileSizeBytes": 8421330,"isXBRL": true,"isInlineXBRL": true,"act": "34 Act","fileNumber": "001-36743","recordHash": "c91a4f7be30d8256","scrapedAt": "2026-10-02T12:00:00.000Z"}
What this SEC EDGAR Actor returns
- 🏢 Ticker to CIK resolution built in — pass
AAPL,0000320193orAAPLlowercase. The Actor loads EDGAR's official ticker map and resolves it for you. CIKs are zero-padded and stable: tickers change, CIKs do not, so CIK is the key your downstream data should use. - 📄 Complete filing metadata —
formType,filingDate,reportDate,accessionNumber,primaryDocument,primaryDocDescription,fileSizeBytes,fileNumber,act, plus booleans for XBRL and inline XBRL so you can tell at a glance which filings carry machine-readable data. - 🔗 Working document links —
filingUrlpoints straight at the primary document in the EDGAR archive, built from the accession number so it actually resolves. - 🔢 XBRL financial facts with real provenance — each fact carries
unit,valueandvalueNum, plusperiodStart,periodEnd,frame,accessionNumberandfilingDate. The SEC's ownconceptLabelandconceptDescriptionare included, so you never have to guess whatRevenuesmeans in a given taxonomy. - 🔍 Full-text search with paging — EDGAR returns 10 hits per page; the Actor pages until it reaches your limit. Filter by form type and by a 1/2/5/10-year window.
- 📅 Date-aware filtering —
filedAfteraccepts2026-01-01or1 year, so "the last four annual reports" is two fields. - 🔁 Built for scheduled monitoring — every row has a deterministic
recordHash. Diff two daily runs and you get only the new filings, without storing the whole history. - 🛟 Honest failures — an unknown ticker, a company with no XBRL data, or a search with no hits becomes an
ok: falserow with a specific code and an explanation of what was tried.
Running on Apify adds scheduling, webhooks, monitoring, API and SDK access, and one-click export to JSON, CSV, Excel, Google Sheets and 20+ integrations.
Three modes in detail
Filings mode
Give it tickers and form types. maxFilingsPerCompany: 4 with formTypes: ["10-K"] gives you the last four annual reports for each company — the classic equity-research query.
| Input | Effect |
|---|---|
formTypes: ["10-K","10-Q"] | Only annual and quarterly reports |
formTypes: ["4"] | Insider transaction filings |
formTypes: ["8-K"] | Current reports on material events |
formTypes: [] | Everything the company has ever filed |
Facts mode
Give it tickers and XBRL concepts. Concepts use exact US-GAAP taxonomy names — Revenues, NetIncomeLoss, Assets, Liabilities, StockholdersEquity, CashAndCashEquivalentsAtCarryingValue, OperatingIncomeLoss, EarningsPerShareBasic. Prefix with dei: for disclosure concepts, for example dei:EntityPublicFloat.
Facts mode returns history, not just the latest quarter — every period the company has reported for that concept. Ten years of annual revenue for one ticker is a few hundred rows. Use unitsFilter: "USD" to exclude share counts and per-share values, and frame to compare the same calendar period across companies.
Search mode
Give it phrases. "generative AI", "material weakness", "going concern", "climate risk". Limit to form types and a date range. This is the fastest way to find which companies are disclosing something specific — a genuinely useful screen for research and for competitive intelligence.
How to use it
- Pick a Mode.
- Put tickers, CIKs or search terms in Tickers, CIKs, or search terms.
- Fill in that mode's options — form types, concepts, or search form types and date range.
- Set Max records for the whole run to bound the dataset.
- Click Start, then use the Filings, Financial facts or Search hits dataset tab.
How much does it cost to query SEC EDGAR?
Pricing is pay per event with exactly one event:
| Event | What triggers it | Billed |
|---|---|---|
| Record | One filing, one financial fact, or one search hit written to the dataset | per record |
| Actor start | Once per run, platform fee | per run |
One event covers all three modes, so you can switch modes without relearning the bill. Queries that return nothing are not billed. Compute, bandwidth and storage are included; there is no separate platform-usage charge on top.
Be aware that facts mode is the row-heavy one: a company with a long filing history can return hundreds of values per concept. Set unitsFilter, keep the concept list short, and use Max records for the whole run to cap it. A single 10-K filing row costs the same as a single XBRL fact row.
Set Max cost per run in the run options for a hard ceiling. Higher Apify plans get progressively lower per-record pricing through Apify Store tier discounts.
Evaluating? Mode Filings with formTypes: ["10-K"] and one ticker is a handful of rows and gives you the whole shape of the output.
Example input
Monitoring recent annual and current reports:
{"queries": ["AAPL", "MSFT", "0000789019"],"mode": "filings","formTypes": ["10-K", "8-K"],"maxFilingsPerCompany": 15,"filedAfter": "1 year","maxTotal": 200}
Ten years of revenue and net income:
{"queries": ["AAPL"],"mode": "facts","concepts": ["Revenues", "NetIncomeLoss", "Assets"],"unitsFilter": "USD","maxTotal": 500}
Who is disclosing something specific:
{"queries": ["\"material weakness\"", "\"going concern\""],"mode": "search","searchForms": ["10-K", "10-Q"],"searchDateRange": "1y","maxSearchHits": 100}
Output formats in detail
A filing row:
{"recordType": "filing","ok": true,"errorCode": null,"cik": "0000320193","entityName": "Apple Inc.","ticker": "AAPL","accessionNumber": "0000320193-26-000081","formType": "10-K","filingDate": "2026-08-01","reportDate": "2026-06-30","primaryDocument": "aapl-20260630.htm","primaryDocDescription": "10-K","filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000081/aapl-20260630.htm","fileSizeBytes": 8421330,"isXBRL": true,"isInlineXBRL": true,"act": "34 Act","fileNumber": "001-36743","recordHash": "c91a4f7be30d8256","scrapedAt": "2026-10-02T12:00:00.000Z"}
An XBRL fact row:
{"recordType": "fact","ok": true,"cik": "0000320193","entityName": "Apple Inc.","ticker": "AAPL","concept": "Revenues","conceptLabel": "Revenue from Contract with Customer, Excluding Assessed Tax","taxonomy": "us-gaap","unit": "USD","value": 391035000000,"valueNum": 391035000000,"periodStart": "2025-09-28","periodEnd": "2026-06-30","formType": "10-K","frame": "CY2026Q2","accessionNumber": "0000320193-26-000081","filingDate": "2026-08-01","recordHash": "4de2b81a97c30f15"}
An unknown ticker:
{"recordType": "filing","ok": false,"errorCode": "NOT_FOUND","error": {"code": "NOT_FOUND","message": "\"NOTATICKER\" is not a known ticker symbol or valid CIK. Check the symbol or supply a 10-digit CIK directly.","hint": "The target does not exist or is not public. Verify the identifier and that the resource is publicly reachable."}}
Use cases
- Equity research data pipelines — pull standardised revenue, income and balance-sheet lines for a peer set without a paid financial data vendor.
- Filing monitoring — schedule daily, diff on
recordHash, and alert when a portfolio company files an 8-K. - Insider transaction tracking —
formTypes: ["4"]gives you Form 4 filings with dates and document links. - Disclosure screening — full-text search for risk phrases across a year of annual reports.
- LLM and RAG corpora —
filingUrlgives stable source documents;accessionNumberis a clean key. - Academic and compliance research — reproducible, source-linked datasets straight from the regulator.
Related Actors by Axiora Solutions
| Actor | Use it for |
|---|---|
| News & RSS Feed Scraper | The news coverage around the filings you are tracking |
| ATS Job Scraper | Hiring signals for the same public companies |
| Domain Contact Enricher | Technology and contact profiles for the corporates in your list |
Frequently asked questions
Is this an official API?
Yes. It uses data.sec.gov and efts.sec.gov, the SEC's own public JSON interfaces. It is not screen scraping.
Do I need an API key?
No. EDGAR is open. The Actor sends an identifying User-Agent with a contact address, which is what the SEC's fair-access policy asks for, and paces requests to stay well inside their published limits.
Why do some companies have no XBRL facts?
XBRL reporting is required for most US domestic filers, but not for every filing type or every foreign private issuer. When there is nothing on file you get an ok: false row with EMPTY_RESULT and that explanation, rather than an empty dataset you have to debug.
Why do I get so many rows in facts mode?
Because XBRL facts are historical. Each concept returns every period the company has reported, across every unit. Two things keep it manageable: unitsFilter: "USD" to drop share and per-share units, and Max records for the whole run as a hard ceiling. Start with one concept and one ticker to see the volume before scaling up.
Should I use ticker or CIK in my own database?
CIK. Tickers are reassigned when companies are acquired or delisted; CIKs are permanent. Every row carries both, and the Actor resolves either on input.
Why is the same concept value listed more than once?
Because companies restate figures, and because the same value can appear in several filings. accessionNumber, filingDate and frame let you pick the authoritative filing for a period. recordHash is unique per fact occurrence, so de-duplication is straightforward.
Does full-text search cover all history?
EDGAR full-text search covers filings from 2001 onward, and it returns at most 10 hits per page — the Actor pages through automatically. It searches document text, not XBRL values.
Can I run this on a schedule?
Yes. Daily 8-K monitoring for a watchlist is the most common pattern: set filedAfter: "2 days", deduplicate on recordHash.
Something looks wrong — how do I report it?
Open the Issues tab on this Actor page with the ticker, the mode and the row you got. EDGAR occasionally changes payload shapes and those get fixed fastest with a concrete example.
Runnable examples and how-to guides for these Actors: github.com/batow133/axiora-apify-actors