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.Documentation Index
Fetch the complete documentation index at: https://docs.polynode.dev/llms.txt
Use this file to discover all available pages before exploring further.
Endpoints
| Endpoint | Description |
|---|---|
GET /v2/sports/leagues | Sports and esports league metadata from Polymarket Gamma |
GET /v2/sports/summary | League-level active/live/date summary |
GET /v2/sports/live | Backward-compatible live overview derived from /sports/summary |
GET /v2/sports/leagues/{league}/teams | Teams for a league, with logos and records when available |
GET /v2/sports/leagues/{league}/games | Games/events for a league, including markets and token IDs |
GET /v2/sports/games/{slug} | Full game/event detail with normalized markets |
GET /v2/sports/games/{slug}/state | Canonical game state: metadata, score fields, markets, current prices, and subscribe payload |
GET /v2/sports/games/{slug}/context | Agent-friendly context bundle from generated game queries and optional external sources |
GET /v2/sports/games/{slug}/prices | Current bid, ask, midpoint, and spread for game tokens |
GET /v2/sports/games/{slug}/history | Batch CLOB price history for game tokens |
GET /v2/sports/market-types | Polymarket sports market type codes with PolyNode labels/categories |
GET /v2/sports/search?q={query} | Search sports events and teams |
Game state
Use this when you want one game-centric object instead of manually joining game metadata, CLOB prices, markets, and websocket subscription details.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.| Parameter | Description |
|---|---|
sources | Comma-separated sources. Defaults to x. Supported: x, online. web, search, ddg, and ddg_instant alias to online. |
query_set | Query strategy. Supported: default, injuries, lineups, news, social, markets. |
max_queries | Number of generated queries to run. Defaults to 3, capped at 5. |
max_per_query | Per-source result count per query. Defaults to 5, capped at 10. |
include_state | Include the /state response in the same payload. Defaults to false. |
price_limit_tokens | Token cap used when include_state=true. Defaults to 20, capped at 200. |
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 from PolyNode’s internal metasearch adapter.
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.
Notes
pricesfans out to Polymarket CLOB batch price, midpoint, and spread endpoints.historyuses Polymarket CLOB batch price history.- 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_idswith PolyNode orderbook WebSocket.

