← tickerbot.io
View as markdown

Symbol catalog

GEThttps://api.tickerbot.io/v2/tickers

Every symbol we track, active or delisted, as one identity row each. Use /v2/tickers/{ticker} for the full row.

string

Case-insensitive match on ticker or name, max 64 characters (longer is a 400). Results are ranked: an exact ticker match first, then symbols that start with the term, then name matches — alphabetical within each rank. The cursor carries the rank, so paging a search never repeats or skips.

string[]

Filter by asset class — stocks, rates, crypto, fx, or a comma-separated list (the live classes today; validated for shape, not against a fixed list, so a well-formed class we don't track simply matches nothing — same contract as scan). Omit for every class. This is the class of INSTRUMENT, distinct from asset_type below (the instrument type within equities). Every row carries its asset_class, so a non-equity row identifies itself.

enum

Filter by instrument type WITHIN equities — the stored asset_type value (CS, ETF, ADRC, PFD, FUND, UNIT, SP, ETS, WARRANT, RIGHT, ETN, ETV), matched case-insensitively. equity is a convenience value expanding to the equity-like set. This is NOT an asset class: asset_type=crypto is rejected — use asset_class=crypto.

string

Filter by exchange name — the value rows carry in their exchange field. MIC codes (XNAS, XNYS, BATS) are also accepted and match exchange_mic. A malformed value (non-letters, over 16 chars) is a 400.

integerdefault 50

Page size. Max 1000.

string

Opaque cursor from the previous response's next_cursor field. Continues the walk from after that page. A cursor minted under search only resumes the same search.

as_ofstring

Server time this response was assembled (ISO 8601).

countnumber

Rows in this page.

next_cursorstring

Opaque token for the next page; `null` on the last page.

resultsarray

One identity row per symbol — the thirteen signals named above, nothing else. `active: false` rows carry `delisted_utc`; they are still addressable on the state route with `asof`.

_metaobject

With `asset_class` only: `scope.asset_class` lists the classes the page was filtered to.

200
Success — the response shape is documented under Returns above.
400
Invalid cursor, malformed filter, or a retired parameter (tickers, universe, asof, min_market_cap, sector) — the message names where each one moved.
401
Missing or invalid API key.
  • Covers ~21,082 US equities plus rates, FX and crypto — see Tickers for how each class is spelled.
  • The identity row is ticker, name, asset_class, asset_type, exchange, exchange_mic, currency_name, country, cik, composite_figi, list_date, delisted_utc, active — the spec's identity category. This endpoint is to symbols what /v2/signals is to signals.
  • This is the catalog, not a lookup. For the full state row of one symbol use GET /v2/tickers/{ticker}; for several at once put the list in the path — GET /v2/tickers/AAPL,MSFT,NVDA (up to 50). For every member of a universe use /v2/scan?universe=. For who held a symbol at a past date, GET /v2/tickers/{ticker}?asof=.
  • Before 2026-09-08 this endpoint also served full rows via ?tickers= and ?universe=, and ?asof= meant symbol tenure. Those parameters now return a 400 naming the replacement — see the changelog.
  • Cursors are opaque base64url tokens. Pass next_cursor back unchanged as ?cursor=... to walk forward.
Find a symbol by name
curl "https://api.tickerbot.io/v2/tickers?search=apple&limit=3" \
  -H "Authorization: Bearer YOUR_KEY"
Response
{
  "as_of": "2026-09-08T14:20:11.474Z",
  "count": 3,
  "next_cursor": "eyJhZnRlcl9yYW5rIjoyLCJhZnRlcl90aWNrZXIiOiJBUExFIn0",
  "results": [
    { "ticker": "AAPL", "name": "Apple Inc.",                 "asset_class": "stocks", "asset_type": "CS", "exchange": "NASDAQ", "exchange_mic": "XNAS", "currency_name": "usd", "country": "us", "cik": "0000320193", "composite_figi": "BBG000B9XRY4", "list_date": "1980-12-12", "delisted_utc": null, "active": true },
    { "ticker": "APLE", "name": "Apple Hospitality REIT, Inc.", "asset_class": "stocks", "asset_type": "CS", "exchange": "NYSE",   "exchange_mic": "XNYS", "currency_name": "usd", "country": "us", "cik": "0001418121", "composite_figi": "BBG006473V72", "list_date": "2015-05-18", "delisted_utc": null, "active": true },
    { "ticker": "PNPL", "name": "Pineapple Inc.",             "asset_class": "stocks", "asset_type": "CS", "exchange": "OTC Link", "exchange_mic": null, "currency_name": "usd", "country": "us", "cik": "0001654672", "composite_figi": "BBG00LT9HZV4", "list_date": "2019-04-16", "delisted_utc": null, "active": true }
  ]
}