Indices
Indicative index levels under /indices: discovery, quotes, last trade, snapshots, and aggregates for analytics, display, and operational tooling.
Symbols
Symbols are generic public codes such as US500, US30, US100, DE40, EU50, and JP225. Unlike stocks and ETFs, index codes carry no market prefix: an index is written HK33, never HK:HK33, and the prefixed form is rejected. Use GET /indices/symbols for the curated list enabled for your key (see Symbols → Indices).
Symbol list
Curated index symbols available on the REST API.
Request
curl -sS "https://api.tickerlayer.com/indices/symbols" \
-H "x-api-key: <YOUR_API_KEY>"Response 200 OK
{
"symbols": [
{ "symbol": "DE40", "name": "Germany 40", "aggregates": true },
{ "symbol": "EU50", "name": "Europe 50", "aggregates": true },
{ "symbol": "US500FUT", "name": "US500 Futures", "aggregates": false }
]
}Notes
aggregates says whether /indices/agg/... serves the symbol. Quotes and snapshots are available for every listed symbol; a few futures and regional codes are quote-only, and the directory says so rather than answering 404 on the bar routes.Latest quote
Indicative bid/ask and timestamp from the consolidated REST quote path.
Path parameters
symbol- Enabled index symbol (e.g. US500, DE40, EU50, JP225). Generic regional codes only, trimmed and uppercased before lookup. Full list: GET /indices/symbols.
Request
curl -sS "https://api.tickerlayer.com/indices/quote/US500" \
-H "x-api-key: <YOUR_API_KEY>"Send runs against the live API with your account key (never exposed in the browser).
Response 200 OK
{
"symbol": "US500",
"bid": 4788.12,
"ask": 4788.12,
"bid_size": 62,
"ask_size": 58,
"timestamp": 1743512400000
}Notes
404 unknown symbol if the code is not enabled. 404 no quote available when no consolidated quote can be resolved.Last trade
Latest indicative trade-style print for the index. size may be null when the feed has no lot size.
Path parameters
symbol- Enabled index symbol (e.g. US500, DE40, EU50, JP225). Generic regional codes only, trimmed and uppercased before lookup. Full list: GET /indices/symbols.
Request
curl -sS "https://api.tickerlayer.com/indices/trade/last/US500" \
-H "x-api-key: <YOUR_API_KEY>"Send runs against the live API with your account key (never exposed in the browser).
Response 200 OK
{
"symbol": "US500",
"price": 4788.12,
"size": 62,
"timestamp": 1743512400000
}Notes
404 when the symbol is unknown or no trade-style value can be resolved (message text may be unknown symbol or symbol not available).Snapshot
Combined bid/ask, last reference level, previous daily close, and change metrics.
Path parameters
symbol- Enabled index symbol (e.g. US500, DE40, EU50, JP225). Generic regional codes only, trimmed and uppercased before lookup. Full list: GET /indices/symbols.
Request
curl -sS "https://api.tickerlayer.com/indices/snapshot/US500" \
-H "x-api-key: <YOUR_API_KEY>"Send runs against the live API with your account key (never exposed in the browser).
Response 200 OK
{
"symbol": "US500",
"bid": 4788.12,
"ask": 4788.12,
"bid_size": 62,
"ask_size": 58,
"last_price": 4788.12,
"last_timestamp": 1743512400000,
"prev_close": 4750.00,
"change": 38.12,
"change_percent": 0.8025
}Notes
change_percent is null when prev_close is zero or unavailable.Previous bar
Most recent fully completed daily OHLCV bar in UTC (previous session close).
Path parameters
symbol- Enabled index symbol (e.g. US500, DE40, EU50, JP225). Generic regional codes only, trimmed and uppercased before lookup. Full list: GET /indices/symbols.
Query parameters
interval- Returns the most recently settled bar at that interval instead of the previous daily bar, and adds
interval,bar_start,bar_endandas_ofto the response. Leave it out for the daily bar.Values1m5m15m1h4h1d
Request
curl -sS "https://api.tickerlayer.com/indices/agg/US500/prev" \
-H "x-api-key: <YOUR_API_KEY>"Response 200 OK
{
"symbol": "US500",
"result": {
"o": 5950.0,
"h": 5980.0,
"l": 5930.0,
"c": 5965.0,
"v": null,
"t": 1732924800000
}
}Notes
/indices/agg/:symbol/1/day/... for that date; v is null where the index has no consolidated volume. 404 no bar available when the daily bar cannot be resolved yet. A bar requested with ?interval= is held for a short settle lag after it closes, so small clock differences between callers do not change which bar comes back, and it is the same bar the range endpoint returns for that window. Cache-Control and ETag mark when the value can next change. While the market is closed the last real bar is returned, still labelled with its own bar_start.Aggregate bars (OHLCV)
Historical bars between two UTC calendar dates.
Path parameters
symbol- An enabled symbol of this asset class, for example
BTCUSDorUS:KO. Trimmed before lookup. multiplier- Bar size in units of
timespan:1,5or15withminute;1or4withhour;1withday. Other pairs return400, and the message lists the valid ones. timespan- Case-insensitive. Other values return
400.Valuesminutehourday from- First UTC date, inclusive, as
YYYY-MM-DD. to- Last UTC date, inclusive, as
YYYY-MM-DD. Not beforefrom.
Query parameters
limit- Page size, up to
5000.results_countis the size of this page andtotal_countthe bars in the whole range; follownext_offsetuntil it isnull.Default500 offset- Zero-based row offset, applied after sorting.Default
0 sort- Order of bars by timestamp
t, applied before pagination.ValuesascdescDefaultdesc
Request
curl -sS "https://api.tickerlayer.com/indices/agg/EU50/1/day/2025-11-01/2025-11-30?sort=desc&limit=2" \
-H "x-api-key: <YOUR_API_KEY>"Response 200 OK
{
"symbol": "EU50",
"results_count": 2,
"results": [
{ "o": 5950.0, "h": 5980.0, "l": 5930.0, "c": 5965.0, "v": null, "t": 1733011200000 },
{ "o": 5920.0, "h": 5945.0, "l": 5905.0, "c": 5935.0, "v": null, "t": 1732924800000 }
],
"next_offset": 2
}Notes
vmay be null when no consolidated volume exists for that interval.- One request covers at most 31 days of 1-minute bars, 90 of 5-minute, 180 of 15-minute, 365 of hourly, 730 of 4-hour and 5000 of daily bars, counting
fromandtoas whole UTC days. A longer range returns400with the limit in the message. - Daily bars follow each index's trading days.
USVOLskips US market holidays likeUS500, even when the index is calculated in an extended session that day; its intraday bars show every calculated value.
WebSocket
Stream live quotes and trades for this asset class over the public WebSocket.
wss://stream.tickerlayer.com/?apiKey=<YOUR_API_KEY>Available channels
Subscribe example
After the connection is ready, send a JSON text frame:
{
"action": "subscribe",
"channels": [
"indices.quotes",
"indices.trades"
],
"symbols": [
"US500",
"DE40"
]
}Example message
{
"type": "quote",
"channel": "indices.quotes",
"asset": "indices",
"symbol": "US500",
"bid": 4788.12,
"ask": 4788.12,
"bid_size": 62,
"ask_size": 58,
"ts": 1743512400000,
"timestamp": 1743512400000
}General WebSocket documentation
For authentication, subscribe/unsubscribe lifecycle, errors, limits, and heartbeats, see the WebSocket overview, Subscriptions and Message types.