We normalize messy public XBRL filings into one consistent schema — so revenue means the same thing for every company, every year.
Public SEC data · normalized by us · ~2009–present
{ "cik": 320193, "statement": "income", "fiscal_year": 2023, "fiscal_period": "FY", "period_end": "2023-09-30", "form": "10-K", "filed": "2023-11-03", "lines": [ { "canonical_concept": "revenue", "value": 383285000000, "source_tag": "RevenueFromContractWithCustomerExcludingAssessedTax" }, { "canonical_concept": "gross_profit", "value": 169148000000, "source_tag": "GrossProfit" }, { "canonical_concept": "operating_income", "value": 114301000000, "source_tag": "OperatingIncomeLoss" }, { "canonical_concept": "net_income", "value": 96995000000, "source_tag": "NetIncomeLoss" }, { "canonical_concept": "eps_diluted", "value": 6.13, "source_tag": "EarningsPerShareDiluted" }▍ ] }
No key needed for this endpoint. interest_expense is deliberately absent above — Apple nets it into other income/expense rather than tagging it discretely, and we surface that as a documented limitation instead of guessing a value. Every line keeps its source gaap_tag for audit — see the methodology page.
The raw filings are public, but every company tags the same concept differently — and often changes those tags year to year, or invents their own. Getting a clean time series means writing and maintaining a mountain of mapping logic.
We do that mapping work once, for everyone, so you don't have to.
Inconsistent tags mapped to one schema. A field means the same thing across every company and every year — no reconciliation on your end.
Structured to avoid information overload. You get the numbers you asked for — not the filing noise around them.
Filter by company, period, and metric through a plain REST API. Predictable URLs in, clean JSON out.
A low subscription price that undercuts the enterprise data vendors — because the data is public and the value is the cleanup.
Every U.S. company that files XBRL with the SEC, from roughly 2009 to the present.
Incumbent fundamentals feeds run into the thousands per year. We charge a flat, low subscription — the data is public, so the price reflects the cleanup and access, nothing more. Everything is free during the beta; the planned prices below are what billing will be when it goes live, and the free tier stays free.
One curl gets you a key — no credit card, no waitlist. Planned: $19/mo basic · $79/mo pro.
Get an API key Read the docs firstBeta keys keep working when billing starts — paid tiers get explicit notice and a migration window before any charge, and prices never change silently. See the terms.