---
title: "Get market price changes since a given ID"
method: GET
path: "/api/v2/markets/delta"
tags: ["V2 Markets"]
---

# Get market price changes since a given ID

`GET /api/v2/markets/delta`

Returns market line price changes (new, updated, closed) since the specified `last_id`. Use for efficient polling.

**Bootstrap flow:** To obtain an initial `last_id` cursor, call `GET /api/v2/sports/{sportID}/events/{date}` — the response `meta.delta_last_id` provides the current cursor. Then pass that value as `last_id` to begin polling this endpoint.

**Staleness guard:** Cursors older than 30 minutes are rejected with HTTP 400. If your cursor becomes stale, re-bootstrap from the events endpoint.

## Query parameters

- `last_id` integer, required
- `sport_id` integer
- `affiliate_ids` string
- `market_ids` string
- `event_id` string
- `limit` integer

## Response `200`

Market deltas

- MarketDeltaResponse
  - `meta` object
    - `delta_last_id` string — Use this as `last_id` in the next request
    - `count` integer
    - `has_more` boolean — If true, there are more results — poll again immediately with the returned delta_last_id
  - `deltas` MarketDeltaEntry[]
    - `id` integer
    - `event_id` string
    - `sport_id` integer
    - `affiliate_id` integer
    - `market_id` integer
    - `market_name` string
    - `participant_id` integer — Normalized participant ID (team_id, player_id, or result_id)
    - `participant_type` 'TYPE_TEAM' | 'TYPE_PLAYER' | 'TYPE_RESULT'
    - `participant_name` string
    - `line` string — Line value (e.g., "-4.5" for spread, "224.5" for total, "" for moneyline)
    - `price` string — American odds price as a string (e.g., "-110", "150")
    - `previous_price` string, nullable — Previous price before this change
    - `change_type` string — Type of change (e.g., "price_change", "new", "close", "reopen")
    - `is_main_line` boolean — Whether this price is on the primary/main line. Always present, so clients can switch main lines from the delta feed alone.
    - `closed_at` string, date-time, nullable
    - `updated_at` string, date-time

## Other responses

- `400` — Invalid or stale cursor

---

[API](https://skmtc.net/therundown/apis/therundown-sports-api.md) · [All operations](https://skmtc.net/therundown/apis/therundown-sports-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/therundown/therundown-sports-api/revisions/6122c314b11a/schema)
