Documentation
Documentation
https://the-odds-api.com/liveapi/guides/v4/
GettingStarted
https://the-odds-api.com/liveapi/guides/v4/
openapi: 3.0.3
info:
title: The Events Odds API
description: The Odds API provides sports betting odds from major bookmakers worldwide. Access current and historical odds for head-to-head, spreads, totals, and outrights markets across 100+ sports. Also provides live scores and event listings. Requires an API key for all requests. Quota is consumed per request based on number of regions and markets requested.
version: 4.0.0
contact:
url: https://the-odds-api.com/
termsOfService: https://the-odds-api.com/terms
servers:
- url: https://api.the-odds-api.com
description: Primary API server
- url: https://ipv6-api.the-odds-api.com
description: IPv6 API server
security:
- apiKey: []
tags:
- name: Odds
description: Current odds from bookmakers.
paths:
/v4/sports/{sport}/odds:
get:
operationId: getSportOdds
summary: Get Sport Odds
description: 'Returns current odds for a given sport from multiple bookmakers. Quota cost: 1 credit per region per market. Use sport key from /v4/sports or ''upcoming'' for cross-sport upcoming events.'
tags:
- Odds
parameters:
- name: sport
in: path
required: true
description: Sport key from /v4/sports (e.g., basketball_nba, americanfootball_nfl) or 'upcoming' for cross-sport upcoming events.
schema:
type: string
- name: apiKey
in: query
required: true
description: Your API key.
schema:
type: string
- name: regions
in: query
required: true
description: 'Comma-separated regions for bookmakers. Values: us, us2, uk, au, eu. Quota: 1 credit per region per market.'
schema:
type: string
- name: markets
in: query
required: false
description: 'Comma-separated betting markets. Values: h2h, spreads, totals, outrights. Defaults to h2h.'
schema:
type: string
default: h2h
- name: oddsFormat
in: query
required: false
description: 'Odds format. Values: decimal (default), american.'
schema:
type: string
enum:
- decimal
- american
default: decimal
- name: dateFormat
in: query
required: false
description: 'Date format. Values: iso (default), unix.'
schema:
type: string
enum:
- iso
- unix
default: iso
- name: bookmakers
in: query
required: false
description: Comma-separated bookmaker IDs to filter results. Cannot be used with regions parameter.
schema:
type: string
- name: eventIds
in: query
required: false
description: Comma-separated event IDs to filter results.
schema:
type: string
- name: commenceTimeFrom
in: query
required: false
description: Filter to events commencing after this ISO 8601 datetime.
schema:
type: string
format: date-time
- name: commenceTimeTo
in: query
required: false
description: Filter to events commencing before this ISO 8601 datetime.
schema:
type: string
format: date-time
- name: includeLinks
in: query
required: false
description: Include bookmaker deep-links to the event.
schema:
type: boolean
- name: includeBetLimits
in: query
required: false
description: Include maximum bet limit information where available.
schema:
type: boolean
responses:
'200':
description: List of events with odds from bookmakers.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Event'
headers:
x-requests-remaining:
description: Remaining quota credits.
schema:
type: integer
x-requests-used:
description: Credits used since last quota reset.
schema:
type: integer
x-requests-last:
description: Credits consumed by this request.
schema:
type: integer
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
/v4/sports/{sport}/events/{eventId}/odds:
get:
operationId: getEventOdds
summary: Get Event Odds
description: 'Returns all available markets for a specific event. Quota: 1 credit per unique market returned per region. Provides comprehensive coverage for a single event including player props and alternate lines.'
tags:
- Odds
parameters:
- name: sport
in: path
required: true
description: Sport key from /v4/sports.
schema:
type: string
- name: eventId
in: path
required: true
description: Event ID from /v4/sports/{sport}/events.
schema:
type: string
- name: apiKey
in: query
required: true
description: Your API key.
schema:
type: string
- name: regions
in: query
required: true
description: Comma-separated regions for bookmakers.
schema:
type: string
- name: markets
in: query
required: false
description: Comma-separated betting markets.
schema:
type: string
- name: oddsFormat
in: query
required: false
description: 'Odds format: decimal or american.'
schema:
type: string
enum:
- decimal
- american
- name: dateFormat
in: query
required: false
description: 'Date format: iso or unix.'
schema:
type: string
enum:
- iso
- unix
- name: bookmakers
in: query
required: false
description: Comma-separated bookmaker IDs to include.
schema:
type: string
responses:
'200':
description: Event with comprehensive odds across all markets.
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
/v4/sports/{sport}/events/{eventId}/markets:
get:
operationId: getEventMarkets
summary: Get Event Markets
description: 'Returns the list of betting markets available for a specific event, grouped by bookmaker. Useful for discovering which player props and alternate lines are offered before requesting odds. Quota: 1 credit.'
tags:
- Odds
parameters:
- name: sport
in: path
required: true
description: Sport key from /v4/sports.
schema:
type: string
- name: eventId
in: path
required: true
description: Event ID from /v4/sports/{sport}/events.
schema:
type: string
- name: apiKey
in: query
required: true
description: Your API key.
schema:
type: string
- name: regions
in: query
required: true
description: Comma-separated regions for bookmakers.
schema:
type: string
- name: bookmakers
in: query
required: false
description: Comma-separated bookmaker IDs to include.
schema:
type: string
- name: dateFormat
in: query
required: false
description: 'Date format: iso or unix.'
schema:
type: string
enum:
- iso
- unix
responses:
'200':
description: Available markets per bookmaker for the event.
content:
application/json:
schema:
$ref: '#/components/schemas/Event'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
components:
responses:
RateLimited:
description: Too many requests — quota exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized — invalid or missing API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Not found — the requested event does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
UnprocessableEntity:
description: Unprocessable entity — invalid parameter values.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Market:
type: object
description: A betting market with outcomes from a bookmaker.
properties:
key:
type: string
description: Market key (e.g., h2h, spreads, totals, outrights).
last_update:
type: string
format: date-time
description: When the market was last updated.
outcomes:
type: array
items:
$ref: '#/components/schemas/Outcome'
description: Available betting outcomes.
Event:
type: object
description: A sporting event with odds from bookmakers.
properties:
id:
type: string
description: Unique event identifier.
sport_key:
type: string
description: Sport key for the event.
sport_title:
type: string
description: Human-readable sport title.
commence_time:
type: string
format: date-time
description: Scheduled start time of the event.
home_team:
type: string
description: Home team name.
away_team:
type: string
description: Away team name.
bookmakers:
type: array
items:
$ref: '#/components/schemas/Bookmaker'
description: List of bookmakers providing odds.
Outcome:
type: object
description: A betting outcome (team/player) with price.
properties:
name:
type: string
description: Name of the team or player.
description:
type: string
description: Additional description (e.g., Over, Under for totals).
price:
type: number
description: Odds price in the requested format.
point:
type: number
description: Point spread or total line value (for spreads and totals markets).
Error:
type: object
properties:
message:
type: string
description: Error description.
Bookmaker:
type: object
description: A bookmaker providing odds for an event.
properties:
key:
type: string
description: Unique bookmaker identifier (e.g., draftkings, fanduel, betmgm).
title:
type: string
description: Human-readable bookmaker name.
last_update:
type: string
format: date-time
description: When this bookmaker's odds were last updated.
markets:
type: array
items:
$ref: '#/components/schemas/Market'
description: Betting markets offered by this bookmaker.
securitySchemes:
apiKey:
type: apiKey
name: apiKey
in: query