US-GAAP, IFRS and parsed annual reports come back with the same period, currency and sign logic. Without you having to know where they came from.
curl "$API/v1/fundamentals/SAP/metrics?metrics=revenue,net_income&years=3"
{
"entity": { "name": "SAP", "isin": "DE0007164600", "country": "DE" },
"source": "sec.dera",
"periods": [
{ "end": "2025-12-31", "type": "FY", "currency": "EUR",
"metrics": { "revenue": 34176000000, "net_income": 3086000000 } }
]
}
periods is the table header, lines[].values are the cells. Identically shaped across all sources.Four data pools had four incompatible shapes: values sometimes a list, sometimes a scalar, sometimes a year map. Periods sometimes 20251231, sometimes ISO, sometimes just a year. German reports had to be multiplied by a factor first. Comparing two companies meant writing four parsers.
We settled on seven rules and applied them everywhere. One is easy to miss: European reports state the period end exclusively, so one day late. Without that correction no European period ever lines up with an American one — and every fiscal year carries the wrong label.
Values in the lines stay as reported. Unification happens only in the metric rollup, and there in a way that makes revenue minus cost of revenue equal gross profit across every source.
| GET | /v1/fundamentals/{identifier}/statements | Complete statements |
| GET | /v1/fundamentals/{identifier}/metrics | Metrics per period only |
| GET | /v1/fundamentals/compare | Several issuers side by side |
| GET | /v1/fundamentals/{identifier}/coverage | What exists, how reliable |
| GET | /v1/fundamentals/metrics/catalog | The metric vocabulary |
Something missing, something off, or an answer you don't understand? Write it here — it reaches us directly.