# 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
## 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