Documentation
TickerLayer is a developer-first aggregated market data platform. REST for snapshots, quotes, trades, and historical bars. Public WebSocket for low-latency streaming when market connections are active.
Recent updates
- Data Quality benchmarks: measured runs per asset class against selected market references
- Forex raw line: SYMBOL.RAW streams one venue, unblended, with tick volume
- ETF quotes outside US regular hours are held to a 0.5% spread
Important Data Notice
All API and WebSocket data provided by TickerLayer comes from non-exchange sources. It is not official exchange feed data and may be delayed, inaccurate, incomplete, or different from official market prices. The same applies to CFD-style index and ETF-style reference symbols and to commodity reference prices exposed through the API. The data is for informational and technical use only. Redistribution is prohibited unless expressly authorized in writing.
What you can access
Stocks
US and international equities with market-qualified symbols (e.g. US:AAPL, DE:BMW). Quote, last trade, snapshot, OHLCV, and prev close.
Forex
FX pairs (e.g. EURUSD). Same REST shape as stocks. WebSocket forex.quotes / forex.trades.
Crypto
Spot crypto (e.g. BTCUSD). Normalized quote and trade fields. WebSocket crypto.quotes / crypto.trades.
Commodities
Metals, energy, and agriculture reference prices (e.g. XAUUSD, WTIUSD). REST under /commodities; WebSocket commodities.quotes / commodities.trades when enabled.
Indices
Index-style indicative levels (e.g. US500, DE40). REST under /indices with quotes, snapshots, and aggregates.
ETFs
ETF-style reference instruments (e.g. US500ETF). REST under /etfs with quotes, snapshots, and aggregates.
Authentication
Every request requires your API key. REST uses a header; WebSocket uses the upgrade URL:
- REST —
x-api-key: <YOUR_API_KEY>header - WebSocket upgrade —
wss://stream.tickerlayer.com/?apiKey=<YOUR_API_KEY>
Missing or invalid keys return 401. Inactive keys or keys without the required permissions return 403. Full authentication guide →
Base URL & conventions
All REST routes are served from the same host. Use the base URL below:
https://api.tickerlayer.com- All responses are JSON with
Content-Type: application/json. - Timestamps are Unix milliseconds (
number). - HTTP methods are
GETonly for data endpoints. 404responses use NestJS JSON shape{ "statusCode": 404, "message": "…" }when a route is found but the requested symbol or resource does not exist.
Symbol format
Symbols are uppercase strings from the enabled registries. Path parameters are normalized (trimmed and uppercased) before lookup. Use the symbols endpoints to discover what is enabled for your key:
GET /stocks/symbols— equities withCC:SYMBOL(optional?market=CC)GET /forex/symbols— FX pairs (e.g.EURUSD)GET /crypto/symbols— crypto spot (e.g.BTCUSD)GET /indices/symbols— index codes (e.g.US500,JP225)GET /etfs/symbols— ETF-style codes (e.g.US500ETF)GET /commodities/symbols— commodity references (e.g.XAUUSD,WTIUSD)- Bonds — REST yield only via
GET /bond/last/:symbol(no symbols list)
Unknown symbols typically return 404 with a NestJS { "statusCode", "message" } body. See Symbols reference →
Response conventions
- Null and optional fields — required fields are always present. Fields explicitly documented as optional may be omitted entirely (for example
last_sizeon some snapshots). Nullable fields are present withnullwhen no reliable figure exists in the aggregated view at that moment. Individual fields may be optional depending on market conditions; see each route for response details. - 404 vs empty — a missing resource returns
404with a plain message. An empty list returns200with an empty array. - Rate limiting — exceeded quotas return
429. Refer to the Rate limits page. - Error shapes — REST errors follow NestJS default shape:
{ statusCode, message, error }. See the Errors reference.
Next steps
Quickstart
Issue a key, make your first REST call, and open a WebSocket in under 5 minutes.
Get started →WebSocket stream
Connect, authenticate, subscribe to channels, and handle real-time events.
WebSocket docs →Rate limits
Quotas, HTTP 429 structure, and in-stream WebSocket error codes.
View limits →Symbols reference
List enabled symbols for any asset class to discover what your key can access.
List symbols →