The Odds API Odds API

Current odds from bookmakers.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/the-odds-api-odds-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

the-odds-api-odds-api-openapi.yml Raw ↑
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