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