---
title: "List public symbols"
method: GET
path: "/v1/symbols"
tags: ["System"]
---

# List public symbols

`GET /v1/symbols`

## Request

- Base URL: `https://api.0xarchive.io`
- URL: `https://api.0xarchive.io/v1/symbols`
- Auth: none required

List the public market symbol universe across supported 0xArchive venue families. This no-auth feed powers website discovery and can be used before choosing a venue-specific route. It is a public utility route, not a legacy alias. Without `0xArchive-Version` the entries are under `symbols`; with `0xArchive-Version: 2026-10-01` the body is the standard envelope with the entries under `data`.

## Response `200`

Public symbol universe

- union
  - SymbolsResponse: `/v1/symbols` without `0xArchive-Version`: the symbol entries under `symbols`, with `success` and `meta.request_id`. With `0xArchive-Version: 2026-10-01` see `SymbolsEnvelope`.
    - `success` true, required
    - `symbols` SymbolEntry[], required
      - `symbol` string, required
      - `exchange` string, required: Venue-family key.
      - `coverage_from` string, date-time, nullable
      - `coverage_to` string, date-time, nullable
      - `data_types` string[], required
      - `coverage_by_type` object
      - `size_per_day` object
      - `slug` string, nullable: HIP-4 slug when available.
      - `outcome_pair` string[], nullable
      - `display_title` string, nullable
      - `is_settled` boolean, nullable
      - `is_active` boolean, nullable
    - `meta` object, required
      - `request_id` string, uuid, required: Unique request ID for support.
  - SymbolsEnvelope: `/v1/symbols` with `0xArchive-Version: 2026-10-01`: the standard envelope, with the symbol entries under `data` and their number in `meta.count`.
    - `success` true, required
    - `data` SymbolEntry[], required
      - `symbol` string, required
      - `exchange` string, required: Venue-family key.
      - `coverage_from` string, date-time, nullable
      - `coverage_to` string, date-time, nullable
      - `data_types` string[], required
      - `coverage_by_type` object
      - `size_per_day` object
      - `slug` string, nullable: HIP-4 slug when available.
      - `outcome_pair` string[], nullable
      - `display_title` string, nullable
      - `is_settled` boolean, nullable
      - `is_active` boolean, nullable
    - `meta` ResponseMeta, required: Response metadata. Every 2xx JSON response carries `meta.request_id`; list payloads add `count`; cursor-paged routes add `has_more` and, when another page follows, `next_cursor`; per-symbol routes add `symbol` and `venue`. Fields that do not apply to a route are omitted.
      - `count` integer: Number of records returned
      - `has_more` boolean: Cursor-paged routes: whether another page follows. `next_cursor` is present exactly when this is `true`. A final page can be empty when the previous page was exactly full; `has_more` is `false` on it.
      - `next_cursor` string: Opaque cursor for the next page, present exactly when `has_more` is `true`. Pass it back unchanged as `cursor` with the same filters. Do not parse or construct it.
      - `request_id` string, uuid, required: Unique request ID for support
      - `symbol` string: Per-symbol routes: the canonical public symbol the response describes (for example `BTC`, `xyz:TSLA`, `HYPE-USDC`, `#0`).
      - `venue` 'hyperliquid' | 'hip3' | 'hip4' | 'spot' | 'lighter' | 'rh-lighter': Per-symbol routes: the venue the response describes.
      - `coverage_from` string, date-time: Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
      - `notice` string: Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.
      - `finalized_through` string, date-time: Two-tier datasets (Lighter trades): data at or before this instant is final; later data is preliminary.
      - `requested_end` string, date-time, nullable: The `end` the request asked for, echoed when it was clamped to `finalized_through`.
      - `clamped_to` string, date-time, nullable: The boundary the request's `end` was clamped to, when clamping occurred.
      - `preliminary_row_count` integer, nullable: Number of preliminary rows in this response, on routes that intentionally serve preliminary data (Lighter `/recent`).

## Other responses

- `400`: Invalid request: a parameter, symbol, interval, cursor or time range failed validation. See `error_code`.
- `429`: Rate limit, concurrency limit or monthly credits exceeded. See `error_code`.
- `default`: Any other error. The body is an `ErrorResponse`; branch on `error_code`. A 503 (`upstream_unavailable`) carries `Retry-After`.

---

[API](https://skmtc.dev/0xarchive/apis/0xarchive-api-2.md) · [All operations](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/revisions/27076f55595f?raw)
