Polymarket API Reference
Musashi exposes a unified REST API for Polymarket and Kalshi market data. Base URL: musashi-api.vercel.app. No authentication required. All endpoints return JSON. 4 endpoints covering feed, markets, arbitrage, and movers.
Base URL
No API key or authentication headers required for read endpoints.
/api/feedSentiment signals matched to prediction markets
| Parameter | Type | Description |
|---|---|---|
since | number | Unix ms timestamp — return signals after this time |
urgency | string | Filter: critical | high | medium | low |
category | string | Filter: crypto | politics | economics | tech | sports | geopolitics | finance | breaking_news |
sentiment | string | Filter: bullish | bearish | neutral |
/api/marketsLive market list with prices across Polymarket and Kalshi
| Parameter | Type | Description |
|---|---|---|
category | string | Filter by market category |
limit | number | Number of markets to return (default 50, max 200) |
/api/markets/arbitrageCross-platform arbitrage opportunities (Polymarket vs Kalshi)
| Parameter | Type | Description |
|---|---|---|
minSpread | number | Minimum spread as a decimal (default 0.03 = 3%) |
minConfidence | number | Minimum match confidence (default 0.50) |
limit | number | Maximum results to return (default 10) |
category | string | Filter by market category |
/api/markets/moversMarkets with significant recent price movement
| Parameter | Type | Description |
|---|---|---|
timeframe | string | Time window: 1h | 24h (default 1h) |
minChange | number | Minimum price change as a decimal (default 0.05 = 5%) |
limit | number | Maximum results to return (default 20) |
platform | string | Optional platform filter: polymarket | kalshi |
Response Schema: /api/feed
{
"signals": [
{
"id": "string",
"createdAt": 1714000000000,
"tweet": {
"author": "@handle",
"text": "...",
"url": "https://x.com/..."
},
"sentiment": "bullish" | "bearish" | "neutral",
"confidence": 0.84,
"action": "YES" | "NO" | "HOLD",
"edge": 0.07,
"urgency": "critical" | "high" | "medium" | "low",
"category": "crypto",
"markets": [
{
"polymarketId": "0x...",
"kalshiId": "BTCUSD-...",
"title": "Bitcoin above $70k by end of May?",
"matchScore": 0.91
}
]
}
]
}Full API Reference
The complete interactive API docs with examples in Python, Node.js, and curl are at the link below.
Frequently Asked Questions
Does Musashi have a native Polymarket API?
Musashi is built on top of the Polymarket CLOB data layer and exposes a simplified REST API optimized for trading bots. It adds sentiment signals, cross-platform arbitrage detection, and pre-computed trading signals that the native Polymarket API does not provide.
How often does Polymarket data update?
Musashi polls Polymarket prices every 15–20 seconds and stores price history for computing 1-hour and 24-hour changes. The sentiment feed updates every 2 minutes as Twitter polling cycles complete.
Is there a rate limit on the API?
No rate limits during beta. Fair use guidelines recommend polling no faster than every 10 seconds per endpoint. Excessive polling may be throttled in future versions.
Can I get historical Polymarket data?
Musashi currently provides up to 48 hours of feed history via the since timestamp parameter on /api/feed. For longer historical data, the Polymarket CLOB API provides order book history directly.
Do I need authentication to use the API?
No. Musashi API endpoints for market data and sentiment require no API keys or authentication during beta. Only trade execution (via Polymarket or Kalshi directly) requires wallet credentials.