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):

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