API reference
List tracked tickers
GET
/tickersKey requiredTracked tickers
Returns the tickers the account tracks, in the user's order, each with whether the nightly covers it, plus the count and the cap. The tracked set is the account's Main watchlist on the TradingPal site, so it also changes when the user edits the watchlist there. The pattern, history and chart 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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-TradingPal-Client | header | string | no | Optional 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).
| Field | Type | Description |
|---|---|---|
tickers | array of object | The tracked tickers, in the order the user keeps them. |
tickers[].symbol | string | Exchange symbol, upper case. |
tickers[].covered | boolean | True 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. |
count | integer | Number of tracked tickers. |
cap | integer | Maximum number of tickers the account may track. |
Example response
{
"api_version": "v1",
"tickers": [
{
"symbol": "NVDA",
"covered": true
}
],
"count": 1,
"cap": 50
}Errors
Errors are JSON with the Error shape; the fix field says what to do.
| Status | Code | Meaning | Fix |
|---|---|---|---|
| 401 | missing_api_key | The 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. |
| 401 | invalid_api_key | The key is not one we know, or it has been revoked. | Create a new key on the Keys page and replace it wherever the old one was stored. |
| 403 | forbidden | The account behind the key is not on a plan with API access. | During the beta, keys work on Premium accounts. Upgrade the account, then retry with the same key. |
| 429 | rate_limited | The 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. |