From zero to your first live sportsbook odds response. No credit card. The first two steps don't even need a signup.
Every /v1/try/{sport_key}/* endpoint is no-auth, IP-rate-limited at 60 req/h. Confirm the API is reachable from your machine before you do anything else.
curl -s https://parlay-api.com/v1/try/baseball_mlb/odds | head -c 400
You should see a JSON array of MLB events with bookmaker prices nested inside. If you see HTTP 429, you hit the IP rate limit, just wait a minute and retry.
Other no-auth demos worth trying: /v1/try/basketball_nba/arbitrage, /v1/try/baseball_mlb/ev, /v1/try/americanfootball_nfl/middles.
Free tier: 1,000 requests/month, no credit card. Your key starts with pak_live_ and is yours alone, keep it out of public repos.
export PARLAY_API_KEY="pak_live_..."
Pick your language. Every client is a single file, ships with retry / backoff / idempotency built in, and works against the same API.
pip install requests
curl -O https://raw.githubusercontent.com/JacobiusMakes/ParlayAPI/main/examples/parlay_api_client.py
Don't see your language? Generate a client from the OpenAPI spec at /openapi.json:
openapi-generator-cli generate \
-i https://parlay-api.com/openapi.json \
-g $LANGUAGE -o ./parlay-api-$LANGUAGE
Pull MLB moneylines from US books with your key. Same shape works for any sport, any market, any region.
import os
from parlay_api_client import Client
client = Client(api_key=os.environ["PARLAY_API_KEY"])
odds = client.odds("baseball_mlb", regions="us", markets="h2h,spreads,totals")
print(f"Got {len(odds)} events. First event:")
print(odds[0])
curl -s 'https://parlay-api.com/v1/sports/baseball_mlb/odds?regions=us&markets=h2h,spreads,totals' \
-H "X-API-Key: $PARLAY_API_KEY" | jq '.[0]'
Read the response headers too: X-Credits-Remaining tells you what's left this month, X-Request-ID goes in any support ticket.
Every error has the same shape: error (machine code), message (human), request_id (echo back to support), docs_url (where to learn more).
{
"error": "rate_limit",
"message": "Rate limit exceeded. Retry after 60 seconds.",
"retry_after_seconds": 60,
"request_id": "01HPK8...EXAMPLE",
"docs_url": "https://parlay-api.com/limits"
}
The reference clients honor Retry-After automatically with capped exponential backoff. If you're rolling your own, see /docs/best-practices for the spec.