Ticker coverage
https://api.tickerbot.io/ v2/ tickers/ {ticker}/ coverageFor one ticker, what we hold and how far back — so an empty result is never ambiguous.
Query parameters
stringrequiredCase-insensitive. Equities are bare symbols (AAPL); every other class carries a prefix — rates (R:SOFR), crypto (X:BTCUSD), fx (X:EURUSD). Bare BTC/ETH are US-listed ETFs, not spot crypto. See Tickers.
Returns
as_ofstringServer time this response was assembled (ISO 8601).
tickerstringThe symbol you asked for.
namestringCompany or instrument name.
minute_tierobjectWhether this ticker is in the minute tier (`included`) and its `rank` within it. `included:false` is NOT "no intraday data": the object then carries `on_demand: true`, `first_call_latency` (`"3-10s"`) and `window_days` (31) — sub-hour bars for the symbol are fetched from the provider on first request and stored, so the first call is slow and later ones are sub-second.
spansobjectPer resolution — `oldest`, `newest`, `rows`.
measured_fieldsarrayPer-field measured depth where the backfill engine has probed — `field`, the grain it was measured at (`daily`, `hourly`, `minute`), `first_date`, `last_date`, `pct_complete`. Capped at 1500 rows.
Status codes
200400bad_request — malformed ticker symbol (a single symbol is required).404not_found — the ticker is not in the universe.Notes
- Reports per-resolution data spans (bars, daily, hourly, minute), whether the ticker is in the minute tier, and per-field measured depth wherever the backfill engine has probed.
- Hourly and minute spans come from a periodic measurement, so the response carries
measured_at. Bars and daily spans are computed live. - Untiered is not uncovered.
minute_tier.included:falsemeans the symbol is not in the pre-loaded minute tier —/v2/bars/{ticker}/{interval}still serves its1m–1hbars, fetched from the provider on demand: the first call for a symbol takes ~3–10s and fills up to 31 days ending atto/before/now; later calls are sub-second; page further back withnext_cursor. The object says so (on_demand,first_call_latency,window_days) so a slow first call is never mistaken for a gap. Aminutespan may be absent here until that first fetch has happened.