propzapi API reference
A REST API for sports odds — moneyline, spreads, totals and player props, normalized across books. Base URL: https://api.propzapi.com. All responses are JSON.
Quickstart
Grab a free key (500 credits, no card), then call the odds endpoint.
# 1. get a key
curl -X POST https://api.propzapi.com/v1/register
# → { "api_key": "pk_live_…", "plan": "free", "credits": 500 }
# 2. pull odds
curl "https://api.propzapi.com/v1/odds?league=NBA" -H "X-API-Key: pk_live_…" Authentication
Every /v1 request needs your key in the X-API-Key header. Create and manage keys in the dashboard. A missing or invalid key returns 401.
X-API-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx Credits & metering
Calls are metered by market — the more you ask for, the more it costs. A single market is the lightest call; requesting all game markets, or player props, costs more. Rather than track a table, read the X-Credits-Cost header on the response: it's the exact charge for that call, every time, so you are never guessing.
X-Credits-Cost — the exact credits this call chargedX-Credits-Remaining — your balance after the callGET /v1/odds
Events with odds grouped by book.
sport — e.g. basketball, soccer (optional)league — e.g. NBA, NFL, EPL (optional)market — h2h · spreads · totals · player_props (optional; omit for all game markets)limit — 1–100, default 25curl "https://api.propzapi.com/v1/odds?league=NBA&market=spreads&limit=2" \
-H "X-API-Key: pk_live_…" {
"count": 2,
"data": [
{
"event_id": "401766...",
"league": "NBA",
"home_team": "Boston Celtics",
"away_team": "New York Knicks",
"commence_time": "2026-07-09T23:00:00Z",
"status": "upcoming",
"books": [
{ "book": "DraftKings", "markets": [
{ "market": "spreads", "outcome": "Boston Celtics", "price": -110, "point": -4.5 },
{ "market": "spreads", "outcome": "New York Knicks", "price": -110, "point": 4.5 }
]}
]
}
]
} GET /v1/props
Player props for upcoming games — the markets most odds APIs skip. Same shape as /v1/odds; it's the premium market, and the exact cost is returned in the X-Credits-Cost header.
curl "https://api.propzapi.com/v1/props?league=NBA" -H "X-API-Key: pk_live_…" GET /v1/events
Fixtures and live scores (no odds). Params: sport, league, status (upcoming · live · final), limit. Also GET /v1/events/{event_id} for one event with all its lines.
curl "https://api.propzapi.com/v1/events?league=EPL&status=live" -H "X-API-Key: pk_live_…" GET /v1/books
The sportsbooks currently covered.
curl "https://api.propzapi.com/v1/books" -H "X-API-Key: pk_live_…"
# → { "books": ["DraftKings", "ESPN BET", "FanDuel"], "count": 3 } Response headers
X-Credits-Cost — credits this call chargedX-Credits-Remaining — your balance after the callErrors
| Code | Meaning |
|---|---|
401 | Missing or invalid API key |
402 | Out of credits — top up or upgrade |
404 | Event not found |
429 | Too many free keys minted from this IP |
MCP & AI agents
propzapi ships a Model Context Protocol server so an agent can call odds directly. The server card lives at https://api.propzapi.com/.well-known/mcp/server-card.json, the OpenAPI spec at https://api.propzapi.com/openapi.json, and a plain-text brief for models at /llms.txt. Point Claude, n8n or LangChain at those and your agent has live odds in one line.