SEC EDGAR Financial Facts avatar

SEC EDGAR Financial Facts

Pricing

from $0.35 / 1,000 facts

Go to Apify Store
SEC EDGAR Financial Facts

SEC EDGAR Financial Facts

Give a ticker or CIK, get every reported XBRL financial fact for any US public company from the official SEC EDGAR company-facts API (data.sec.gov) β€” revenue, assets, EPS, cash, liabilities and every us-gaap + dei concept, flattened to one analysis-ready row per observation. No API key.

Pricing

from $0.35 / 1,000 facts

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Give a ticker or CIK, get every reported XBRL financial fact for any U.S. public company β€” straight from the official SEC EDGAR company-facts REST API (data.sec.gov). Revenue, assets, EPS, cash, liabilities, shares outstanding β€” every us-gaap and dei concept the filer has tagged β€” flattened to one analysis-ready row per reported fact-observation. Free, no API key, authoritative source.

SEC EDGAR is the system of record for U.S. public-company financials. This actor is the clean structured-fundamentals extractor built directly on the official XBRL API β€” normalized, analysis-ready numbers, not raw filing HTML you have to parse yourself.

What you get

One dataset row per fact-observation, with these fields:

FieldMeaning
cikCentral Index Key (integer)
entityNameCompany name, e.g. Apple Inc.
taxonomyus-gaap | dei | ifrs-full | srt | invest
conceptThe XBRL tag, e.g. Revenues, Assets, EarningsPerShareBasic
labelHuman label for the concept
descriptionThe concept's full XBRL definition
unitUSD, shares, USD/shares, …
valueThe reported number (int for money/shares, float for per-share)
startPeriod start (null for instant facts like a balance-sheet total)
endPeriod end (or the instant date)
fiscalYearFiscal year (fy)
fiscalPeriodFiscal period (fp) β€” FY, Q1, Q2, …
formSEC form, e.g. 10-K, 10-Q, 8-K
filedFiling date
accessionNumberThe filing's accession number (accn)
frameThe XBRL frame if present (e.g. CY2016, CY2009Q2I), else null
_cikThe zero-padded CIK this row was fetched under
_sourcecompanyconcept (single concept) or companyfacts (all concepts)
_rowIndexSequential index within the run
_rawThe lossless original observation object

Input

InputDescription
tickerA stock ticker, e.g. AAPL β€” resolved to a CIK via SEC's official ticker map. Share classes can be typed BRK.B, BRK/B or BRK-B (SEC writes BRK-B); $AAPL and NASDAQ:AAPL also work
cikA Central Index Key, e.g. 320193 (zero-padding handled for you)
tickers / ciksBatch several companies in one run; each row is tagged with its _cik
conceptA single concept tag (e.g. Revenues) β†’ uses the fast per-concept endpoint. Omit to extract all concepts
taxonomyTaxonomy for the concept (default us-gaap); only used with concept
formsKeep only these SEC form types, e.g. ["10-K","10-Q"]
maxRecordsGlobal cap on rows emitted (a large filer's full fact set can be tens of thousands)
userAgentOptional override β€” a compliant default is sent (SEC requires a descriptive UA)
timeoutSecsPer-request read timeout (default 120s)

At least one identifier (cik/ticker/ciks/tickers) is required.

Example β€” one concept for one company

{ "cik": "320193", "concept": "Revenues", "taxonomy": "us-gaap" }

Example β€” full fundamentals for a company (capped)

{ "ticker": "AAPL", "maxRecords": 500 }

Example β€” annual EPS across several companies

{ "tickers": ["AAPL", "MSFT", "GOOGL"], "concept": "EarningsPerShareBasic", "forms": ["10-K"] }

How it works

  • Two official endpoints, auto-selected: companyconcept (one concept for one company) when you set concept, otherwise companyfacts (every concept the filer tagged). Ticker β†’ CIK resolution uses SEC's official company_tickers.json directory.
  • The parse is the moat. The XBRL facts JSON is deeply nested (facts.{taxonomy}.{concept}.units.{unit}[]) and every observation is flattened fully. Every field is read by key presence, so an instant fact (no start) or a fact with no frame yields null there β€” never a dropped row, never a crash. The complete original observation is preserved in _raw.
  • SEC fair-access compliant. SEC requires a descriptive User-Agent with contact info (it returns HTTP 403 otherwise) and asks clients to stay ≀ ~10 requests/second. The actor sends a compliant UA by default and throttles between requests.
  • Honest and resilient. An unknown CIK/ticker, a concept a company never tagged, a timeout, or a non-JSON body is a clean skip-with-warning and the batch continues; a run where every identifier is skipped fails fast so nothing broken looks successful. A valid company with no facts for your filter returns 0 rows β€” it never fabricates data.

Pricing

Pay-per-event: you're charged per fact (one emitted dataset row).

Your max charge is respected. Facts are written only when your run's maximum charge covers them, so every row in the dataset is billed and nothing past your budget is written. If the budget runs out mid-company the run stops cleanly with the facts you paid for; if it does not cover even one fact, no SEC request is made at all. Set maxRecords for an exact row count.

Notes

Data comes directly from SEC EDGAR's XBRL frames API and is provided as-is from the filers' own submissions. This actor accesses only public, no-auth SEC endpoints.