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.

GET/v1/health
Required capability
Authenticated API key
Data timing
As published by the source
Credits
Free.
Live endpoint. Request examples query live data with your API key; response examples are illustrative. History and coverage vary by dataset and plan; see dataset coverage.

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.

Read the shared data conventions

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.

Error codes & retry guidance

Plans

Any API key can call this endpoint.

PlanAccessRecencyHistory
FreeIncludedCurrentNot date-bounded
DeveloperIncludedCurrentNot date-bounded
ProIncludedCurrentNot date-bounded
CommercialIncludedCurrentNot date-bounded
ScaleIncludedCurrentNot 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