Skip to main content

Endpoints

Instruments & Symbols

Sports Data

See Sports Reference Data for detailed documentation.
No Participant ID RequiredThese endpoints only require Auth0 JWT authentication with read:instruments scope. You do not need to provide the x-participant-id header or complete KYC onboarding to access reference data.
No GET endpoint for single instrumentTo get a single instrument, use POST /v1/refdata/instruments with {"symbols": ["SYMBOL-NAME"]} in the body.

Filtering Instruments

The /v1/refdata/instruments endpoint supports configurable query parameters to filter and paginate results.

Request Parameters

All parameter names accept both camelCase and snake_case (e.g., eventSeries and event_series are equivalent). This is standard protobuf JSON serialization behavior.
Protobuf Enum CautionThe states and tradableFilter parameters use protobuf enums. Unrecognized values (typos, made-up states, etc.) silently map to the default enum value and return misleading results - they do not error or return empty. Only use the exact values documented here.

Response Fields

Pagination

Use pageSize and pageToken to paginate through large result sets.

Filtering by State

Filter instruments by their current trading state using the states parameter.
You can specify multiple states to match any of them:

Filtering by Series

Filter instruments by series (e.g., NFL, NBA, US Presidential):

Filtering by Category

Filter instruments by category (e.g., SPR for sports, POL for politics):

Filtering Crypto Instruments

Crypto price instruments use category CRY and clearing symbols of the form CPC-<SYMBOL>. Filter by series to get one cadence, e.g. every 15-minute Up/Down window:
Identify each instrument from its crypto_market_type metadata; see Crypto Schema.

Filtering Gold and Silver Instruments

Gold and silver price instruments use category FIN, subcategory COMMODITY and one clearing symbol per metal: CPAUSP-COMMODITY for gold and CPAGSP-COMMODITY for silver. Filter by clearing symbol and series to get one metal and one window length, e.g. every 15-minute gold window:
The series are gold-updown-15m, gold-updown-1h, gold-updown-1d, silver-updown-15m, silver-updown-1h and silver-updown-1d. Identify each instrument from its metals_market_type metadata; see Metals Schema.
/v1/refdata/instruments serves a cached copy of each instrument. Metadata that is written after an instrument is listed, such as price_to_beat and the settlement price fields on crypto and metals Up/Down windows, can take up to an hour to appear in its response. Read the final settlement from GET /v1/instruments/{symbol}/settlement, which reads the exchange live, and fresh prices to beat from the Retail market endpoints (assetPriceTerms.priceToBeat).

Combining Filters

You can combine multiple filters:

Advanced Filtering

The filter parameter supports two approaches that can be used independently or combined. When both are provided, results must match both conditions (AND). Option A: whereClause - A SQL-like string expression:
Supported operators: =, LIKE (with % wildcard), AND Supported columns:
Do not use instrument_product, outcome_type, or event_subcategory in whereClause - these cause HTTP 500 errors. The column event_id is accepted but returns 0 results for known values.
Option B: fieldFilters - Structured, type-safe filters:
Each field filter has a field name, an operator, and a typed value (stringValue or stringList). Multiple entries are ANDed together. The same columns supported in whereClause work in fieldFilters. Available operators:

Instrument Data

Each instrument includes:
Integer Fields Encoded as Strings in JSONFields typed as int64 in the protocol buffer definition (such as minimumTradeQty, priceScale, fractionalQtyScale, priceLimit.low, priceLimit.high) are serialized as strings in JSON responses per the proto3 JSON specification. Parse these values as numbers in your client code.For example, "priceScale": "100" is the string "100", not the number 100.

Instrument States

Primary State Flow

Exception States

Other Possible States

Price Scale

Prices in the API are represented as integers. Divide by priceScale to get decimal prices:
Cache Reference DataInstrument metadata changes infrequently. Cache reference data locally and refresh periodically (e.g., daily or on startup) rather than fetching for every request.

Usage Notes

  • Reference data is static during a trading session
  • Use /v1/refdata/instruments to get priceScale for price conversions
  • Instrument states change based on market schedule