Quotes
Latest delayed quote per symbol: the last trade of the newest snapshot, never real-time. Exchange listings are delayed at least 15 minutes. US listings are snapshotted every 10 minutes from 9:31 New York time until the delay has caught up with the close (about 16:30), so after the close last_price is the last trade in that final snapshot, after-hours prints included, and can differ from the official close; read the close from /v1/eod or /v1/snapshot (price_source session_close). Listings on the Toronto, TSX Venture, Cboe Canada, London, Euronext Paris and Amsterdam and ASX exchanges are quoted every 60 minutes while their exchange is open, from about 20 minutes after the open (on the ASX 20 minutes later, after its opening auction), and once more about 20 minutes after the close; in between, the listings requested from /v1/quotes, /v1/snapshot or the quote stream in the last 24 hours (up to 250 a market, the most recently requested) are quoted every 10 minutes, so their last_at is usually 20 to 35 minutes old while the exchange is open. Crypto quotes come around the clock from two sources that are not delayed: the leading pairs by market capitalization are quoted about every five minutes, so a pair's last_at is usually under 10 minutes old, and every other pair a source prices about every one to two hours. bid and ask fields are always null: no licensed source supplies quotes yet. Mutual funds (one NAV a day, in /v1/eod), bonds (the BOND venue, daily prices in /v1/eod) and OTC listings have no quotes; neither do preferreds listed on NYSE and NYSE American, which the delayed snapshot does not carry, and a crypto pair neither source prices has none. A request naming a mutual fund with a key whose plan lacks mutual-funds.read (Commercial and Scale include it) returns 403 mutual-funds-not-entitled. GET /v1/health lists, per exchange and asset type, how many listings have a quote (coverage.asset_types). A listing whose newest quote predates a session that has traded since is not served as current: it is reported in meta.errors as no-data, and /v1/snapshot and /v1/eod carry that session's close. A crypto pair's quote also gives way to a daily bar that closed after it, so a quote the source stopped updating is replaced by that UTC day's close. Currency pairs are quoted every ten minutes, without delay, for the majors and leading crosses only, while the forex market is open (Sunday 17:00 to Friday 17:30 New York time). Indices (the INDEX venue, such as INDEX:GSPC) are quoted every ten minutes, delayed about 15 minutes, for 38 leading indices only, while each one's home market is open; the other indices have daily bars only. Select listings with symbols or instrument_ids, not both. Requires quotes.read and an entitled market. An empty data array is a successful result. When none of the requested symbols resolves, the response is 404 symbol-not-resolved, whatever the size of the list; when at least one does, the others are reported in meta.errors.
/v1/quotes- Required capability
- quotes.read
- Data timing
- 15-minute delayed; crypto and currency pairs undelayed snapshots
- Credits
- 5 credits per symbol.
Parameters
limitintegeroptional · query- Maximum records per page, from 1 to 500; default 100.Default:
100 cursorstringoptional · query- Opaque cursor, expires after one hour. Keep all query parameters unchanged. Changes to entitlements can invalidate it.
If-None-Matchstringoptional · header- ETag from a previous response. Authorization is rechecked before returning 304, and a 304 costs no credits.
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; neither part is case-sensitive, and two spellings of one listing 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. At most 100, further limited by the effective plan and key scope. A symbol names the listing recorded under it at symbol_at; at a date before any ticker is recorded for a listing, the earliest ticker recorded for it selects it as well (see symbol_at). Supply symbols or instrument_ids.
instrument_idsstringoptional · query- Comma-separated stable instrument IDs (the instrument_id of each row, and of the research endpoints) instead of symbols; each selects its listing at any date, including history from before its earliest recorded ticker and listings that no longer trade. Rows carry the symbol the listing had at symbol_at, or where it had none then, its symbol at as_of, else the last one it carried by as_of, else its first. At most 100. 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. A ticker names the listing that carries it at symbol_at, and every row of a from/to range carries that symbol, rows from before the listing took the ticker included: a ticker reused after its earlier holder delisted returns the new holder's older rows, so set symbol_at inside the range to name the listing that traded under the ticker then. Tickers are recorded only where there is evidence for them (for many listings from 2003, though prices start earlier), and none is asserted earlier. As a lookup convenience, a date before a listing's earliest recorded ticker still finds the listing by that ticker when no record contradicts it (no listing is recorded under the ticker by that date, and the listing has no earlier ticker): its rows carry the symbol as a label and meta.unrecorded_symbols lists it. A date before the listing's first row returns 200 with no-data, as a to before it does. A ticker another listing held, or one the listing was renamed from or to, returns 404 naming the date and the listing; instrument_ids select a listing at any 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.
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- Deprecated: the same stable public ID as instrument_id, which replaces it.Being superseded by instrument_id, which carries the same value. Read instrument_id where present; security_id remains for compatibility.
instrument_idstring- Stable public instrument ID, independent of ticker; the instrument_id of the research endpoints.
symbolstring- symbol
exchange_micstring- exchange mic
currency_codestring- currency code
last_pricestring · null- Last trade price in the delayed snapshot. Exact decimal string.
bid_pricestring · null- Always null for now: no licensed source supplies bid and ask quotes yet. Reserved so clients need not change when one does.
ask_pricestring · null- Always null for now: no licensed source supplies bid and ask quotes yet. Reserved so clients need not change when one does.
bid_sizestring · null- Always null for now: no licensed source supplies bid and ask quotes yet. Reserved so clients need not change when one does.
ask_sizestring · null- Always null for now: no licensed source supplies bid and ask quotes yet. Reserved so clients need not change when one does.
last_atstring · null- When the last trade printed: for exchange listings at least 15 minutes before the snapshot was published (US snapshots every 10 minutes, international ones every 60 minutes, and every 10 minutes for listings requested in the last 24 hours); for the leading crypto pairs, which are not delayed, usually under 10 minutes before the request, and up to about two hours for other pairs; for currency pairs while the forex market is open, up to about 10 minutes; for indices (the INDEX venue) about 15 minutes before the snapshot.
bid_atstring · null- Always null for now: no licensed source supplies bid and ask quotes yet. Reserved so clients need not change when one does.
ask_atstring · null- Always null for now: no licensed source supplies bid and ask quotes yet. Reserved so clients need not change when one does.
adjustmentstring- Present only for adjusted prices.
splittotal_return factor_set_versioninteger- Present only for adjusted prices.
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 quotes.read. Access, recency and history depth come from the plan definitions the API enforces.
| Plan | Access | Recency | History |
|---|---|---|---|
| Free | Included | 15-minute delayed; crypto and currency pairs undelayed snapshots | Not date-bounded |
| Developer | Included | 15-minute delayed; crypto and currency pairs undelayed snapshots | Not date-bounded |
| Pro | Included | 15-minute delayed; crypto and currency pairs undelayed snapshots | Not date-bounded |
| Commercial | Included | 15-minute delayed; crypto and currency pairs undelayed snapshots | Not date-bounded |
| Scale | Included | 15-minute delayed; crypto and currency pairs undelayed snapshots | Not 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