Snapshot

One row per requested listing: the latest eligible quote, the latest and previous session daily bars, and the change of the latest price from the previous close. Quotes are snapshots, never real-time: delayed at least 15 minutes for exchange listings and about 15 minutes for indices, and up to about 10 minutes old for the leading crypto pairs and for currency pairs while the forex market is open (a crypto quote older than the close of the pair's latest daily bar gives way to that close); price_source says whether price is a delayed quote or an official session close, and updated_at when it was observed. previous_close is split-adjusted to the price's session, and withheld with the change when that session is on another share basis than the close with no split on record yet. Requires quotes.read, eod.read and an entitled market. Supply exactly one of symbols or instrument_ids. Every requested symbol is either a row of data or an entry of meta.errors: unresolved symbols and instrument IDs are reported there (when none of them resolves the response is 404 instead, whatever the size of the list), and so is a listing with neither a quote nor a session in the last 31 days, with code no-data. Error entries carry the instrument_id of the listing: the requested one, or the one a symbol resolved to; null when a symbol resolved to nothing.

GET/v1/snapshot
Required capability
quotes.read
Data timing
15-minute delayed; crypto and currency pairs undelayed snapshots
Credits
5 credits per symbol.
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

symbolsstringoptional · query
Comma-separated MIC:TICKER symbols (crypto pairs are CRYPTO:BTC-USD, currency pairs FOREX:EUR-USD, indices INDEX:GSPC, bonds BOND and the ISIN, such as BOND:US00037BAF94) or bare tickers, which resolve to the exchange listing that ticker, or else to the listing a common vendor spelling names (RY.TO, SHEL.L, BHP.AX, ^GSPC, EURUSD=X); at most 100, further limited by the effective plan and key scope.
instrument_idsstringoptional · query
Comma-separated stable instrument IDs; cannot be combined with symbols.
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.
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.
If-None-Matchstringoptional · header
ETag from a previous response. Authorization is rechecked before returning 304, and a 304 costs no credits.
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.

security_idstring
Stable public instrument ID, the instrument_id of the other endpoints.Being superseded by instrument_id, which carries the same value. Read instrument_id where present; security_id remains for compatibility.
symbolstring
symbol
exchange_micstring
exchange mic
currency_codestring · null
currency code
pricestring · null
Latest price: the delayed quote's last price when it is from a newer trading date than the latest session, otherwise the latest session close. Null without either.
price_sourcestring · null
delayed_quote is a delayed snapshot, never a real-time price; session_close is an official end-of-day close.

delayed_quotesession_close

previous_closestring · null
Close of the session before the price's session, restated for any split between the two so that both are on one share basis. Null, with change and change_percent, when there is no earlier session, or when the price's session opened (or, before its bar exists, the quote printed) at least 90% away from that close with no split on record: the mark of a split not recorded yet. A crypto or currency pair's previous_close is also null for the hours after UTC midnight before the day just ended has its bar (about ten minutes for the leading crypto pairs, about two hours for other pairs), rather than a two days' move shown as one; a currency pair's day before Sunday is the Friday. The sessions' own closes stay in session and previous_session.
changestring · null
price minus previous_close; null when previous_close is.
change_percentstring · null
100 × change / previous_close, rounded to 8 decimal places; null when previous_close is.
updated_atstring · null
When price was observed: the quote's last_at or the session close.
quoteobject · null
The latest eligible quote, as GET /v1/quotes returns it; null when the listing has none, or when its newest quote predates a session that has traded since (price is then that session's close). Its bid and ask fields are always null: no licensed source supplies them yet.
sessionobject · null
The latest session daily bar, unadjusted.
previous_sessionobject · null
The session daily bar before it, unadjusted.

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 quotes.read. Access, recency and history depth come from the plan definitions the API enforces.

PlanAccessRecencyHistory
FreeIncluded15-minute delayed; crypto and currency pairs undelayed snapshotsNot date-bounded
DeveloperIncluded15-minute delayed; crypto and currency pairs undelayed snapshotsNot date-bounded
ProIncluded15-minute delayed; crypto and currency pairs undelayed snapshotsNot date-bounded
CommercialIncluded15-minute delayed; crypto and currency pairs undelayed snapshotsNot date-bounded
ScaleIncluded15-minute delayed; crypto and currency pairs undelayed snapshotsNot 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