SEC EDGAR Fundamentals Scraper
Pricing
from $1.40 / 1,000 results
SEC EDGAR Fundamentals Scraper
Company profiles, COMPLETE filing history and XBRL financials from SEC EDGAR by ticker or CIK. Recovers the older filings capped out of SEC's main document (up to 79% of history) and drops restatement duplicates so each period has one canonical value.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Company profiles, complete filing history and XBRL financials from the U.S. Securities and Exchange Commission's EDGAR system — by ticker or CIK.
Public U.S. government data. No API key, no login, no WAF, no proxy required.
Why this one is different
Most EDGAR clients read SEC's filings.recent block and stop there. That
block is capped at about 1,000 filings, and everything older lives in
separate archive files that must be fetched explicitly. Measured on real
companies:
| Company | Filings in recent | Filings in archive | Silently lost |
|---|---|---|---|
| Apple | 1,001 (back to 2015) | 1,240 (back to 1994) | 55% |
| Berkshire Hathaway | 1,001 (back to 2017) | 1,394 (back to 1998) | 58% |
| General Electric | 1,002 (back to 2019) | 3,774 (back to 1994) | 79% |
Turn on completeFilingHistory and you get all of it. Concretely: GE's
10-K annual reports come back as 26 filings spanning 1994→2026, of which
18 exist only in the archive.
Every run also tells you which case you are in — filingHistoryComplete,
filingsInRecent, filingsInArchiveShards and archiveShardCount are on the
summary row, so a truncated run can never be mistaken for an exhaustive one.
The second thing it gets right: restatements
SEC reports the same accounting period repeatedly across filings, sometimes with different values. Apple's total assets for period-end 2008-09-27 is reported as both $36.17B and $39.57B; period-end 2009-09-26 appears seven times. Dump every datapoint and you get duplicate, conflicting financials; dedupe naively and you may keep the superseded number.
canonicalFactsOnly (default on) keeps only datapoints carrying SEC's own
canonical period marker — one value per calendar period — and reports how many
were dropped in restatementPointsDropped. On a 3-concept Apple run that is
580 of 822 datapoints. Turn it off to audit every reported revision, with
form, filed and accessionNumber on each row so you can see which filing
said what.
Output
Four record types share one dataset, told apart by recordType:
COMPANY— name, CIK, tickers, exchanges, SIC industry, EIN, LEI, fiscal year end, state of incorporation, business address, website, former names.FILING— form type, filing date, report period, accession number, document description, XBRL flags, plus ready-to-openfilingIndexUrlandprimaryDocumentUrl.fromArchiveShardmarks rows a naive client misses.FINANCIAL_FACT— one datapoint: concept, unit, value, period start/end, fiscal year/period, the form it came from, andisCanonical.COMPANY_SUMMARY— the honesty row (see above), plusconceptsFound/conceptsMissing.ERROR— one per input that could not be resolved, so every input maps to at least one row.
Input
{"tickers": ["AAPL", "MSFT"],"ciks": ["0000320193"],"includeFilings": true,"completeFilingHistory": true,"formTypes": ["10-K", "10-Q"],"filedFrom": "2015-01-01","includeFinancials": true,"financialConcepts": ["Assets", "NetIncomeLoss", "StockholdersEquity"],"canonicalFactsOnly": true}
Tickers and CIKs can be mixed. CIKs are zero-padded automatically, so both
320193 and 0000320193 work.
Known limits (measured, not guessed)
Concept availability is industry-dependent. Across five filers in five
industries: GrossProfit exists for 1 of 5, OperatingExpenses 1 of 5,
OperatingIncomeLoss 2 of 5. JPMorgan, as a bank, reports no
RevenueFromContractWithCustomerExcludingAssessedTax at all. Anything a filer
does not report is listed in conceptsMissing rather than failing the run or
returning silently empty.
A concept being present does not make it the right series. Revenues
exists for all five filers sampled, but Apple has only 11 datapoints under it,
the newest ending 2018 — Apple moved to
RevenueFromContractWithCustomerExcludingAssessedTax after ASC 606. Check the
datapoint count and period range before treating any single concept as a
company's revenue history.
Several tickers can name one company. Alphabet has GOOGL, GOOG, GOOGN and GOOGM; JPMorgan has nine including preferred shares. Requesting two aliases fetches the company once and records every alias, rather than billing you for duplicate rows.
XBRL documents are large — 3.8 MB for Apple, 7.9 MB for JPMorgan — so
includeFinancials costs one sizeable request per company. The response is
filtered to your requested concepts before any row is written.
Only SEC registrants are covered. A ticker absent from SEC's own
ticker map produces a ticker_not_found ERROR row.
Rate limits and etiquette
SEC's Fair Access policy asks automated clients to identify themselves and to
stay under 10 requests/second. Both are honoured by default. Set
userAgentContact to your own contact string (e.g.
"Acme Research (research@acme.com)") — SEC prefers a real address.
A proxy is off by default: EDGAR has no WAF and no geo gating, and SEC would rather see one identifiable client than rotating IPs.