Migrating from the-odds-api in 5 minutes

ParlayAPI is wire-compatible with the-odds-api v4. Same endpoints, same response shapes, same query parameters. You change one base URL and your code keeps working. You also gain 19 more bookmakers, prediction markets, and pay roughly 6x less.

The whole migration: one URL change

If you're using the-odds-api.com directly, swap the base URL to parlay-api.com. That's it.

# Python (requests)
- BASE_URL = "https://api.the-odds-api.com/v4"
+ BASE_URL = "https://parlay-api.com/v1"

r = requests.get(
    f"{BASE_URL}/sports/baseball_mlb/odds",
    params={"markets": "h2h", "regions": "us"},
    headers={"X-API-KEY": "YOUR_PARLAYAPI_KEY"},
)

If you're using their official the-odds-api SDK, point it at our base URL via the SDK's config option, or migrate to plain requests / fetch. Most users do the latter; the response is identical.

// JavaScript (fetch)
- const BASE = "https://api.the-odds-api.com/v4";
+ const BASE = "https://parlay-api.com/v1";

const events = await fetch(
  `${BASE}/sports/baseball_mlb/odds?markets=h2h®ions=us`,
  { headers: { "X-API-KEY": YOUR_KEY } }
).then(r => r.json());

Endpoint compatibility

the-odds-apiParlayAPICompat
/v4/sports/v1/sportsIdentical
/v4/sports/{key}/odds/v1/sports/{key}/oddsIdentical + more bookmakers + prop markets
/v4/sports/{key}/events/v1/sports/{key}/eventsIdentical
/v4/historical/sports/{key}/odds/v1/historical/sports/{key}/oddsIdentical + deeper history (NFL 1999+, NBA 2017+)
(none)/v1/sports/{key}/odds/propsPlayer props from DK, FanDuel, BetMGM, Caesars, PrizePicks, Underdog, Sleeper, Pick6
(none)/v1/ws/oddsWebSocket streaming (push updates, no polling)
(none)/v1/sse/oddsServer-Sent Events streaming (HTTP/2 friendly, EventSource-compatible)
(none)/v1/sports/{key}/best-lineBest price per outcome across all books

Sport keys: 100% identical for US majors

You don't need to change a single sport_key string for these:

We add 60+ sport keys the-odds-api doesn't carry: French Ligue 2, Brazilian Serie B, Korean KBO baseball, Japanese NPB, Polish Ekstraklasa, Swiss Super League, Czech table tennis, esports leagues (CS2, LoL, Valorant, Dota 2), and more. Full list at /v1/sports?all=true.

Bookmaker keys: superset

Every bookmaker key the-odds-api uses, we use. We just have 19 more on top.

The same keys

draftkings, fanduel, betmgm, caesars, pointsbetus, williamhill_us, betonlineag, betrivers, bovada, mybookieag, pinnacle, unibet_us, wynnbet.

Additional keys we ship

Pricing comparison

Tierthe-odds-apiParlayAPISavings
Free500 credits/mo1,000 credits/moBetter
Starter$30/mo (20K)$5/mo (50K)6x cheaper, 2.5x more credits
Pro$59/mo (100K)$20/mo (250K)3x cheaper, 2.5x more credits
Business$119/mo (5M)$40/mo (1M)3x cheaper
EnterpriseContact sales$100/mo (5M)Self-serve

Credit costs per call are similar (1 credit per book per market). Compare your current monthly the-odds-api spend against ours at the same call volume; most teams cut their bill by 60-85%.

What's actually different (the honest part)

Things you gain

Things to know

Migration safety: Run both APIs side-by-side. Diff the responses for the matchups you care about. Switch over only when you're satisfied. Email [email protected] if you want a 24-hour Pro trial to validate.

Common gotchas

Authentication header

Both APIs accept X-API-KEY as a header. We also accept ?apiKey= as a query param for compatibility with code that uses the-odds-api's older docs. Either works.

Rate limits

We rate-limit per API key at 500 requests/minute on free, 2,000/min on Starter+, 10,000/min on Pro+, custom on Business+. Throttle in your client to stay under the limit.

Response timestamps

Same commence_time ISO-8601 UTC format. Same last_update per bookmaker. No code change needed.

Bookmaker filter

Same ?bookmakers= comma-separated key list. We support all keys the-odds-api does plus the additional ones above.

Ready?

Sign up gets you an API key in 30 seconds. No credit card. Free tier supports real testing volume (1,000 credits/month).