Skip to content
UDX
2026-07-15

List Order Books

Returns the current aggregated order book for each requested market, ordered by ticker ascending.

GET/orderbooks
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
tickerTicker[]required

The markets to read. Repeat the parameter for each ticker. Tickers that don't name a market are ignored.

min items 1 · max items 25
depthinteger<int32>

Maximum number of price levels to return per side of each book.

min 1 · max 1000
Responses
200The aggregated order books.
orderbooksOrderbook[]required

One order book per requested market, ordered by ticker ascending. A market with no visible orders has empty bids and asks.

max items 25
Show properties
Array of Orderbook
tickerTickerrequired

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

min length 1 · max length 128
bidsPriceLevel[]required

Bid levels, best first, as [price, quantity] pairs in YES dollars.

max items 1000
asksPriceLevel[]required

Ask levels, best first, as [price, quantity] pairs in YES dollars.

max items 1000
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/orderbooks?ticker=UDX-EXAMPLE-MARKET&ticker=UDX-EXAMPLE-MARKET-B" \
  -H "UDX-Access-Key: API_KEY_ID" \
  -H "UDX-Access-Timestamp: UNIX_MILLISECONDS" \
  -H "UDX-Access-Signature: BASE64_SIGNATURE"
Response
{
  "orderbooks": [
    {
      "ticker": "UDX-EXAMPLE-MARKET",
      "bids": [
        [
          "0.54",
          "120"
        ]
      ],
      "asks": [
        [
          "0.56",
          "80"
        ]
      ]
    },
    {
      "ticker": "UDX-EXAMPLE-MARKET-B",
      "bids": [],
      "asks": [
        [
          "0.31",
          "45"
        ]
      ]
    }
  ]
}