Skip to main content

Base URL

https://api.parsecapi.com/api/v1

Authentication

All REST requests require an API key in the X-API-Key header:
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parsecapi.com/api/v1/markets?exchanges=polymarket"

Getting an API key

MethodDescriptionGuide
Web signupStandard market-data and trading accessSelf credentials
Builder programBuilder API key plus user-management capabilitiesBuilder onboarding

Identifier Model

Parsec normalizes each market to a canonical parsec_id:
parsec_id = {exchange}:{exchange_market_id}
Examples:
  • polymarket:572473
  • kalshi:KXBTC-26MAR10
The intended workflow is:
  1. find a market with /markets
  2. read the returned parsec_id, exchange, and exchange_market_id
  3. reuse either selector form on downstream endpoints
/orderbook, /price, /trades, and /execution-price accept either parsec_id or exchange + market_id. Responses always use parsec_id as the normalized identifier.

Common Response Shapes

Single-resource endpoints return the object directly. List endpoints return a wrapper with pagination metadata:
{
  "markets": [{ "...": "..." }],
  "pagination": {
    "count": 1,
    "total": 25,
    "has_more": true,
    "next_cursor": "1"
  }
}
Errors use a consistent JSON shape:
{
  "error": "human-readable message",
  "code": "machine_readable_code",
  "retryable": false,
  "validation_errors": ["optional detail"]
}
See Error Handling for the full error-code and rate-limit reference.

Endpoint Families

MethodEndpointDescription
GET/exchangesList supported exchanges and capabilities
GET/marketsDiscover markets or run scoped market and event lookups
GET/eventsBrowse normalized events and matched event links
GET/orderbookGet the live L2 orderbook for a market
GET/execution-priceEstimate VWAP and slippage for a hypothetical order
GET/priceGet OHLCV candles or a point-in-time price
GET/tradesGet recent or historical trades
POST/onboardConfigure exchange credentials or managed access
GET/walletInspect linked exchanges and wallet state
POST/ordersCreate an order
GET/ordersList open orders
GET/orders/:idGet one order
DELETE/orders/:idCancel one order
GET/positionsList positions
GET/fillsList fills
GET/balanceGet account balance
GET/user-activityGet user activity across exchanges
GET/ws/usageInspect WebSocket usage

Pagination

List endpoints use cursor-based pagination:
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parsecapi.com/api/v1/markets?exchanges=polymarket&limit=100"
If has_more=true, pass next_cursor back on the next request:
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.parsecapi.com/api/v1/markets?exchanges=polymarket&limit=100&cursor=100"

Rate Limiting

REST requests are rate-limited per API key using a token bucket. Current public tiers:
TierSustained (req/sec)BurstMonthly Requests
Free5510,000
Pro601205,000,000
Scale200400Unlimited
Successful responses may include:
  • x-parsec-tier
  • x-ratelimit-monthly-limit
  • x-ratelimit-monthly-remaining
  • x-ratelimit-monthly-reset
Rate-limited responses also include Retry-After.

Historical Data Windows

Historical endpoints are tier-gated:
TierMax Lookback
Free5 days
Pro30 days
ScaleUnlimited
Requests older than your tier allows return 400 bad_request with a descriptive message.

Next Steps