Skip to main content
Polynode sports endpoints expose Polymarket-native sports market data: leagues, teams, games, markets, token IDs, current CLOB prices, and historical price series. These endpoints replace the old sportsbook/OddsJam experiment. They do not return sportsbook odds. They return Polymarket market prices and metadata, normalized around sports games.

Endpoints

The event-ID and market-ID forms support the same /state, /context, /prices, and /history suffixes as the slug form. Keep the by-event or by-market prefix: event IDs and market IDs are separate numeric namespaces, so a bare numeric lookup would be ambiguous. Market-ID responses use the canonical parent event slug and contain the full event’s markets.

Game state

League games

Use league games for schedule discovery, such as listing all active FIFA World Cup match markets:
The response is filtered and sorted by PolyNode after resolving the league code to Polymarket’s sports series_id. If Polymarket Gamma’s primary event listing is unavailable, the response can still succeed through alternate Gamma sources and will include fallback: true. If Gamma is fully unavailable and PolyNode has a recent good response, it returns that cached response with stale: true. Use this when you want one game-centric object instead of manually joining game metadata, CLOB prices, markets, and websocket subscription details.
Add include_history=true to include CLOB price history in the same response:

Game context

Use this for agent workflows that need game-specific search context next to the normalized sports object. PolyNode generates a small set of matchup, injury, lineup, news, or market-specific queries from the Polymarket game record, then runs the requested sources.
Parameters: The x source uses the same X Search beta quota and 1 request/second key-level rate limit as /v2/x/search. Each generated X query consumes one X Search quota unit. The online source uses /v2/search/online and returns normalized public web results.

Current prices

Price history

limit_tokens defaults to 20 and is capped at 20 because Polymarket’s batch history endpoint caps requests at 20 market asset IDs. If you do not pass interval, start_ts, or end_ts, PolyNode requests the full available CLOB history with interval=max.

Notes

  • prices fans out to Polymarket CLOB batch price, midpoint, and spread endpoints.
  • history uses Polymarket CLOB batch price history. Bare /history calls default to interval=max; pass interval=1d, interval=1w, or an explicit start_ts/end_ts window when you want a smaller range.
  • Scores are included only where Polymarket Gamma has score fields on the event. Use score fields as best-effort metadata, not guaranteed live scoreboard state.
  • For live orderbook updates, use the returned subscribe.token_ids with PolyNode orderbook WebSocket.