DocsOverview

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

1 / 4

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

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:

Base URL
https://api.tickerlayer.com
  • All responses are JSON with Content-Type: application/json.
  • Timestamps are Unix milliseconds (number).
  • HTTP methods are GET only for data endpoints.
  • 404 responses 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 with CC: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_size on some snapshots). Nullable fields are present with null when 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 404 with a plain message. An empty list returns 200 with 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