Skip to content
UDX
2026-07-15

List Markets

Returns a page of single-leg and multi-leg markets, ordered by ticker ascending. Filters combine, so a market must match every filter given.

GET/markets
Authorization
Authorization

Optional — this operation also accepts unauthenticated requests.

UDX-Access-KeyAPI key · header

Opaque API key ID.

UDX-Access-TimestampAPI key · header

Unix time in milliseconds, within 30 seconds of server time.

UDX-Access-SignatureAPI key · header

Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt.

or
AuthorizationBearer token (JWT) · header

Bearer token for an active signed-in UDX user.

An authenticated request is metered against the member's read bucket and returns RateLimit headers; an unauthenticated request shares the public per-client limit.

Header parameters
Header parameters
UDX-Versionstring

Dated API version (YYYY-MM-DD).

min length 10 · max length 10
Query parameters
limitinteger

Maximum number of items to return in one page.

min 1 · max 100 · default: 10
pagestring

Opaque token identifying the requested page.

max length 512
statusMarketStatus[]

Return only markets in any of these trading statuses. Repeat the parameter to include more than one status.

max items 5
typestring

Select single-leg or multi-leg markets. Omit to include both.

Allowed:single_legmulti_leg
tickerTicker[]

Return only these markets. Repeat the parameter for each ticker. Tickers that don't name a market are ignored.

max items 100
series_tickerstring

Return only markets in this series, the markets listed under the same contract terms.

min length 1 · max length 128
event_tickerstring

Return only markets grouped under this ticker, such as the markets for one game in a series.

min length 1 · max length 128
Responses
200A page of markets.
marketsMarket[]required

One page of markets.

max items 100
Show properties
Array of Market
legsMarketLeg[]

Present only for multi-leg markets; absent for single-leg markets. Each leg selects a component market outcome.

min items 2
Show properties
Array of MarketLeg
tickerTickerrequired

A human-meaningful natural key naming a single-leg or multi-leg market.

min length 1 · max length 128
outcomestringrequired

The outcome of this component market selected by the multi-leg market.

Allowed:yesno
external_idsMarketExternalIds

Identifiers this market carries in third-party data providers' systems.

Show properties
optic_oddsMarketExternalIdsOpticOdds

Identifiers in OpticOdds.

Show properties
fixture_idstring

The OpticOdds fixture this market is priced from.

min length 1 · max length 128
market_idstring

The OpticOdds market this market is a selection of.

min length 1 · max length 128
team_idstring

The OpticOdds team this market is about, when the market is about a team.

min length 1 · max length 128
player_idstring

The OpticOdds player this market is about, when the market is about a player.

min length 1 · max length 128
tickerTickerrequired

A human-meaningful natural key naming a single-leg or multi-leg market.

min length 1 · max length 128
descriptionstring

Human-readable description of what the market resolves on.

max length 2048
statusMarketStatusrequired

Market trading status.

Allowed:unopenedopenpausedclosedexpired
tick_sizestring

Minimum price increment, in dollars.

max length 24 · matches ^[0-9]+(\.[0-9]{1,6})?$
minimum_pricestring

Minimum allowed order price, in dollars.

max length 24 · matches ^[0-9]+(\.[0-9]{1,6})?$
maximum_pricestring

Maximum allowed order price, in dollars.

max length 24 · matches ^[0-9]+(\.[0-9]{1,6})?$
expires_atstring<date-time>

The configured expiration instant.

max length 40
external_idsMarketExternalIds

Identifiers this market carries in third-party data providers' systems.

Show properties
optic_oddsMarketExternalIdsOpticOdds

Identifiers in OpticOdds.

Show properties
fixture_idstring

The OpticOdds fixture this market is priced from.

min length 1 · max length 128
market_idstring

The OpticOdds market this market is a selection of.

min length 1 · max length 128
team_idstring

The OpticOdds team this market is about, when the market is about a team.

min length 1 · max length 128
player_idstring

The OpticOdds player this market is about, when the market is about a player.

min length 1 · max length 128
series_tickerstring

The series the market is listed under.

max length 128
event_tickerstring

Groups markets on the same game or contest within a series.

max length 128
titlestring

Short display name for the market.

max length 512
rulesstring

The rules that decide how the market resolves.

max length 65536
strikeMarketStrike

The threshold the market's outcome is compared with.

Show properties
typeMarketStrikeType

How the outcome is compared with the strike value.

Allowed:greatergreater_or_equallessless_or_equalequal
valuestringrequired

The strike itself, such as a line or a team name.

max length 255
unitMarketStrikeUnit

How to read the strike value.

Allowed:decimalintegerpointsstringboolunknown
opens_atstring<date-time>

The configured instant the market opens for trading.

max length 40
notional_valuestring

What one YES contract pays if the market resolves YES, in dollars.

max length 24 · matches ^[0-9]+(\.[0-9]{1,6})?$
contract_terms_urlstring<uri>

Link to the contract terms the market is listed under.

max length 2048
next_page_urlNextPageURL | nullrequired

Root-relative URL for the next page. Null when there are no more items.

max length 4096 · matches ^/[^/\s#][^\s#]*$
400The request doesn't conform to this spec.
typestring<uri-reference>required

A stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.

max length 2048
titlestringrequired

A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.

max length 40
statusintegerrequired

The HTTP status code, repeated from the response itself.

detailstring

A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.

max length 500
instancestring<uri-reference>

An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.

max length 100
429The request rate was exceeded. An unauthenticated request shares the public per-client limit; an authenticated request is metered against the member's read bucket.
typestring<uri-reference>required

A stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.

max length 2048
titlestringrequired

A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.

max length 40
statusintegerrequired

The HTTP status code, repeated from the response itself.

detailstring

A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.

max length 500
instancestring<uri-reference>

An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.

max length 100
500Something went wrong on UDX's side.
typestring<uri-reference>required

A stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.

max length 2048
titlestringrequired

A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.

max length 40
statusintegerrequired

The HTTP status code, repeated from the response itself.

detailstring

A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.

max length 500
instancestring<uri-reference>

An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.

max length 100
503Request admission is unavailable.
typestring<uri-reference>required

A stable URN identifying the kind of problem, for example urn:udx:problem:insufficient-permissions. Branch on it rather than on the localized detail. It is an identifier, not a URL to dereference.

max length 2048
titlestringrequired

A localized, human-readable summary of the error category. Stable for a given status code and resolved language — clients must not use it as a machine-readable discriminator.

max length 40
statusintegerrequired

The HTTP status code, repeated from the response itself.

detailstring

A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.

max length 500
instancestring<uri-reference>

An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.

max length 100
Request
curl -X GET "https://api.underdogexchange.com/markets" \
  -H "UDX-Access-Key: API_KEY_ID" \
  -H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
  -H "UDX-Access-Signature: BASE64_SIGNATURE"
Response
{
  "markets": [
    {
      "ticker": "UDX-EXAMPLE-MARKET",
      "description": "Will the example resolve YES?",
      "status": "open",
      "tick_size": "0.001",
      "minimum_price": "0.001",
      "maximum_price": "0.99",
      "expires_at": "2026-06-21T00:00:00.000000Z"
    },
    {
      "ticker": "UDX-EXAMPLE-MULTI",
      "description": "The first market resolves YES and the second resolves NO.",
      "status": "open",
      "legs": [
        {
          "ticker": "UDX-EXAMPLE-MARKET-A",
          "outcome": "yes"
        },
        {
          "ticker": "UDX-EXAMPLE-MARKET-B",
          "outcome": "no"
        }
      ]
    }
  ],
  "next_page_url": "/markets?limit=10&page=eyJ2IjoxfQ"
}