API reference

List tracked tickers

GET/tickersKey required

Tracked tickers

Returns the tickers the account tracks, in the order they were added, each with whether the nightly covers it, plus the count, the cap and the account the list belongs to. The tracked set is the account's My watchlist on the TradingPal site, so it also changes when the user edits the watchlist there. The pattern and history routes answer only for these tickers.

Authentication

Needs a key: send Authorization: Bearer tp_live_… (see Authentication). Counted against the key's limits of 60 requests a minute and 10,000 a day.

Parameters

NameInTypeRequiredDescription
X-TradingPal-ClientheaderstringnoOptional name of the agent or script making the call. It is recorded in the account's usage log so the user can see which client made which calls; the User-Agent is recorded when it is absent.

Request

curl "https://api.tradingpal.io/api/v1/tickers" \
  -H "Authorization: Bearer $TRADINGPAL_API_KEY"

Response

JSON. The fields this route adds are below; every response also carries the envelope fields (api_version, as_of_session, data_version, source, disclaimer).

FieldTypeDescription
tickersarray of objectThe tracked tickers, in the order they were added.
tickers[].symbolstringExchange symbol, upper case.
tickers[].coveredbooleanTrue when the active nightly manifest covers the symbol, so the pattern and history routes can answer for it. False means it is tracked but the nightly has no data for it.
countintegerNumber of tracked tickers.
capintegerMaximum number of tickers the account may track.
accountobjectThe TradingPal account the list belongs to, so a host can say which account is connected when the list is not the one the user expected.
account.emailstringThe account's sign-in email.

Example response

Response
{
  "api_version": "v1",
  "tickers": [
    {
      "symbol": "NVDA",
      "covered": true
    }
  ],
  "count": 1,
  "cap": 200,
  "account": {
    "email": "you@example.com"
  }
}

Errors

Errors are JSON with the Error shape; the fix field says what to do.

StatusCodeMeaningFix
401missing_api_keyThe request had no Authorization: Bearer tp_live_… header and the route needs one.Send the header on every keyed call. Only the demo, families and universe routes answer without it.
401invalid_api_keyThe key is not one we know, or it has been revoked.Create a new key on the API Keys page and replace it wherever the old one was stored.
403forbiddenThe account behind the key is not on Premium+. API and MCP access requires Premium+ subscription at $30/month; Premium alone does not unlock the API.Get Premium+ ($30/month, all of the benefits in Premium plus API and MCP access) from the Quickstart, where a first subscription starts with 14 days free, or switch an existing Premium subscription to it there, then retry with the same key.
429rate_limitedThe key passed 60 requests in a minute or 10,000 in a day, or a keyless caller passed 30 a minute from one IP.Wait details.retry_after_seconds, then retry. Cache the nightly answers; they do not change until the next session.