Compare books. Fill a spreadsheet. Build your own tracker. Start with a real sample, then take the data and matching code into your project.
Explore and export without signup. Share your project settings. Free key: 1,000 credits/month, no credit card.
Availability varies by sport, market, and time. Check coverage · Service status
pip install parlay-api
Open a real sample, see what each book returned, and take something useful with you. Your configuration travels with a shareable link.
Start with the public demo below. Then use the first-call guide to check your HTTP status, response shape, and credit cost. Already using the-odds-api? Review the migration steps.
Run the public demo, then use these examples with your own key.
# Set PARLAY_API_KEY in your terminal before running this command curl -i -sS 'https://parlay-api.com/v1/sports/baseball_mlb/odds?regions=us&markets=h2h&include_live=true' \ -H "X-API-Key: $PARLAY_API_KEY" # Authenticated response: an array of available events # Check HTTP status and x-requests-last for the credit cost.
# Requires: pip install requests
import os
import requests
response = requests.get(
"https://parlay-api.com/v1/sports/baseball_mlb/odds",
headers={"X-API-Key": os.environ["PARLAY_API_KEY"]},
params={"regions": "us", "markets": "h2h", "include_live": "true"},
timeout=20,
)
response.raise_for_status()
events = response.json()
if not isinstance(events, list):
raise ValueError("Expected an event array")
print(events[0] if events else "No events match this request right now.")
// Node 18+, saved as quickstart.mjs. Keep your key server-side.
const apiKey = process.env.PARLAY_API_KEY;
if (!apiKey?.trim()) throw new Error("Set PARLAY_API_KEY first");
const response = await fetch(
"https://parlay-api.com/v1/sports/baseball_mlb/odds"
+ "?regions=us&markets=h2h&include_live=true",
{headers: {"X-API-Key": apiKey}, signal: AbortSignal.timeout(20_000)}
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const events = await response.json();
if (!Array.isArray(events)) throw new Error("Expected an event array");
console.log(events[0] ?? "No events match this request right now.");
Set PARLAY_API_KEY in your terminal first (setup instructions). These examples include in-progress games with include_live=true. The demo returns an object with an events array, capped at five events and 60 requests/hour per IP. Your authenticated odds call returns an array directly. Coverage can be empty for a sport or filter. Inspect coverage · Open the odds board.
Credits measure data usage. One request can use more than one credit.
For the live odds endpoint, one market in one region costs 1 credit; three markets in one region cost 3. Check x-requests-last after your call. Estimate your monthly usage · Limits and credits.
Loading current prices. See current pricing.
Start with personal tools, evaluation, and internal research. Need redistribution, public display, commercial use, or a contractual service commitment? Contact us about your use case before choosing a plan.
Paying for a self-serve plan does not by itself grant redistribution rights or a custom license. Review the terms · Acceptable use.
Explore the response shapes, source coverage, and plan requirements before building.
The catalogue spans 30+ sportsbooks and 90+ sport keys. Availability differs by source, sport, market, and time. Check current coverage and freshness · Service status.
Kalshi odds alongside traditional sportsbooks. Cross-reference market-implied vs book-implied probabilities.
Inspect how available odds change over time for closing-line analysis. Check the source and time range returned before using a series.
Use familiar odds endpoint patterns, then verify your API key, filters, response fields, and credit usage. Follow the migration guide.
WebSocket and SSE access starts at Business. Coalescing: Business 1 s, Enterprise 0.5 s, Scale raw. Delivery cadence is separate from source freshness; coverage varies by market. Reference · Quickstart · Player props · +EV alerts.
Historical odds from 2005, plus 30M+ prop closing lines since 2022. Start dates, sources, and depth vary by sport. Inspect historical coverage before sizing a backtest.
Drop-in prompts for Claude / GPT / Cursor at /cookbook. llms.txt + agents.json shipped. Cross-reference live odds with player stats to power prop-pick models.
Explore available period-market responses and archived line states. Check current source coverage before relying on a live period feed. Archive records include first_seen_ms / last_seen_ms timestamps for inspecting captured changes. Endpoints at /v1/sports/{key}/live/period_markets and /v1/historical/sports/{key}/period_markets.
Free tier. No credit card. 1,000 credits/month.
Daily auto-generated breakdowns from the live feed and 14-day archive.