---
title: "List active tickers"
method: GET
path: "/api/symbols/"
tags: ["symbols"]
---

# List active tickers

`GET /api/symbols/`

All active symbols (US equities, crypto, and foreign listings), alphabetical by ticker. ~10k entries — cache aggressively, or slice with the optional `limit`/`offset` params (the response stays a bare array either way). Pass `search` to resolve a name, brand or ticker prefix to its canonical symbol (`search=bitcoin` returns `BTC-USD`, `search=spacex` returns `SPCX`).

## Query parameters

- `limit` integer
- `offset` integer
- `search` string

## Response `200`

List of active symbols.

- Symbol[]
  - `symbol` string, required
  - `name` string, required
  - `asset_type` string — `Stock`, `ETF`, or `Crypto`.
  - `exchange` string — TradingView exchange prefix. US: NYSE / NASDAQ / AMEX / OTC / CBOE (from SEC's exchange mapping). Foreign listings carry their venue prefix (LSE, XETR, EURONEXT, TSE, HKEX, KRX, …); crypto carries the `CRYPTO` sentinel. Empty string when unknown.
  - `sector` string
  - `industry` string
  - `description` string
  - `website` string, uri, nullable
  - `brand_aliases` string[] — Lowercase names the issuer is known by, when they differ from `name` (`["spacex"]` on SPCX, registered as SPACE EXPLORATION TECHNOLOGIES CORP). Use them to match a name a user typed against a ticker. Usually empty: most issuers are already reachable by their registered name. List responses only.
  - `country` string — ISO alpha-2 country of domicile. `US` for SEC-listed symbols, the listing venue's country for foreign listings. Empty for crypto — a coin has no domicile.
  - `currency` string — Trading currency. `USD` for SEC-listed symbols and crypto pairs, the local currency for foreign listings.
  - `status` string — Listing status, `active` or `delisted`. Delisted symbols stay resolvable on this endpoint so their news history remains reachable.
  - `delisted_at` string, date-time, nullable — When the symbol was marked delisted. Null for active symbols and for symbols delisted before July 2026.
  - `renamed_to` string — Set on a delisted symbol when the company continues under a new ticker (for example SATS became ECHO). Empty otherwise.

## Other responses

- `400` — Out-of-range or unknown query parameter.
- `401` — Missing or invalid API key.
- `429` — Rate limit exceeded — either the per-minute burst cap or the per-day volume cap. The `Retry-After` header tells you how long to wait (a burst block is short, ≤60s; a day-cap block is capped at 3600s — the true reset is `X-RateLimit-Reset`). The `X-RateLimit-*` trio shows the daily volume budget. The body's `extra` names your tier, its `limit_per_minute` / `limit_per_day`, `retry_after_seconds`, and — below Pro — an `upgrade` block with the higher tiers' caps and the pricing URL.

---

[API](https://skmtc.net/alphai/apis/alphai-rest-api.md) · [All operations](https://skmtc.net/alphai/apis/alphai-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alphai/alphai-rest-api/revisions/2f34f38bad24/schema)
