---
title: "All markets for a single sports event"
method: GET
path: "/sports/event-markets"
tags: ["Sports"]
---

# All markets for a single sports event

`GET /sports/event-markets`

## Request

- Base URL: `https://data.kairos.trade`
- URL: `https://data.kairos.trade/sports/event-markets`
- Auth: none required

Resolves markets for one game. If `game_id` is given, tries a cached lookup first, falling back to a live Polymarket lookup on a miss. If only `slug` is given, first resolves the event's `gameId` via a live Polymarket lookup, then performs the same event-markets lookup. Returns an empty markets list if neither parameter resolves to an event. At least one of `game_id` or `slug` should be supplied; both are optional and unvalidated strings.

## Query parameters

- `game_id` string
- `slug` string

## Response `200`

Markets for the resolved event. `gameId` echoes the resolved id, or falls back to the raw `game_id`/`slug` query value ("unknown" if neither was supplied) when nothing could be resolved.

- SportsEventMarketsResponse
  - `gameId` string, required: Resolved gameId, or the raw game_id/slug query value ("unknown" if neither resolved).
  - `markets` SportsNormalizedMarket[], required
    - `id` string, required
    - `question` string, required
    - `slug` string, required
    - `conditionId` string, required
    - `tokenId` string, required: First clobTokenId for the market.
    - `outcomePrices` number[], required
    - `outcomes` string[], required
    - `volumeNum` number, double, required
    - `liquidityNum` number, double, required
    - `acceptingOrders` boolean, required
    - `sportsMarketType` string, nullable, required
    - `groupItemTitle` string, nullable, required
    - `gameStartTime` string, date-time, nullable: Scheduled fixture kickoff used for cross-provider live-game matching.
    - `bestBid` number, double, nullable, required
    - `bestAsk` number, double, nullable, required
    - `spread` number, double, nullable, required
    - `provider` string, required
    - `image` string, nullable, required
    - `icon` string, nullable, required
    - `outcomeMarketIds` string[]: Only present on 3-way (soccer moneyline) composite markets. Length 3, [home, draw, away].
    - `outcomeTokenIds` string[]: Per-outcome token IDs in the same order as outcomes, when available.
    - `outcomeConditionIds` string[]: Only present on 3-way composite markets.

## Other responses

- `422`: Request failed FastAPI parameter validation.
- `429`: Rate limit exceeded for this route's sliding window, keyed on the session `sub` when authenticated and on the trusted client IP otherwise. Honor `Retry-After`. A per-API-key data ceiling (set per credential) rejects with `{"detail": "API key data rate limit exceeded"}` instead of the `error` envelope below.

---

[API](https://skmtc.dev/kairos/apis/kairos-data-api.md) - [All operations](https://skmtc.dev/kairos/apis/kairos-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kairos/apis/kairos-data-api/revisions/cf6b76079e38?raw)
