# Changelog Source: https://docs.polyrouter.io/api-reference/changelog API updates and new features # Changelog ## v2.0.0 - API Revamp **Released:** January 6, 2026 ### Breaking Changes * **New API URL**: The API has moved to `https://api-v2.polyrouter.io` * Please update your integrations to use the new base URL ### What's New We've completely revamped the API infrastructure for better reliability and performance. This release includes improved data aggregation across all supported platforms and various bug fixes. *** ## v0.4.0 - Increased Markets Limit **Released:** December 9, 2025 ### Improvements * **Higher Request Limits**: Increased the maximum number of markets that can be fetched in a single request from 100 to 250 * **Parallel Fetching for Limitless**: Implemented parallel fetching of up to 10 pages (25/page) for improved throughput ### Updated Endpoints * **`GET /markets`**: Max limit increased from 25 to 250 ### Breaking Changes * None - All changes are backward compatible * Requests with higher limits will now return more data *** ## v0.3.0 - Profiles, Trades & Platform Improvements **Released:** November 5, 2025 ### New Features * **Profile Endpoints**: Access user profile information and trading metrics * **`GET /profile/info`**: Retrieve user profile data from Kalshi and Polymarket * **`GET /profile/trades`**: Get user trade history with pagination support * **Historical Trades Endpoint**: Added **`GET /trades`** to fetch historical trade data for Kalshi and Polymarket markets * **Changelog Page**: Added a changelog page to track all API updates ### Improvements * **Pagination Fixed**: Standardized pagination across all endpoints with consistent cursor-based navigation * **Kalshi Market Filtering**: Automatically filter out MVE markets from Kalshi results * **Volume & Liquidity Data**: Restored volume and liquidity information for Kalshi markets * **Request Limits**: Updated maximum limit to 25 items per request for markets, series, and events endpoints for better performance ### Updated Endpoints * **`GET /markets`**: Max limit set to 25, improved Kalshi data quality * **`GET /events`**: Max limit set to 25, consistent pagination * **`GET /series`**: Max limit set to 25, consistent pagination * **`GET /trades`**: New endpoint for historical trade data (Kalshi & Polymarket) ### Breaking Changes * Maximum limit reduced from 100 to 25 for `/markets`, `/events`, and `/series` endpoints * Requests exceeding limit=25 will be capped at 25. This is a momentary change to make performance consistent. *** ## v0.2.0 - Multi-League Sports Support **Released:** October 28, 2025 ### New Features * **Multi-League Games Support**: Extended sports endpoints to support NBA, NHL, and MLB in addition to NFL * **Enhanced Game ID Format**: New format `{AwayTeam}v{HomeTeam}{YYYYMMDD}@{LEAGUE}` (e.g., `PHIvWAS20251028@NBA`) * **Kalshi Spreads & Totals**: Added support for moneyline, spread, and total markets on Kalshi platform * **Cross-League Game Discovery**: List games across all 4 major US professional sports leagues ### Updated Endpoints * **`GET /league-info`**: NBA, NHL, and MLB now show operational status with games support * **`GET /list-games`**: Added support for `?league=nba|nhl|mlb` parameters * **`GET /games/{game_id}`**: Now accepts game IDs with league suffix and supports all 4 leagues ### Breaking Changes * None - All changes are backward compatible * Old game IDs without league suffix continue to work *** ## v0.1.0 - Beta Launch **Released:** October 21, 2025 ### Initial Release * **Core API**: Basic prediction market data aggregation across multiple platforms * **Sports Betting**: NFL games support with moneyline markets * **Platform Support**: Polymarket, Kalshi, ProphetX, Novig, and SX.bet integration * **Real-time Data**: Live market prices and trading data * **Authentication**: API key-based access control ### Available Endpoints * **`GET /platforms`**: Platform information and health status * **`GET /league-info`**: NFL league and team information * **`GET /list-games`**: Available NFL games directory * **`GET /games/{game_id}`**: NFL game markets and odds * **`GET /list-awards`**: Available sports awards * **`GET /awards/{award_id}`**: Award odds and markets * **`GET /list-futures`**: Available futures markets * **`GET /futures/{future_id}`**: Futures odds and markets * **`GET /events`**: Real-time events across platforms * **`GET /markets`**: Real-time markets across platforms * **`GET /series`**: Real-time series across platforms * **`GET /price-history`**: Historical price data # Get event by ID Source: https://docs.polyrouter.io/api-reference/events/get-event-by-id openapi.json get /events/{id} Fetch a single event by its ID # List events Source: https://docs.polyrouter.io/api-reference/events/list-events openapi.json get /events Fetch events from prediction market platforms with pagination. Only Polymarket and Kalshi support events. # Health check Source: https://docs.polyrouter.io/api-reference/health/health-check openapi.json get /health Returns the health status of the API with detailed checks # API Reference Source: https://docs.polyrouter.io/api-reference/introduction Interactive API documentation for all PolyRouter endpoints **Open Beta:** PolyRouter is free and open to everyone. Rate limit: 100 requests per minute. Questions? Message **@fieldviolence** on X! ## Authentication All endpoints require an API key in the `X-API-Key` header: ```bash theme={null} curl "https://api-v2.polyrouter.io/markets" \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" ``` [Get your free API key](https://polyrouter.io) - takes 30 seconds. **Base URL:** `https://api-v2.polyrouter.io` ## Sports API Unified sports betting with standardized game IDs across 5+ platforms. Team mappings and league metadata Find available games with IDs Betting markets from 5+ platforms MVP, championship odds Season futures markets ## Markets API Real-time prediction market data with direct platform integration. Browse and filter markets Prediction market events Recurring market series Historical trade data Real-time order books Platform information ## Need Help? Community support Latest updates # Get market by ID Source: https://docs.polyrouter.io/api-reference/markets/get-market-by-id openapi.json get /markets/{id} Fetch a single market by its ID # Get market orderbook Source: https://docs.polyrouter.io/api-reference/markets/get-market-orderbook openapi.json get /markets/{id}/orderbook Fetch real-time orderbook (bids and asks) for a market. Supports Polymarket, Kalshi, Limitless, and Manifold. # Get price history for markets Source: https://docs.polyrouter.io/api-reference/markets/get-price-history-for-markets openapi.json get /price-history Fetch historical price data (OHLC candlesticks) for one or more markets # List markets Source: https://docs.polyrouter.io/api-reference/markets/list-markets openapi.json get /markets Fetch markets from prediction market platforms with pagination # Pagination Guide Source: https://docs.polyrouter.io/api-reference/pagination Learn how to paginate through API results efficiently # Pagination Guide Many endpoints support cursor-based pagination to efficiently navigate through large result sets. Here's how to use it: ## Basic Usage Most list endpoints support two query parameters: * **`limit`** - Number of results per page (1-25, default varies by endpoint) * **`cursor`** - Opaque token for fetching the next page ## Making Your First Request ```bash theme={null} curl "https://api-v2.polyrouter.io/markets?limit=10" \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" ``` The response includes a `pagination` object: ```json theme={null} { "markets": [...], "pagination": { "total": 150, "limit": 10, "has_more": true, "next_cursor": "eyJwbGF0Zm9ybXMiOnsia2Fsc2hpIjp7..." } } ``` ## Getting the Next Page Use the `next_cursor` from the previous response: ```bash theme={null} curl "https://api-v2.polyrouter.io/markets?limit=10&cursor=eyJwbGF0Zm9ybXMiOnsia2Fsc2hpIjp7..." \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" ``` ## Complete Example ```javascript theme={null} async function fetchAllMarkets() { const allMarkets = []; let cursor = null; let hasMore = true; while (hasMore) { const url = cursor ? `https://api-v2.polyrouter.io/markets?cursor=${cursor}&limit=25` : `https://api-v2.polyrouter.io/markets?limit=25`; const response = await fetch(url, { headers: { 'X-API-Key': '5fa709a5-0634-44c3-a991-57166d3c376d' } }); const data = await response.json(); allMarkets.push(...data.markets); hasMore = data.pagination.has_more; cursor = data.pagination.next_cursor; } return allMarkets; } ``` ```python theme={null} import requests def fetch_all_markets(): all_markets = [] cursor = None has_more = True headers = {'X-API-Key': '5fa709a5-0634-44c3-a991-57166d3c376d'} while has_more: url = 'https://api-v2.polyrouter.io/markets' params = {'limit': 25} if cursor: params['cursor'] = cursor response = requests.get(url, headers=headers, params=params) data = response.json() all_markets.extend(data['markets']) has_more = data['pagination']['has_more'] cursor = data['pagination'].get('next_cursor') return all_markets ``` ```bash theme={null} # First page curl "https://api-v2.polyrouter.io/markets?limit=25" \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" # Next page (use next_cursor from response) curl "https://api-v2.polyrouter.io/markets?limit=25&cursor=eyJ..." \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" ``` ## Important Notes **Changing filters mid-pagination:** If you change query parameters (like `platform`, `status`, or `query`) between requests, the cursor will be invalidated. Start pagination from the first page when changing filters. **Cursor lifespan:** Cursors are designed for immediate use within a pagination session. Don't store them long-term as they may become invalid. ## Pagination Tips 1. **Choose appropriate limits:** * Use `limit=25` (maximum) for bulk operations * Use smaller limits (5-10) for real-time updates * Default limits vary by endpoint 2. **Check for more pages:** Always check `has_more` or whether `next_cursor` is `null` before making another request 3. **Rate limits:** Even with cursors, you're still subject to rate limits (100 req per minute) 4. **Platform filtering:** When using `platform` parameter, only one platform value is supported per query (not comma-separated) # List platforms Source: https://docs.polyrouter.io/api-reference/platforms/list-platforms openapi.json get /platforms Get all available prediction market platforms # Get user profile Source: https://docs.polyrouter.io/api-reference/profile/get-user-profile openapi.json get /profile/info Fetch user profile information and optionally trading metrics from Kalshi or Polymarket # Get user trades Source: https://docs.polyrouter.io/api-reference/profile/get-user-trades openapi.json get /profile/trades Fetch trade history for a user from Kalshi or Polymarket # Get series by ID Source: https://docs.polyrouter.io/api-reference/series/get-series-by-id openapi.json get /series/{id} Fetch a single series by its ID # List series Source: https://docs.polyrouter.io/api-reference/series/list-series openapi.json get /series Fetch series from prediction market platforms with pagination. Only Polymarket and Kalshi support series. # Get award by ID Source: https://docs.polyrouter.io/api-reference/sports/get-award-by-id openapi.json get /awards/{id} Fetch a single award with live market data from all platforms # Get future by ID Source: https://docs.polyrouter.io/api-reference/sports/get-future-by-id openapi.json get /futures/{id} Fetch a single future with live market data from all platforms # Get game by ID Source: https://docs.polyrouter.io/api-reference/sports/get-game-by-id openapi.json get /games/{id} Fetch a single game by its ID with market data from all platforms # Get league information Source: https://docs.polyrouter.io/api-reference/sports/get-league-information openapi.json get /league-info Fetch information about supported sports leagues, including available endpoints and team counts # List awards Source: https://docs.polyrouter.io/api-reference/sports/list-awards openapi.json get /list-awards Fetch available award markets (MVP, DPOY, etc.) for a league # List futures Source: https://docs.polyrouter.io/api-reference/sports/list-futures openapi.json get /list-futures Fetch available futures markets (Super Bowl, division winners, etc.) for a league # List games Source: https://docs.polyrouter.io/api-reference/sports/list-games openapi.json get /list-games Fetch upcoming and recent games from sports prediction markets # Get trades for a market Source: https://docs.polyrouter.io/api-reference/trades/get-trades-for-a-market openapi.json get /trades Fetch historical trades for a specific market with pagination # Welcome to PolyRouter Source: https://docs.polyrouter.io/index The unified API for prediction markets PolyRouter Hero Light PolyRouter Hero Dark ## What is PolyRouter? **Open Beta:** PolyRouter is free and open to everyone. Questions or feedback? Message **@fieldviolence** on X! PolyRouter provides **unified API access to 7 prediction market platforms**: Polymarket, Kalshi, Manifold Markets, Limitless, ProphetX, Novig, and SX.bet. Get real-time market data, sports betting odds, and historical prices through one simple API. One API for 7 platforms Sub-second response times NFL markets with standardized IDs ## Quick Start [Sign up for free](https://polyrouter.io) and get your API key instantly. Use the examples below to start fetching data. Check out the [interactive API docs](/api-reference/introduction). ## Examples ### Fetch Markets ```bash cURL theme={null} curl "https://api-v2.polyrouter.io/markets?platform=polymarket&limit=5" \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" ``` ```javascript JavaScript theme={null} const response = await fetch( 'https://api-v2.polyrouter.io/markets?platform=polymarket&limit=5', { headers: { 'X-API-Key': '5fa709a5-0634-44c3-a991-57166d3c376d' } } ); const data = await response.json(); data.markets.forEach(market => { console.log(`${market.title}: ${(market.current_prices.yes.price * 100).toFixed(1)}%`); }); ``` ```json theme={null} { "markets": [ { "id": "516710", "platform": "polymarket", "title": "US recession in 2025?", "current_prices": { "yes": { "price": 0.065 }, "no": { "price": 0.935 } }, "volume_24h": 14627.93, "status": "open" } ] } ``` ### Get NFL Odds ```bash theme={null} # Find today's games curl "https://api-v2.polyrouter.io/list-games?league=nfl&limit=5" \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" # Get odds for a specific game curl "https://api-v2.polyrouter.io/games/BUFvKC20251020@NFL" \ -H "X-API-Key: 5fa709a5-0634-44c3-a991-57166d3c376d" ``` **Game IDs** follow the format `{AwayTeam}v{HomeTeam}{YYYYMMDD}@{LEAGUE}`. Use `/list-games` to discover available games. ## Supported Platforms Largest decentralized prediction market • CLOB order books • Event/series hierarchy US-regulated with CFTC oversight • Binary markets • Settlement timers Community-driven markets • Multiple collateral tokens • Low barriers Tournament-based sports • 30-50 spread/total options per game Most comprehensive player props • 200+ props per NFL game • Deep liquidity Decentralized exchange • On-chain order books • Full transparency Play-money prediction markets • Community predictions • Free to participate ## API Features Real-time markets, events, and series NFL, NBA, NHL, MLB game markets Real-time order books Historical trade data ## Rate Limits All users have **100 requests per minute**. Need more? Reach out to **@fieldviolence** on X. ## Resources Interactive documentation Sign up free Get help and support Latest updates