---
search:
  tags:
    - Markets
    - GET
seo:
  description: >-
    Returns one single-leg or multi-leg market and its current status by ticker.
    Reference for the GET /markets/{ticker} endpoint in the REST API.
sidebar:
  label: Get a Market
  badge: GET
title: Get a Market
type: openapi-operation
---
Returns one single-leg or multi-leg market and its current status by ticker.

### Endpoint

- Method and path: `GET /markets/{ticker}`
- Operation ID: `getMarket`
- API reference: [GET /markets/{ticker}](/api-reference/rest/markets/get-market)
- Complete specification: [OpenAPI (YAML)](/openapi.yml)
- Spec location (JSON Pointer): `#/paths/~1markets~1{ticker}/get`

#### Authorization

- Credential: optional. An authenticated request is metered against the member's read bucket and returns RateLimit headers; an unauthenticated request shares the public per-client limit.
- Accepted credentials: `UDX-Access-Key` header and `UDX-Access-Timestamp` header and `UDX-Access-Signature` header; or Bearer token in `Authorization`
- Details: [Authentication](/reference/authentication)

#### Parameters

```yaml
- $ref: "#/components/parameters/VersionHeader"
- name: ticker
  in: path
  required: true
  description: The market's ticker.
  schema:
    $ref: "#/components/schemas/Ticker"
```


#### Responses

##### `200`

The requested market.

Headers:

```yaml
UDX-Version:
  $ref: "#/components/headers/VersionHeader"
Cache-Control:
  $ref: "#/components/headers/NoStore"
```

Content type: `application/json`

Schema:

```yaml
$ref: "#/components/schemas/MarketResponse"
```

Example: Single-leg market

```json
{
  "market": {
    "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",
    "external_ids": {
      "optic_odds": {
        "fixture_id": "20260927A1B2C3",
        "market_id": "player_points",
        "player_id": "7G8H9I0J1K2L"
      }
    }
  }
}
```

Example: Multi-leg market

```json
{
  "market": {
    "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",
        "external_ids": {
          "optic_odds": {
            "fixture_id": "20260927A1B2C3"
          }
        }
      },
      {
        "ticker": "UDX-EXAMPLE-MARKET-B",
        "outcome": "no",
        "external_ids": {
          "optic_odds": {
            "fixture_id": "20260927D4E5F6"
          }
        }
      }
    ]
  }
}
```

##### `404`

No market with this ticker exists.

Headers:

```yaml
UDX-Version:
  $ref: "#/components/headers/VersionHeader"
```

Content type: `application/problem+json`

Schema:

```yaml
$ref: "#/components/schemas/ProblemDetails"
```

Example: Example

```json
{
  "type": "urn:udx:problem:market-not-found",
  "title": "Not Found",
  "status": 404,
  "detail": "market not found",
  "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}
```

##### `429`

The request rate was exceeded. An unauthenticated request shares the public per-client limit; an authenticated request is metered against the member's read bucket.

Headers:

```yaml
UDX-Version:
  $ref: "#/components/headers/VersionHeader"
Retry-After:
  $ref: "#/components/headers/RetryAfter"
Cache-Control:
  $ref: "#/components/headers/NoStore"
```

Content type: `application/problem+json`

Schema:

```yaml
$ref: "#/components/schemas/ProblemDetails"
```

Example: Public limit exceeded

```json
{
  "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"
}
```

Example: Member limit exceeded

```json
{
  "type": "urn:udx:problem:member-rate-limit-exceeded",
  "title": "Too Many Requests",
  "status": 429,
  "detail": "this member has temporarily exceeded its request rate",
  "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}
```

##### `500`

Something went wrong on UDX's side.

Headers:

```yaml
UDX-Version:
  $ref: "#/components/headers/VersionHeader"
```

Content type: `application/problem+json`

Schema:

```yaml
$ref: "#/components/schemas/ProblemDetails"
```

Example: Internal server error

```json
{
  "type": "urn:udx:problem:internal-error",
  "title": "Internal Server Error",
  "status": 500,
  "detail": "internal error",
  "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
}
```

##### `503`

Request admission is unavailable.

Headers:

```yaml
UDX-Version:
  $ref: "#/components/headers/VersionHeader"
Cache-Control:
  $ref: "#/components/headers/NoStore"
```

Content type: `application/problem+json`

Schema:

```yaml
$ref: "#/components/schemas/ProblemDetails"
```

Example: Admission temporarily unavailable

```json
{
  "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"
}
```


#### Referenced definitions

The references in the excerpts above resolve to these definitions in the complete specification.

##### `#/components/headers/VersionHeader`

```yaml
description: API version used for this response.
schema:
  type: string
  maxLength: 10
  description: A dated API version (YYYY-MM-DD).
  example: 2026-07-15
```

##### `#/components/headers/NoStore`

```yaml
description: Prevents caching this response.
schema:
  type: string
  enum:
    - no-store
  description: Always the cache directive no-store.
  example: no-store
```

##### `#/components/schemas/MarketResponse`

```yaml
type: object
description: One single-leg or multi-leg market.
required:
  - market
properties:
  market:
    $ref: "#/components/schemas/Market"
```

##### `#/components/schemas/Market`

```yaml
type: object
additionalProperties: false
description: A tradable binary market.
required:
  - ticker
  - status
properties:
  legs:
    type: array
    minItems: 2
    description: Present only for multi-leg markets; absent for single-leg markets. Each leg selects a component market outcome.
    items:
      $ref: "#/components/schemas/MarketLeg"
  ticker:
    $ref: "#/components/schemas/Ticker"
  description:
    type: string
    maxLength: 2048
    description: Human-readable description of what the market resolves on.
  status:
    $ref: "#/components/schemas/MarketStatus"
  tick_size:
    type: string
    pattern: ^[0-9]+(\.[0-9]{1,6})?$
    maxLength: 24
    description: Minimum price increment, in dollars.
    example: "0.55"
  minimum_price:
    type: string
    pattern: ^[0-9]+(\.[0-9]{1,6})?$
    maxLength: 24
    description: Minimum allowed order price, in dollars.
    example: "0.55"
  maximum_price:
    type: string
    pattern: ^[0-9]+(\.[0-9]{1,6})?$
    maxLength: 24
    description: Maximum allowed order price, in dollars.
    example: "0.55"
  expires_at:
    type: string
    format: date-time
    maxLength: 40
    x-udx-timestamp-context: prospective
    description: The configured expiration instant.
    example: 2026-06-21T00:00:00.000000Z
  external_ids:
    $ref: "#/components/schemas/MarketExternalIds"
  series_ticker:
    type: string
    maxLength: 128
    description: The series the market is listed under.
    example: UDXNFLGAMEWIN
  event_ticker:
    type: string
    maxLength: 128
    description: Groups markets on the same game or contest within a series.
    example: UDXNFLGAMEWIN_DETCAR26OCT04
  title:
    type: string
    maxLength: 512
    description: Short display name for the market.
  rules:
    type: string
    maxLength: 65536
    description: The rules that decide how the market resolves.
  strike:
    $ref: "#/components/schemas/MarketStrike"
  opens_at:
    type: string
    format: date-time
    maxLength: 40
    x-udx-timestamp-context: prospective
    description: The configured instant the market opens for trading.
    example: 2026-06-20T17:00:00.000000Z
  notional_value:
    type: string
    pattern: ^[0-9]+(\.[0-9]{1,6})?$
    maxLength: 24
    description: What one YES contract pays if the market resolves YES, in dollars.
    example: "0.55"
  contract_terms_url:
    type: string
    format: uri
    maxLength: 2048
    description: Link to the contract terms the market is listed under.
```

##### `#/components/schemas/MarketLeg`

```yaml
type: object
additionalProperties: false
description: A component market and the outcome selected by a multi-leg market.
required:
  - ticker
  - outcome
properties:
  ticker:
    $ref: "#/components/schemas/Ticker"
  outcome:
    type: string
    description: The outcome of this component market selected by the multi-leg market.
    enum:
      - yes
      - no
  external_ids:
    $ref: "#/components/schemas/MarketExternalIds"
```

##### `#/components/schemas/Ticker`

```yaml
type: string
minLength: 1
maxLength: 128
description: A human-meaningful natural key naming a single-leg or multi-leg market.
example: UDX-EXAMPLE-MARKET
```

##### `#/components/schemas/MarketExternalIds`

```yaml
type: object
additionalProperties: false
description: Identifiers this market carries in third-party data providers' systems.
properties:
  optic_odds:
    $ref: "#/components/schemas/MarketExternalIdsOpticOdds"
```

##### `#/components/schemas/MarketExternalIdsOpticOdds`

```yaml
type: object
additionalProperties: false
description: Identifiers in OpticOdds.
properties:
  fixture_id:
    type: string
    minLength: 1
    maxLength: 128
    description: The OpticOdds fixture this market is priced from.
    example: 20260927A1B2C3
  market_id:
    type: string
    minLength: 1
    maxLength: 128
    description: The OpticOdds market this market is a selection of.
    example: player_points
  team_id:
    type: string
    minLength: 1
    maxLength: 128
    description: The OpticOdds team this market is about, when the market is about a team.
    example: 1A2B3C4D5E6F
  player_id:
    type: string
    minLength: 1
    maxLength: 128
    description: The OpticOdds player this market is about, when the market is about a player.
    example: 7G8H9I0J1K2L
```

##### `#/components/schemas/MarketStatus`

```yaml
type: string
enum:
  - unopened
  - open
  - paused
  - closed
  - expired
description: Market trading status.
```

##### `#/components/schemas/MarketStrike`

```yaml
type: object
additionalProperties: false
description: The threshold the market's outcome is compared with.
required:
  - value
properties:
  type:
    $ref: "#/components/schemas/MarketStrikeType"
  value:
    type: string
    maxLength: 255
    description: The strike itself, such as a line or a team name.
    example: "1.5"
  unit:
    $ref: "#/components/schemas/MarketStrikeUnit"
```

##### `#/components/schemas/MarketStrikeType`

```yaml
type: string
enum:
  - greater
  - greater_or_equal
  - less
  - less_or_equal
  - equal
description: How the outcome is compared with the strike value.
```

##### `#/components/schemas/MarketStrikeUnit`

```yaml
type: string
enum:
  - decimal
  - integer
  - points
  - string
  - bool
  - unknown
description: How to read the strike value.
```

##### `#/components/schemas/ProblemDetails`

```yaml
type: object
description: An RFC 9457 machine-readable error, returned on every non-2xx response. The response's Content-Language header identifies the language used by title and detail, and Vary includes Accept-Language.
required:
  - type
  - title
  - status
properties:
  type:
    type: string
    format: uri-reference
    maxLength: 2048
    description: 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.
  title:
    type: string
    maxLength: 40
    example: Bad Request
    description: 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.
  status:
    type: integer
    example: 400
    description: The HTTP status code, repeated from the response itself.
  detail:
    type: string
    maxLength: 500
    example: malformed request body
    description: A localized, human-readable explanation specific to this occurrence. Clients must not parse it for machine-readable information.
  instance:
    type: string
    format: uri-reference
    maxLength: 100
    example: urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef
    description: An identifier for this specific occurrence, so it can be correlated with server-side logs if you need to report it.
```

##### `#/components/headers/RetryAfter`

```yaml
description: Whole seconds to wait before retrying.
schema:
  type: integer
  minimum: 1
  description: A positive delay in whole seconds.
  example: 2
```

##### `#/components/parameters/VersionHeader`

```yaml
name: UDX-Version
in: header
required: false
description: Dated API version (YYYY-MM-DD).
schema:
  type: string
  minLength: 10
  maxLength: 10
  description: A dated API version (YYYY-MM-DD).
  example: 2026-07-15
```

