Data health
Freshness and coverage in entitled markets, one row per dataset, market and exchange: where several sources deliver a venue, the row is as fresh as the freshest of them that has delivered there. freshness_status describes ingestion timing and, for daily and intraday bars, how many listings have the newest closed session (coverage.latest_session); status remains partial, unverified or unknown when completeness is not established. coverage.asset_types says which kinds of listing a price dataset covers on the venue. Symbols without rows may legitimately have no corporate actions. Coverage counts are operational observations, not entitlement-filtered data delivery. Missing observations have status unavailable. Research datasets no source is connected to yet (x-availability unavailable in this contract) are listed with their /v1/datasets id, a null exchange and status unavailable; their endpoints return 501 dataset-unavailable. coverage_configured is false when no ingestion coverage is configured for the markets of this key; no pagination.
/v1/health- Required capability
- Authenticated API key
- Data timing
- As published by the source
- Credits
- Free.
Parameters
No query parameters. Authentication is still required.
Response fields
Returns data as an array of records. All example values are illustrative.
datasetstring- dataset
marketstring- market
exchangestring · null- Exchange MIC; null on the rows of research datasets with no connected source, which apply to the whole market.
statusstring- freshness_status, or when that is fresh the coverage status (partial, unverified or unknown).
last_success_atstring · null- When a source connected to this venue last finished a run that stored rows; the newest across its sources.
latest_event_atstring · null- The newest event any connected source stored for this venue. One listing with the latest session sets it, so read coverage.latest_session for how many listings have that session.
latest_complete_local_datestring · null- Reserved for the newest date through which the venue's history is complete; always null, since no venue's completeness is established (coverage.history_complete).
freshness_statusstring- fresh: the freshest connected source delivered on time. partial or stale (daily and intraday bars): fewer than 90 percent, or fewer than 50 percent, of the listings that traded in the sessions before have bars of coverage.latest_session, judged from 5.5 hours after its close for US daily bars (CA 11 hours, GB 15.5 hours, FR 15.5 hours, NL 15.5 hours, AU 26 hours for the international markets, whose daily bars arrive with each exchange's daily file, read from two hours after its close) and 8 hours for intraday bars. late: past its deadline. not_expected: nothing is due. unavailable: no connected source has delivered for this venue.
freshpartialstalelatenot_expectedunavailable coverageobject- coverage
Response metadata
Responses include meta.timezone. Dataset responses include next_cursor; health and exports have their own metadata. Request tracing uses the X-Request-ID header.
When something goes wrong
An empty data: [] is a successful query with no matching records. Invalid symbols, permissions and malformed parameters produce an RFC 9457 problem with an actionable detail.
Plans
Any API key can call this endpoint.
| Plan | Access | Recency | History |
|---|---|---|---|
| Free | Included | Current | Not date-bounded |
| Developer | Included | Current | Not date-bounded |
| Pro | Included | Current | Not date-bounded |
| Commercial | Included | Current | Not date-bounded |
| Scale | Included | Current | Not date-bounded |
Free requests are limited to AAPL, NVDA, JNJ, PEP, MSFT, SPY, QQQ.
History is how far back a plan may request. How far records actually go for a symbol is history_from in dataset coverage. Nothing is real-time. Compare plans