diff --git a/content/en/api-reference/opportunities-arbitrage.mdx b/content/en/api-reference/opportunities-arbitrage.mdx index ee16f8a..728261f 100644 --- a/content/en/api-reference/opportunities-arbitrage.mdx +++ b/content/en/api-reference/opportunities-arbitrage.mdx @@ -34,6 +34,10 @@ Requires API key. **Hobby tier or higher required.** Your account must have the **Profit cap:** Opportunities with profit above 10% are automatically filtered out. These are almost always phantom arbs caused by stale or suspended odds rather than real opportunities. + +**Breaking change:** The `game_state` field (score/period/clock) was removed from this response. Live game state is now served exclusively by the [Game State](/en/api-reference/gamestate) endpoint and the `gamestate` stream channel. Join rows to game state by `event_id`. + + ### Filtering Multiple Values Use comma-separated values for multi-select filters: @@ -110,7 +114,6 @@ for arb in data['data']: "possibly_stale": false, "oldest_odds_age_seconds": 8, "warnings": [], - "game_state": null, "ev_available": true, "ev_percentage": 3.5, "is_player_prop": false, @@ -237,7 +240,6 @@ X-Request-Id: req_arb789xyz012 | `possibly_stale` | boolean | Whether odds may have moved since detection | | `oldest_odds_age_seconds` | number\|null | Age of the stalest leg's odds in seconds | | `warnings` | string[] | Warning flags. Possible values: `LIVE_GAME`, `LIVE_HIGH_PROFIT_SUSPICIOUS`, `LOW_IMPLIED_TOTAL`, `POTENTIALLY_STALE_ODDS`, `VERY_STALE_ODDS` | -| `game_state` | object\|null | Live game state (`period`, `clock`, `score_home`, `score_away`) | | `ev_available` | boolean | Whether an EV opportunity exists on this market | | `ev_percentage` | number\|null | EV percentage if available | | `is_player_prop` | boolean | Whether this is a player prop market | diff --git a/content/en/api-reference/opportunities-ev.mdx b/content/en/api-reference/opportunities-ev.mdx index 5565fbf..71c1de1 100644 --- a/content/en/api-reference/opportunities-ev.mdx +++ b/content/en/api-reference/opportunities-ev.mdx @@ -20,6 +20,10 @@ This endpoint replaces the former `/positive-ev` and `/value-bets` endpoints. Al **Multi-book results:** When multiple sportsbooks are +EV on the same selection, the API returns a separate opportunity for **each** book. For example, if DraftKings is +105, FanDuel is +103, and BetMGM is +101 on the same moneyline, you'll see three entries — each with its own `sportsbook`, `odds_american`, `ev_percentage`, `kelly_percent`, and `confidence_score`. Results are sorted by EV% descending by default, so the best-odds book appears first. Use the `sportsbook` filter to narrow to specific books. + +**Live game state:** EV rows do not carry scores, period, or clock. Live game state is served exclusively by the [Game State](/en/api-reference/gamestate) endpoint and the `gamestate` stream channel. Join rows to game state by `event_id`. + + ## Authentication Requires API key. **Pro tier or higher required.** Your account must have the `ev` feature enabled. diff --git a/content/en/api-reference/opportunities-low-hold.mdx b/content/en/api-reference/opportunities-low-hold.mdx index d37f50b..7a37b98 100644 --- a/content/en/api-reference/opportunities-low-hold.mdx +++ b/content/en/api-reference/opportunities-low-hold.mdx @@ -16,6 +16,10 @@ GET /api/v1/opportunities/low_hold Requires API key. **Pro tier or higher required.** Your account must have the `low_hold` feature enabled. + +**Breaking change:** The `game_state` field (score/period/clock) was removed from this response. Live game state is now served exclusively by the [Game State](/en/api-reference/gamestate) endpoint and the `gamestate` stream channel. Join rows to game state by `event_id`. + + ## Query Parameters | Parameter | Type | Default | Description | @@ -108,7 +112,6 @@ for hold in data['data']: "start_time": "2026-02-08T19:00:00Z", "line": null, "hold_percentage": 1.8, - "game_state": null, "side1": { "selection": "Los Angeles Lakers", "books": ["draftkings", "betmgm"],