TraktorAPI
Get API key

Overview

A map of the API, from its base URLs and routes to the shape of its answers.

Make your first request in the Quickstart: create a key, call the signal feed, then open the stream.

The Traktor API serves the trades Traktor indexes, and the market views its dashboard shows, over REST and two WebSockets.

Base URL

REST lives under https://api.traktor.fun/v1 and answers JSON. The trade stream connects at wss://api.traktor.fun/v1/stream, the market stream at wss://api.traktor.fun/v1/market/stream.

Every GET route here also answers HEAD, at the same cost, and a script on any origin may call REST: every route answers the browser's CORS preflight.

What it serves

SurfaceRoutesCredentialPages
TradesWS /v1/streamAPI keyStream
Market viewsGET /v1/market and its viewsAPI keyMarket
TokensGET /v1/tokens/{chain}/{address} and its signals, GET /v1/searchAPI keyTokens
SignalsGET /v1/signals, GET /v1/signals/boardAPI keySignals
Accounts leaderboardGET /v1/leaderboardAPI keyLeaderboard
TradersGET /v1/traders/directory, GET /v1/traders/{wallet} and its portfolioAPI keyTraders
StocksGET /v1/stocks, GET /v1/stocks/registryAPI keyStocks
The API itselfGET /v1/plans, GET /v1/meta/filters, GET /v1/stream/position, GET /v1/usageNone for the first two, an API key for the restMeta and usage
Alerts and notifications/v1/alerts, GET /v1/alert-capabilities, /v1/notifications, /v1/webhooks, /v1/telegram/link-codes, /v1/telegram/linksAPI key, browser session or Traktor sign-in; none for GET /v1/alert-capabilities, and only a Traktor sign-in for POST /v1/telegram/link-codesAlerts, Notifications
Browser sessionsPOST /v1/browser-sessions/exchange, GET and DELETE /v1/browser-sessions/currentAPI key to open one, then the sessionAuthentication
Public market and searchGET /v1/public/market, GET /v1/public/search, WS /v1/market/streamNone, or a key on the market streamPublic market and search, Market stream

No route places, changes or cancels an order: trading happens in the Traktor app, Solana and grid orders included.

Authentication covers each credential, and Every limit lists each route's limits on one page.

Answers

A REST answer puts its result in data, and its request id, times and caveats in meta:

{
  "data": [],
  "meta": {
    "requestId": "req_01m40t5ceg7k2q9xv4ra",
    "generatedAt": "2026-10-03T12:00:02.000Z",
    "asOf": "2026-10-03T12:00:01.500Z",
    "caveats": []
  }
}
  • asOf dates the data, and the X-Traktor-As-Of header repeats it. generatedAt dates the answer. An answer that dates no data, such as the plans, has asOf: null and no header.

  • caveats qualify the whole answer; Caveats lists each one.

  • A paged answer adds meta.page. The signal feed, and the market views that read raw trades (tape, rotation, wallets), add meta.retention.

  • Each answer carries an ETag over its data and what meta says of it, never over requestId, generatedAt or asOf. Send it back as If-None-Match, and an unchanged answer is a 304 with no body: it draws no units and still counts as a request. GET /v1/plans, the market views and the token, signal, trader and stock reads answer 304 while their data stands still. GET /v1/meta/filters carries what the answering server itself read, and the API runs on several servers, so its 304 comes only from that server, until it reads again. GET /v1/usage, GET /v1/stream/position, GET /v1/alert-capabilities and the alert, notification, Telegram and session routes ignore If-None-Match and answer in full.

  • A failure is never a 200: it is an error with a stable code.

GET /v1/public/market and GET /v1/public/search answer with the resource's own JSON, outside this envelope.

Coverage

The table is read live from GET /v1/meta/filters and shows which apps the API tracks on each chain.

ChainfomoGMGNAxiomMaestropumpPadreBloomTrojanBONKbotPhotonCoinbase WalletBankr
Robinhoodyesyesyesyespartial
BNByesyesyesyespartial
Baseyesyesyespartialpartial
Arcyesyesyes
Arbitrumyespartial
Ethereumyesyesyes
Monadyesyes
HyperEVMyesyes
Solanayesyesyesyesyesyesyesyesyesyes

Trades are kept 24 hours and minute buckets 48 hours. A partial pair is measured on its verified routes only.