SEC XBRL Financials Scraper — Revenue, Income, Assets
Pricing
Pay per usage
SEC XBRL Financials Scraper — Revenue, Income, Assets
Get structured financial-statement data — revenue, net income, gross profit, assets, liabilities, equity, EPS, cash flow and more — for any US public company by ticker or CIK. Full historical time series straight from the SEC official XBRL API. No API key, always current.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
parker odam
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
SEC XBRL Financials Scraper
Extract structured financial statement data from the official SEC XBRL company facts API — revenue, net income, assets, liabilities, cash flow, and more — for any US public company by ticker symbol or CIK number. No API key required.
What this scraper does
This actor fetches data from the SEC's keyless XBRL company facts endpoint (https://data.sec.gov/api/xbrl/companyfacts/CIK##########.json) and flattens it into a clean, one-row-per-fact dataset that downstream tools can consume without joins.
Each output record (FinancialFact) is fully denormalized: company name, CIK, concept label, unit, fiscal period, form type, and value are all on a single row.
Use cases
- Company financial statements scraper: pull income statement, balance sheet, and cash flow data for any S&P 500 company or small cap
- SEC financials API: keyless XBRL data extraction at scale
- XBRL financial data: standardized, machine-readable format covering hundreds of concepts
- Revenue and net income by ticker: track annual 10-K and quarterly 10-Q fundamentals over time
- Fundamental analysis pipelines: feed valuation models, stock screeners, or financial dashboards
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
tickersOrCiks | string[] | Yes | — | Ticker symbols (AAPL, MSFT) or raw CIK numbers (320193). Mixed lists allowed. |
concepts | string[] | No | 13 defaults | XBRL concept names to extract. Absent concepts are silently skipped. |
taxonomy | string | No | us-gaap | Taxonomy to read. Usually us-gaap; dei for entity metadata. |
forms | string[] | No | all | Only return facts from these form types (10-K, 10-Q). |
sinceFiscalYear | integer | No | — | Only return facts where fy >= sinceFiscalYear. |
maxPerConcept | integer | No | — | Cap datapoints per concept per company. |
userAgent | string | No | placeholder | Required by SEC policy. Must include a contact email. |
Default concepts
When concepts is omitted, the actor extracts these 13 fundamental financial metrics:
Revenues— total revenuesRevenueFromContractWithCustomerExcludingAssessedTax— ASC 606 revenues (most modern filers)GrossProfitOperatingIncomeLossNetIncomeLossAssetsLiabilitiesStockholdersEquityCashAndCashEquivalentsAtCarryingValueNetCashProvidedByUsedInOperatingActivitiesEarningsPerShareBasicEarningsPerShareDilutedResearchAndDevelopmentExpense
Output
Each item in the dataset is a FinancialFact:
{"company": "Apple Inc.","cik": "0000320193","ticker": "AAPL","taxonomy": "us-gaap","concept": "NetIncomeLoss","label": "Net Income (Loss) Attributable to Parent","unit": "USD","value": 93736000000,"fiscalYear": 2024,"fiscalPeriod": "FY","form": "10-K","periodStart": "2023-09-25","periodEnd": "2024-09-28","filed": "2024-11-01","frame": "CY2024"}
| Field | Description |
|---|---|
company | Entity name from the SEC API |
cik | Zero-padded 10-digit CIK (e.g. "0000320193") |
ticker | Ticker symbol if resolved from input; absent for raw-CIK inputs |
taxonomy | Taxonomy namespace (e.g. us-gaap) |
concept | XBRL concept name (e.g. NetIncomeLoss) |
label | Human-readable concept description |
unit | Unit type (USD, shares, pure) |
value | Numeric value (can be negative for losses) |
fiscalYear | Fiscal year integer |
fiscalPeriod | FY, Q1, Q2, Q3, or Q4 |
form | Filing form type (10-K, 10-Q, etc.) |
periodStart | ISO date — present for flow/income concepts; absent for balance-sheet point-in-time |
periodEnd | ISO date — always present |
filed | Date the filing was submitted to the SEC |
frame | Standardized frame identifier (e.g. CY2024); present on most but not all datapoints |
SEC fair-access policy
The SEC requires a descriptive User-Agent header that identifies your tool and includes a contact email. Requests without one receive HTTP 403. Set the userAgent input to something like my-app/1.0 contact@example.com. See the SEC webmaster FAQ.
Rate limits
The SEC's documented ceiling is 10 requests/second. This actor uses a per-host rate limiter set to 120ms minimum interval (≈8.3 req/s) to stay comfortably within the limit.
Data source
All data is fetched from the official SEC EDGAR XBRL APIs:
- Ticker→CIK map:
https://www.sec.gov/files/company_tickers.json - Company facts:
https://data.sec.gov/api/xbrl/companyfacts/CIK##########.json
No third-party data providers. No API key required.