Cross-asset bars
Unified bars for exchange listings, crypto and currency pairs, indices and bonds, served from the same stores as /v1/eod (interval 1d, which also needs eod.read) and /v1/intraday (intraday intervals, which also need intraday.read). Requires exactly one of instrument_ids or symbols. Each listing serves the intervals it is collected at, and an interval it is not collected at returns 422 unsupported-interval; for crypto and currency pairs 5m and 1h are rolled up from 1m, and bonds have daily bars only. Prices are in currency_code; quote_instrument_id is null, since every crypto pair served is quoted in US dollars. Default order: window_start descending (newest first), id ascending. Instrument selection is required. Until a bar source publishes, bars are read from the price stores /v1/eod and /v1/intraday serve. Access requires the operation capability on the API key.
/v1/barsFor stocks, GET /v1/eod is the canonical daily-bar endpoint and returns the same daily bars; /v1/bars?interval=1d serves them in the cross-asset bar shape. GET /v1/intraday is the canonical five-minute and hourly endpoint, and /v1/bars serves the same bars from the same store: 5m and 1h, and for crypto and currency pairs 1m. Canonical: GET /v1/eod and GET /v1/intraday.
- Required capability
- bars.read
- Data timing
- End of day; intraday delayed 15+ minutes
- Credits
- 5 credits per symbol, 25 per symbol for intraday intervals.
Parameters
instrument_idsstringoptional · query- Filter by stable instrument IDs. IDs and symbols may not be combined.
symbolsstringoptional · query- Convenience lookup for exchange-listed instruments as MIC:TICKER or a bare ticker, which resolves to the exchange listing that ticker; resolves at symbol_at. The MIC and the ticker are case-insensitive, and two spellings of one listing (AAPL and XNAS:AAPL) count as a repeated value. A bare ticker that names no listing as written is also read in the common vendor spellings: with an exchange suffix (RY.TO, SHEL.L, VOD.LSE, BHP.AX), ^GSPC for INDEX:GSPC, and EURUSD=X or EURUSD for FOREX:EUR-USD. A ticker may contain a space (BAC PRL) but not start or end with one. A request in which no symbol resolves returns 404 symbol-not-resolved; otherwise each symbol that does not resolve, or resolves to a listing with no rows for the request (no-data), is an entry of meta.errors. IDs and symbols may not be combined.
symbol_atstringoptional · query- Resolve symbols as they were assigned at the end of this UTC date (YYYY-MM-DD); defaults to as_of. Only listings the security master holds resolve: it was built in September 2026 and records delistings from then on, so most issuers delisted earlier, such as TWTR or SIVB, resolve at no date. Only valid with symbols.
fromstringoptional · query- First date (YYYY-MM-DD, inclusive) of window_start, the exchange-local trading date.
tostringoptional · query- Last date (YYYY-MM-DD, inclusive) of window_start; on or after from.
intervalstringrequired · query- Required. 1d comes from end-of-day prices (/v1/eod). 5m and 1h come from the retained intraday bars of /v1/intraday (about 30 days): exchange listings are collected as five-minute bars, and 1h is rolled up from them, each session cut into hours from its open. 1m is served only by listings collected at one minute, which today are crypto and currency pairs; an interval a listing is not collected at (1m for exchange listings) returns 422 unsupported-interval. Weekly and monthly bars are not served.
1d5m1h1m sessionstringoptional · query- Default regular. Continuous markets (crypto and currency pairs) trade in one session a UTC day, so all selects the same bars as regular for them. Exchange listings have regular-session bars only, with no pre-market or after-hours bars; all returns 422 unsupported-session for them.
regularall adjustmentstringoptional · query- Defaults to raw. split and total_return prices are rounded half up to 6 decimal places and adjusted volume to whole shares; a listing whose corporate actions are not collected (crypto and currency pairs, indices, bonds, OTC) returns 422 adjustment-unsupported for them.
rawsplittotal_return as_ofstringoptional · query- Knowledge cutoff as a UTC date (YYYY-MM-DD): the response reflects what was known by the end of that day. Defaults to now; cannot be in the future. A date from before the dataset's knowledge history returns 422 point-in-time-unavailable naming the earliest one, which GET /v1/datasets lists as earliest_as_of.
orderstringoptional · query- Direction on window_start; ties use ID ascending.
Default:ascdescdesc limitintegeroptional · query- Maximum records per page.Default:
100 cursorstringoptional · query- Opaque cursor, expires after one hour; binds filters, order, resolved as_of, account/key and entitlement. Repeat the original query unchanged.
formatstringoptional · query- Response format. csv returns the data rows with a header row, for spreadsheet functions such as IMPORTDATA; nested fields become dotted columns and lists one JSON array cell, the next page cursor is returned in X-Next-Cursor and meta.errors in X-Meta-Errors. A result without rows is the header row alone, listing the documented fields of a row. Default json, or csv when format is omitted and the Accept header ranks text/csv above JSON; a format the Accept header does not admit returns 406 not-acceptable.
jsoncsv
Response fields
Returns data as an array of records. All example values are illustrative.
idstring- Record identifier, stable across revisions.
instrument_idstring- Opaque stable public identifier; never an internal database key.
window_startstring- window start
window_endstring- window end
intervalstring- Bar interval: 1d, 5m or 1h for exchange listings; 1m only for listings collected at one minute (crypto and currency pairs).
1d5m1h1m sessionstring- Trading session: regular for exchange listings; all only for continuous markets (crypto and currency pairs), where it is the same bars as regular.
regularall currency_codestring · null- ISO 4217 currency. Crypto quote assets use instrument IDs, not invented ISO codes.
quote_instrument_idstring · null- Opaque stable public identifier; never an internal database key.
openstring- Open.
highstring- High.
lowstring- Low.
closestring- Close.
volumestring · null- Native units: whole shares for exchange listings (a source that counts fractional-share executions is rounded half up), contracts for options; for crypto pairs, US dollars traded on daily bars and coins traded on intraday bars (the provider's separate intraday aggregation, which does not add up to the daily bar); null for currency pairs, whose over-the-counter market reports no traded amount, and for indices, whose level is not traded. A US daily bar carries the consolidated tape's volume wherever that source has the session and its prices agree with the bar's, and the end-of-day provider's otherwise.
trade_countinteger · null- Number of trades in the bar; null when no source of the bar counts them, which is not missing data. A daily bar carries the consolidated-tape source's count, with its volume, where that source has the session and its prices agree with the bar's: from the 2026-10-02 session on, for the US-listed symbols it covers. Most earlier daily bars, intraday bars, crypto and currency pairs and indices are null.
adjustmentstring- Adjustment basis. Only raw is supported for crypto and currency pairs, indices, bonds and OTC listings. Split-adjusted and total-return prices are rounded half up to 6 decimal places and adjusted volume to whole shares.
rawsplittotal_return
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
Requires bars.read. Access, recency and history depth come from the plan definitions the API enforces.
| Plan | Access | Recency | History |
|---|---|---|---|
| Free | Not included | — | — |
| Developer | Not included | — | — |
| Pro | Included | End of day; intraday delayed 15+ minutes | 15 years |
| Commercial | Included | End of day; intraday delayed 15+ minutes | Full history |
| Scale | Included | End of day; intraday delayed 15+ minutes | Full history |
Interval 1d also require eod.read: Pro, Commercial, Scale.
Intraday intervals (1m, 5m, 1h) also require intraday.read: Pro, Commercial, Scale.
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