SEC XBRL Screener - Company Financials Data
Pricing
from $4.00 / 1,000 company rows
SEC XBRL Screener - Company Financials Data
Screen US public companies on SEC XBRL financial data: pick metrics and a period, get one row per company with a column for each, such as revenue, net income, assets, cash and R&D, joined across thousands of SEC EDGAR filers. Sort like a stock screener. No API key.
Pricing
from $4.00 / 1,000 company rows
Rating
0.0
(0)
Developer
Tom Awake
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
What does SEC XBRL Screener do?
Pick financial metrics and a period. Get one row per US public company, one column per metric — joined across thousands of SEC filers.
No login. No API key. No proxies.
What the raw SEC API makes you do
The SEC's XBRL frames API returns one metric at a time. One call gives you revenue for 1,934 companies. Another gives you total assets for 5,650. Joining them, and knowing they are not even asked for the same way, is left to you.
This Actor does the joining. Three metrics, three calls, one table:
| Company | Revenue | Net income | Assets |
|---|---|---|---|
| WALMART INC. | 165.6 B | 4.5 B | 262.4 B |
| UnitedHealth Group | 109.6 B | 6.3 B | 309.8 B |
| CVS HEALTH | 94.6 B | 1.8 B | 255.6 B |
Two traps it handles that cost you data
Duration versus instant. Revenue happens over a quarter; assets exist
at a date. The SEC encodes that as CY2025Q1 against CY2025Q1I, and
asking the wrong way returns a bare 404 with no explanation. Balance-sheet
metrics are marked in the picker and the period is adjusted for you.
There is no single revenue concept. Companies reporting under ASC 606
tag RevenueFromContractWithCustomerExcludingAssessedTax and never populate
Revenues. Query only the obvious one and you silently lose the largest
companies in the market:
| Metric used | Coverage on $1B+ R&D companies |
|---|---|
us-gaap:Revenues alone | 41 % — no Apple, no Meta, no Microsoft |
| Revenue (any reported basis) | 100 % |
The default revenue metric queries all three concepts and keeps the first
value each company actually reported. Every row carries a
revenue_concept column naming which one it came from, so you can see when
you are comparing unlike bases.
Output
Stable columns: cik, entityName, location, secUrl.
Then per metric: the value, plus _periodEnd (the date the figure covers),
_accession (the filing it came from) and _concept (the us-gaap tag used).
Every row carries every requested column, empty where not reported, so the
file stays rectangular for a spreadsheet.
Metrics
Income statement — revenue (any basis), revenue (strict), revenue from contracts, gross profit, operating income, net income, R&D expense, SG&A expense, interest expense, EPS diluted, EPS basic
Cash flow — operating cash flow, capital expenditure
Balance sheet — total assets, total liabilities, stockholders' equity, cash and equivalents, long-term debt, inventory, goodwill, shares outstanding
Input
{"metrics": ["revenue", "net-income", "assets"],"year": 2025,"quarter": "Q1","maxItems": 2000}
| Field | Default | Notes |
|---|---|---|
metrics | revenue, net income, assets | One column each; each costs a call |
year | 2025 | XBRL starts around 2009 |
quarter | Q1 | Q1–Q4 or full year |
onlyComplete | false | Keep only companies reporting every metric |
maxItems | 2000 | Rows, sorted by the sort metric |
sortBy | first metric | Must be one you selected |
minValue | — | Threshold on the sort metric |
Use cases
- Screening — every company above a revenue, R&D or debt threshold.
- Peer benchmarking — pull a peer set and compare on identical metrics.
- Market and sector sizing — aggregate a metric across all filers.
- Model inputs — a clean quarterly panel without a data vendor.
- Anomaly hunting — companies whose reported figures move oddly between quarters.
Limits, honestly
- Recent quarters fill in over months. Companies file on their own schedules, so the latest quarter is always partial. Step back a quarter for a complete picture.
- Coverage differs per metric. Net income is tagged by 5,361 companies, revenue by fewer, long-term debt by 1,534. A missing value usually means the company did not tag that concept, not that the figure is zero.
- Fiscal years are not calendar years. A frame labelled CY2025Q1 groups
what companies reported as that calendar period; a company with a January
year-end aligns differently.
_periodEndon every row tells you exactly what was covered. onlyCompletecan cut results sharply — one untagged concept removes the company entirely.- Requests are paced and carry an identifying User-Agent, as the SEC requires.
- Not affiliated with the SEC.
Use SEC XBRL Screener as an API
Call it from your own code with the Apify client, here in Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("DataIO/sec-edgar-xbrl-financial-screener").call(run_input={'metrics': ['revenue', 'net-income', 'assets'],'year': 2025,'quarter': 'Q1','maxItems': 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.
Other actors you might like
- GLEIF LEI Lookup: Legal Entity Identifier API
- BODACC Scraper: French Insolvencies & Sales
- IRS 990 Scraper: Nonprofit Financials & Revenue
FAQ
Is it legal to use this data?
The actor reads public data from its official source, without logging in and without bypassing any access control. What you do with the data, for example contacting people listed in it, is your responsibility under the laws that apply to you, such as GDPR in Europe.
Can I run it on a schedule?
Yes. Create a schedule in Apify Console, daily or weekly for example, and each run delivers a fresh dataset, which you can send by email, webhook or integration.
Can AI agents use it?
Yes. It is available through the Apify MCP server, and every input field is described in its input schema, so an agent can call it directly.