Get a Combo
Returns a single multi-leg (combo) market by ticker. Returns 404 if the ticker is not a multi-leg market.
GET
/combos/{ticker}Authorization
None. This operation accepts unauthenticated requests.
Path parameters
tickerTickerrequiredThe combo market's ticker.
min length 1 · max length 128
Header parameters
UDX-VersionstringDated API version (YYYY-MM-DD). Omit to use the oldest supported version. An unknown version returns `400`.
max length 10
Responses
200The combo market.
comboComborequiredA multi-leg (combo) market — a tradable market composed of two or more legs. Carries the same fields as a market, plus its legs.
Show propertiesHide properties
tickerTickerrequiredA market identifier (ticker) — a human-meaningful natural-key symbol, not a UUID. Unique per market.
min length 1 · max length 128
event_tickerstringIdentifier of the event this market belongs to.
max length 128
descriptionstringHuman-readable description of what the market resolves on.
max length 2048
statusMarketStatusrequiredMarket trading status. `open` accepts orders; `closed` and `paused` do not; `expired` is past its expiry; `settled` has resolved to an outcome.
Allowed:
openclosedpausedexpiredsettledevent_datestringApproximate date of the real-world event, as YYYY-MM-DD.
max length 10
tick_sizeobjectMinimum price increment, in dollars.
Show propertiesHide properties
objectminimum_priceobjectMinimum allowed order price, in dollars.
Show propertiesHide properties
objectmaximum_priceobjectMaximum allowed order price, in dollars.
Show propertiesHide properties
objectexpires_atstring<date-time>When the market expires. UDX timestamps use RFC 3339; requests require an explicit UTC offset and zero to six fractional digits; responses use UTC with exactly six fractional digits.
max length 40
volumeobjectTotal contracts traded on the market.
Show propertiesHide properties
objectopen_interestobjectOpen interest, in contracts.
Show propertiesHide properties
objectlegsComboLeg[]requiredThe two-or-more legs that compose the combo.
min items 2 · max items 100
Show propertiesHide properties
Array of
ComboLegtickerTickerrequiredA market identifier (ticker) — a human-meaningful natural-key symbol, not a UUID. Unique per market.
min length 1 · max length 128
opposing_sidebooleanrequiredWhether this leg trades on the side opposing the combo (the NO side of the leg's underlying market).
404The requested resource doesn't exist or isn't visible to the caller.
typestring<uri-reference>A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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 public request rate was exceeded. Wait for `Retry-After`.
typestring<uri-reference>A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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>A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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. Retry later.
typestring<uri-reference>A stable URI identifying the error's general category. Usually absent (equivalent to "about:blank" per the RFC); documented rate controls use closed URN values so callers can distinguish same-status retry causes without parsing localized prose.
max length 2048
titlestringrequiredA 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
statusintegerrequiredThe HTTP status code, repeated from the response itself.
detailstringA 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://{hostname}/combos/UDX-EXAMPLE-MARKET"const response = await fetch("https://{hostname}/combos/UDX-EXAMPLE-MARKET", {
method: "GET"
});import requests
response = requests.get(
"https://{hostname}/combos/UDX-EXAMPLE-MARKET",
)Response
{
"combo": {
"ticker": "UDX-EXAMPLE-COMBO",
"event_ticker": "UDX-EXAMPLE-EVENT",
"description": "A two-leg example combo.",
"status": "open",
"event_date": "2026-06-21",
"tick_size": "0.01",
"minimum_price": "0.01",
"maximum_price": "0.99",
"expires_at": "2026-06-21T00:00:00.000000Z",
"volume": "500",
"open_interest": "120",
"legs": [
{
"ticker": "UDX-EXAMPLE-MARKET-A",
"opposing_side": false
},
{
"ticker": "UDX-EXAMPLE-MARKET-B",
"opposing_side": true
}
]
}
}{
"title": "Not Found",
"status": 404,
"detail": "not found",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:unauthenticated-rate-limit-exceeded",
"title": "Too Many Requests",
"status": 429,
"detail": "this client has temporarily exceeded the public request rate",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"title": "Internal Server Error",
"status": 500,
"detail": "internal error",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}{
"type": "urn:udx:problem:request-admission-unavailable",
"title": "Service Unavailable",
"status": 503,
"detail": "request admission is temporarily unavailable",
"instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}