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

6 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
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).

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.