> ## Documentation Index
> Fetch the complete documentation index at: https://docs.therundown.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Recent updates, new features, and improvements to TheRundown API.

## 2026

### July 2026

* **Self-service downgrades** -- You can now schedule a plan downgrade from your dashboard. Downgrades take effect at the end of the current billing period — you keep your current tier until then, nothing extra is charged, and a scheduled downgrade can be canceled any time before it applies.
* **Sportsbook source IDs** -- V2 event responses now include `affiliate_source_ids` (each sportsbook's own identifier for the event), and price objects include `source_id` where the book exposes one. Useful for deep-linking and joining against sportsbook-keyed datasets.
* **NFL Preseason and NBA Summer League** -- 2026 NFL Preseason events now flow under a dedicated sport ID `25`, separate from the NFL regular season (`2`). NBA Summer League is live again under sport ID `32`, as in previous seasons.

### June 2026

* **Live game state and play-by-play — Ultra tier and above** -- New real-time game-state data, available exclusively on **Ultra plans and higher**. Live event payloads embed a `live_game_state` snapshot (current inning/quarter, balls-strikes-outs and base runners for MLB, down & distance for football, possession and power-play detail for other sports), and the new `GET /api/v2/events/{eventID}/plays` endpoint returns the full play-by-play timeline with running scores. Plays also stream in real time via the new `plays` channel on the V2 WebSocket. Coverage spans MLB, NBA (including Summer League), WNBA, NCAAB, NFL, NCAAF, NHL, and soccer, with per-play player attribution rolling out progressively.
* **Included data points raised 2.5x on all paid tiers** -- Monthly allowances increased at no price change: Starter 5M, Pro 25M, Ultra 100M, Super 250M, Mega 500M, Max 2.5B data points per month. Overage rates, burst limits, and data delays are unchanged.
* **Weekly billing plans** -- Every paid API tier is now available on a weekly billing cadence at a premium over monthly — useful for covering a single tournament or a stretch of a season. Weekly plans include a proportional weekly share of the tier's monthly allowance, metered over the 7-day billing window; the `X-Datapoints-Period` header reads `weekly` on these plans. See [Weekly Billing](/rate-limits#weekly-billing).
* **Player props now require Starter or higher** -- Player prop markets are included on all paid plans starting at Starter, and are no longer returned on Free keys.
* **`event_status` include filter** -- New query parameter on V1 and V2 sport/date event, openers, and closing endpoints. Pass `event_status=STATUS_IN_PROGRESS,STATUS_HALFTIME` (comma-separated) to receive only events in the listed statuses. Complements `exclude_status`, and is applied before it when both are present.
* **`market_ids` capped at 12 per request** -- REST market endpoints now return a `400` when more than 12 market IDs are requested (previously extra IDs were silently ignored). Split larger requests into batches of 12, or omit the parameter: odds endpoints default to the core markets, and market-definition endpoints return all available definitions.
* **3-Way Result (563) in default markets for soccer and NHL** -- Soccer leagues and NHL now default `market_ids` to `1,2,3,563`. The soccer 3-way moneyline (home/draw/away) is served on market `1` as three participants, matching long-standing V1 behavior; market `563` carries the NHL 60-minute (regulation-time) line.
* **`is_main_line` on the markets delta feed** -- Delta entries now always include `is_main_line`, so main-line switches can be tracked from the delta feed alone without refetching snapshots.
* **Upgrade hints on `429` responses** -- Rate-limit and data-point-cap responses now include `upgrade_url` and `upgrade_message` fields alongside the existing `error`, `limit`, and `Retry-After` information.
* **Affiliate `status` field** -- The `GET /api/v2/affiliates` (and `/api/v2/sportsbooks`) response now includes a `status` for each sportsbook: `healthy` (live and verified), `unhealthy` (the feed is currently degraded or down), or `beta` (a new integration whose coverage we are still verifying). Use it to surface book health in your UI or to skip beta books in production. Treat unrecognized values as unknown — new statuses may be added without notice, so don't hard-code the set on the client side.
* **Affiliate `regions` now opt-in** -- `GET /api/v2/affiliates` returns the `regions` array only when you pass `include=regions`. The default response omits it; add the parameter if your integration reads region data.
* **FIFA World Cup 2026 coverage** -- Broad market coverage for the World Cup (sport ID `18`) across tracked sportsbooks, including 1X2, asian handicap, totals and first-half totals, both-teams-to-score, correct score, winning margin, goalscorer props, corners, and cards.

### May 2026

* **ATP and WTA Tennis leagues** -- Added ATP Tennis (sport ID `38`) and WTA Tennis (sport ID `39`) as first-class leagues. Full-match tennis markets use full-game periods (`0` prematch, `7` live); set-specific markets use period IDs to distinguish Set 1 and Set 2, including prematch Set 1/Set 2 (`3`/`4`) and live Set 1/Set 2 (`15`/`16`).
* **Hard Rock Bet affiliate** -- Hard Rock Bet is now available as affiliate ID `28` in beta, with coverage across NBA, WNBA, MLB, NHL, NFL, soccer, tennis, and UFC including player props and live markets. Coverage is expanding while the integration matures.
* **`espn_uid` on V2 events** -- Event payloads now include `espn_uid`, ESPN's universal identifier for the event, when available — useful for joining against ESPN-keyed datasets. Event stats responses also now include `meta.event_id` for easier correlation.

### April 2026

* **theScore Bet affiliate** -- theScore Bet is now available as affiliate ID 24, providing moneyline, spread/runline/puckline, and total markets for NBA, MLB, and NHL (prematch and live). Expanded coverage of additional supported markets is in progress.
* **In-play coverage for LowVig, BetOnline, and Sportsbetting** -- LowVig (11), BetOnline (6), and Sportsbetting (4) now stream live in-play lines across the V2 market catalog, including player props, team props, and alternate lines. Additional market coverage for these books is in progress.

### March 2026

* **Live market variants now default** -- V2 event endpoints now return live moneyline, spread, and total (IDs 41, 42, 43) alongside the standard prematch markets by default. Integrations that pass explicit `market_ids` are unaffected.
* **Faster live score updates** -- Live score data now reflects in-game changes much faster. The `score` object on event responses — including `event_status`, `display_clock`, `game_period`, and current scores — updates more frequently during live games.
* **Ultra tier latency improvements** -- Ultra tier subscribers now receive WebSocket price updates in real time with no batching delay. REST endpoints for Ultra tier also return fresher data.

### February 2026

* **`exclude_status` parameter** -- New query parameter for V1 and V2 event endpoints. Pass `exclude_status=STATUS_POSTPONED,STATUS_CANCELED` (comma-separated) to filter out postponed and canceled games before they reach your application.
* **`delta_last_id` bootstrap** -- V2 markets responses now include `meta.delta_last_id`, a starting cursor for delta polling. Use it to initialize `/api/v2/markets/delta` immediately after a snapshot without missing updates.
* **Subscription plan headers** -- V2 responses now include headers that surface your subscription tier, rate limits, allowed bookmaker IDs, and active feature flags. Useful for building adaptive clients and debugging plan entitlements.
* **`Retry-After` headers on rate limit responses** -- All `429 Too Many Requests` responses now include a `Retry-After` header indicating when you may retry.
* **MLB Spring Training migration** -- MLB Spring Training events have been migrated from sport ID `3` to a dedicated sport ID `30`, isolating preseason games from the regular season. This follows the same pattern used for NBA Summer League (32) and other season-specific sport IDs. If you consume spring training data, update your integration to query sport ID `30`.
* **OpenAPI spec published** -- Full OpenAPI 3.1 specification now available for automated client generation and tooling integration.
* **Market 553 deprecated — use market 410** -- The `any_time_goal_scorer` market (ID 553) has been consolidated into the `to_score` market (ID 410). Market ID 553 will no longer return data. Update integrations that query market 553 to use market 410 instead.

### January 2026

* **V2 Markets WebSocket** -- New `wss://therundown.io/api/v2/ws/markets` endpoint for real-time market and price updates, replacing the legacy V1 WebSocket. Supports granular filtering by sport, market, event, and affiliate.
* **`price_delta` field** -- Pass `include=price_delta` on V2 event endpoints to receive the previous price and direction of change alongside current odds. Useful for animating line movement on page load.
* **`live_variant_id` field** -- Market objects now include a `live_variant_id` mapping prematch markets to their live equivalents, enabling seamless prematch-to-live market switching.

## 2025

### Q4 2025

* **Player prop markets expansion** -- Added combo prop markets: PRA (93), Points + Assists (99), Points + Rebounds (297), Rebounds + Assists (298). Added live player prop markets for points (90), assists (91), three-pointers (92), rebounds (982), blocks (983), and turnovers (984).
* **Market line price history** -- New `GET /api/v2/events/{eventID}/markets/history` and `GET /api/v2/events/{eventID}/markets/{marketID}/history` endpoints for full price history with RFC 3339 time range filtering. Opening and closing line endpoints added at `/openers` and `/closing`.

### Q3 2025

* **V2 markets delta endpoint** -- `GET /api/v2/markets/delta` returns only markets that have changed, providing a more efficient alternative to full event polling.
* **Team totals market** -- Market ID 94 added for individual team over/under totals.
* **Kalshi affiliate** -- Added Kalshi (affiliate ID 25) to tracked sportsbooks.

### Q2 2025

* **V2 API general availability** -- The V2 market-based data model is now the recommended API version. V1 remains available but new features are V2-only.
* **Alternate lines support** -- V2 events endpoint returns main and alternate lines. Use `main_line=true` to filter to primary lines only.
* **Period-based markets** -- Markets now include `period_id` for half, quarter, and period-specific odds.
