---
title: "List active instruments"
method: GET
path: "/v1/symbols"
tags: ["Symbols"]
---

# List active instruments

`GET /v1/symbols`

## Request

- Base URL: `https://api.sifting.io`
- URL: `https://api.sifting.io/v1/symbols`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`
- TypeScript: <https://skmtc.dev/sifting/apis/siftingio-market-data-api/docs/v1/symbols/get.ts> (a function with typed inputs; its response is checked against the schema)

Search the instrument catalog across stocks, crypto, DEX, forex and
commodities. Only active entries are listed. Results are ordered by
asset class, symbol and a stable internal tie-breaker.
Catalog access has no market entitlement gate, but normal API-key
authentication, usage accounting and rate limits still apply.
A catalog entry does not guarantee live or historical data availability.
Gzip is supported but not required.

## Query parameters

- `asset_class` string
- `venue` string
- `q` string
- `cursor` string
- `limit` integer

## Response `200`

Active catalog entries. An empty result is a successful response. A malformed cursor returns 400.

- SymbolCatalogListResponse
  - `data` CatalogInstrument[], required
    - `slug` string, required: Canonical identifier with literal slash separators: asset_class/symbol, or dex/chain/symbol for DEX. Encode segments separately when building a detail URL.
    - `asset_class` 'stocks' | 'crypto' | 'dex' | 'forex' | 'commodities', required
    - `venue` string, required: Venue tag stored in the catalog.
    - `market_id` string: Market identifier, when mapped.
    - `symbol` string, required: Canonical instrument symbol.
    - `name` string
    - `base_asset` string
    - `quote_asset` string
    - `currency` string
    - `status` 'active' | 'inactive' | 'delisted', required
    - `details` object, required: Asset-specific metadata; an empty object when unavailable.
  - `meta` object, required
    - `as_of` string, date-time, required: Response generation time, not the underlying market data timestamp.
    - `count` integer, required: Number of entries in this page, not the total catalog size.
    - `next_cursor` string: Opaque cursor for the next page; omitted on the last page.

## Other responses

- `400`: Invalid request parameters.
- `401`: Missing or invalid API key.
- `429`: Rate limit exceeded.
- `500`: The catalog could not be read.
- `503`: Upstream or snapshot temporarily unavailable.

---

[API](https://skmtc.dev/sifting/apis/siftingio-market-data-api.md) - [All operations](https://skmtc.dev/sifting/apis/siftingio-market-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sifting/apis/siftingio-market-data-api/revisions/c570068c2359?raw)
