Explore Current sportsbook coverage Check Service status Research Historical coverage by sport Build Your first authenticated call

Sports odds.
Ready for your next project.

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
Python client for your next step. SDK on GitHub · vs the-odds-api
30+
Sportsbooks in the catalogue
90+
Sport keys in the catalogue
Current coverage and freshness
2005
History from 2005, depth varies by sport

What are you building?

Open a real sample, see what each book returned, and take something useful with you. Your configuration travels with a shareable link.

🔄

From a Real Response to Your First Call

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.

</> { } $_ API 0x

Inspect the Data Before You Sign Up

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.

Start Free. Size a Plan Around Your Calls.

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.

Free
Monthly credits on /pricing
  • Historical access by plan
  • Request limit on /pricing
  • Available sports and markets
  • No credit card required
Get Started
Starter
Monthly credits on /pricing
  • Historical access by plan
  • Burst safety cap applies
  • Available sports and markets
  • Email support
Business
Monthly credits on /pricing
  • Historical access by plan
  • Burst safety cap applies
  • WebSocket streaming (1s coalesce)
  • Prediction markets
Enterprise
Monthly credits on /pricing
  • Historical access by plan
  • Burst safety cap applies
  • WebSocket streaming (500ms coalesce)
  • Dedicated support
Scale
Monthly credits on /pricing
  • Historical access by plan
  • Burst safety cap applies
  • Raw WebSocket (no coalescing)
  • Contact for contractual needs

Choose the Right Path for Your Project

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.

Tools for Your Odds Research Workflow

Explore the response shapes, source coverage, and plan requirements before building.

30+ Sportsbooks

The catalogue spans 30+ sportsbooks and 90+ sport keys. Availability differs by source, sport, market, and time. Check current coverage and freshness · Service status.

Prediction Markets Explore

Kalshi odds alongside traditional sportsbooks. Cross-reference market-implied vs book-implied probabilities.

Line Movement Explore

Inspect how available odds change over time for closing-line analysis. Check the source and time range returned before using a series.

Migrating an Existing Client?

Use familiar odds endpoint patterns, then verify your API key, filters, response fields, and credit usage. Follow the migration guide.

WebSocket Streaming Live

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

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.

Built for AI Agents New

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.

Period Markets + Replay New

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.

Ready to Make Your First Call?

Free tier. No credit card. 1,000 credits/month.

Latest from the data

Daily auto-generated breakdowns from the live feed and 14-day archive.

All posts →