---
title: "Retrieve contracts by a set of market ids."
method: GET
path: "/v3/markets/{market_ids}/contracts/"
tags: ["contracts"]
---

# Retrieve contracts by a set of market ids.

`GET /v3/markets/{market_ids}/contracts/`

## Request

- Base URL: `https://api.smarkets.com`
- URL: `https://api.smarkets.com/v3/markets/{market_ids}/contracts/`
- Auth: none declared
- TypeScript: <https://skmtc.dev/smarkets/apis/smarkets-http-api/docs/v3/markets/:market_ids/contracts/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `market_ids` integer[], required

## Query parameters

- `include_hidden` boolean: Choose to include in the response contracts that are not visible on the website. Hidden contracts may not be displayed for a varied number of reasons, and are not available to bet on.
- `jurisdiction` 'CDG' | 'CFTC' | 'DGA' | 'IGC' | 'IRGC' | 'MGA' | 'SGA' | 'UKGC': Jurisdiction of user
- `platform` 'exchange' | 'sbk': Platform used by user

## Response `200`

Contracts success response

- object: Contracts success response
  - `contracts` object[], required
    - `cftc` object: CFTC-specific enrichment data
    - `competitor_id` integer, nullable: The Smarkets competitor model id
    - `contract_type` object, nullable: Contract type uniquely identifies the contract within a market.<br> It is the recommended way to identify contracts.
      - `name` string
      - `param` string
    - `created` string, date-time, required: When was the contract created in the Smarkets exchange
    - `display_order` integer, nullable: Smarkets will display the contracts sorted by these values, in descending order
    - `hidden` boolean: Hidden contracts aren't displayed in our website
    - `id` string, required: This ID uniquely identifies the contract
    - `info` object, nullable: Additional information about the contract
      - `color_primary` string
      - `color_secondary` string
      - `primary` boolean
    - `market_id` string, required: This ID uniquely identifies the market
    - `modified` string, date-time, required: The datetime of the last modification made by Smarkets to the<br> contract properties
    - `name` string, required: Name for the contract, as displayed in our website.<br> Examples can be team names, horse names or other winning outcomes for each market.<br> It should not be used to identify the contract.<br> The contract_type field should be used instead.
    - `outcome_timestamp` string, date-time, nullable, required: If the contract has settled, this will have the settlement datetime, null otherwise
    - `reduction_factor` string
    - `slug` string, required: Slug concisely represents the contract.<br> It should not be used to identify the contract.<br> The contract_type field should be used instead.
    - `state_or_outcome` 'live' | 'open' | 'new' | 'halted' | 'winner' | 'loser' | 'deadheat' | 'reduced' | 'voided' | 'unavailable', required: state_or_outcome can have the following values: <ul> <li>new: The contract was just created and is still not available for betting <li>open: open for betting <li>live: open and trading live in-play <li>halted: Trading on this contract has halted <li>winner: settled as winner. <li>loser: settled as loser. <li>deadheat: settled as a deadheat - a tie with other contract. <li>reduced: withdrawn and a reduction factor was applied. <li>voided: no longer available for betting <li>unavailable: not currently available for betting </ul>

## Other responses

- `400`: REQUEST_VALIDATION_ERROR
- `401`: EVENTS_AUTH_BREAKER
- `414`: REQUEST_TOO_LARGE
- `429`: Rate limit exceeded
- `500`: Internal server error
- `503`: EVENTS_INTERNAL_ERROR, EVENTS_API_RATE_LIMIT, EVENTS_UNAVAILABLE

## Changes

> 21 revisions in range; 1 not diffed.

- **2026-10-22** `d942ef7e7158`: 1 info
  - added the non-success response with the status `401`
- **2026-09-25** `379526db3f82`: 1 info
  - added the new optional `query` request parameter `platform`
- **2026-09-01** `75f7e3050340`: 3 info
  - added the new enum value `CFTC` to the `query` request parameter `jurisdiction`
  - added the new enum value `IRGC` to the `query` request parameter `jurisdiction`
  - added the optional property `contracts/items/cftc` to the response with the `200` status
- **2025-09-20** `9912a2182e61`: 1 info
  - added the new optional `query` request parameter `jurisdiction`
- **2022-02-06** `032833ac8ca3`: 9 breaking, 14 info
  - the response's body type changed from `object` to no type for status `400`
  - the response property `contracts/items/contract_type` became nullable for the status `200`
  - the response property `contracts/items/display_order` became nullable for the status `200`
  - the response property `contracts/items/info` became nullable for the status `200`
  - …19 more

[Operation history](https://skmtc.dev/smarkets/apis/smarkets-http-api/changes/v3/markets/:market_ids/contracts/get.md)

---

[API](https://skmtc.dev/smarkets/apis/smarkets-http-api.md) - [All operations](https://skmtc.dev/smarkets/apis/smarkets-http-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smarkets/apis/smarkets-http-api/revisions/32c5f1f4369e?raw)
