API Documentation
One endpoint, one promise: ask what was knowable about a company on a date, and that's exactly — and only — what you get back.
Authentication
Send your API key with every request, either way:
x-api-key: tvd_your_key_here # or Authorization: Bearer tvd_your_key_here
Keys are issued on subscription and deactivated on cancellation. One key per subscription — don't share it. Quota: 5,000 requests per day, resets 00:00 UTC.
GET/v1/fundamentals
Returns, for each concept, the most recent fiscal period whose 10-K had been filed on or before as_of — the point-in-time view. Note the boundary is inclusive: a 10-K filed on as_of itself counts as knowable that day (filings often land after market close — use the prior day if you need strict before-the-open semantics).
Query parameters
Response fields
Example
curl "https://tradevodata.com/v1/fundamentals?ticker=AAPL&as_of=2024-06-30&concept=Revenue" \ -H "x-api-key: tvd_your_key_here"
{
"ticker": "AAPL",
"as_of": "2024-06-30",
"count": 1,
"fundamentals": [{
"concept": "Revenue",
"fiscal_year": 2023,
"period_end": "2023-09-30",
"filed": "2023-11-03",
"value": 383285000000,
"latest_value": 383285000000,
"restated": false,
"qa_status": "clean"
}]
}Note: as of June 2024, the newest knowable Apple annual revenue is FY2023 — FY2024 wasn't filed until 2024-11-01. That's the product.
Python
import requests
r = requests.get(
"https://tradevodata.com/v1/fundamentals",
params={"ticker": "AAPL", "as_of": "2024-06-30"},
headers={"x-api-key": "tvd_your_key_here"},
)
for f in r.json()["fundamentals"]:
print(f["concept"], f["value"], "known since", f["filed"])Errors
An empty result with count: 0 and a note means the ticker exists but nothing had been filed on or before your as_of.
GET/v1/health
Public liveness check (no key needed): returns { ok, rows, db_ms }.
Coverage & semantics
- 5,214 US companies · 313,561 point-in-time rows · 7 concepts · up to 12 fiscal years.
- Annual data from 10-K and 10-K/A filings (SEC EDGAR XBRL). Quarterly is on the roadmap.
- filed is the earliest filing that reported the value — across synonym XBRL tags, so re-tagged values keep their true first-public date.
- Support: email us. Manage billing at /account.