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.

GET/v1/bars
Cross-asset form

For 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.
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

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.

ascdesc

Default: desc
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.

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

Requires bars.read. Access, recency and history depth come from the plan definitions the API enforces.

PlanAccessRecencyHistory
FreeNot included——
DeveloperNot included——
ProIncludedEnd of day; intraday delayed 15+ minutes15 years
CommercialIncludedEnd of day; intraday delayed 15+ minutesFull history
ScaleIncludedEnd of day; intraday delayed 15+ minutesFull 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