> ## Documentation Index
> Fetch the complete documentation index at: https://docs.odds-api.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Dropping Odds

> Returns odds that have dropped significantly from their opening values. Data is pre-computed and updated every ~30 seconds. Results are sorted by the selected time window's drop percentage (descending). Pagination metadata is returned in response headers (X-Total-Count, X-Page, X-Per-Page, X-Updated-At).

**Data source selection:**
- If both `sport` and `league` are provided → reads league-specific data (all entries for that league)
- If only `sport` is provided → reads sport-level data (top 200 per sport)
- If neither → reads global data (top 500 across all sports)

**Note:** This endpoint requires a paid plan (Starter or above). Free plan users will receive a 403 error.

**Note:** `leagues` and `league` are mutually exclusive. `leagues` fetches from the sport- or global-level dataset and filters server-side.



## OpenAPI

````yaml /api-reference/openapi.json get /dropping-odds
openapi: 3.0.0
info:
  description: >-
    Odds-API.io is a powerful sports betting odds comparison API, providing
    real-time data from 250+ bookmakers across 10+ sports with near zero
    latency.


    - 250+ bookmakers supported

    - 10+ sports including Football, Basketball, Tennis, Esports and more

    - Real-time odds with close to zero latency

    - Pre-match & In-play odds coverage

    - 99.9% uptime for reliability
  title: Odds-API.io - Real-Time Sports Betting Odds API (v3)
  contact: {}
  version: 3.0.0
servers:
  - url: https://api.odds-api.io/v3
security: []
paths:
  /dropping-odds:
    get:
      tags:
        - Dropping Odds
      summary: Get Dropping Odds
      description: >-
        Returns odds that have dropped significantly from their opening values.
        Data is pre-computed and updated every ~30 seconds. Results are sorted
        by the selected time window's drop percentage (descending). Pagination
        metadata is returned in response headers (X-Total-Count, X-Page,
        X-Per-Page, X-Updated-At).


        **Data source selection:**

        - If both `sport` and `league` are provided → reads league-specific data
        (all entries for that league)

        - If only `sport` is provided → reads sport-level data (top 200 per
        sport)

        - If neither → reads global data (top 500 across all sports)


        **Note:** This endpoint requires a paid plan (Starter or above). Free
        plan users will receive a 403 error.


        **Note:** `leagues` and `league` are mutually exclusive. `leagues`
        fetches from the sport- or global-level dataset and filters server-side.
      parameters:
        - description: API key for authentication
          name: apiKey
          in: query
          required: true
          schema:
            type: string
        - example: football
          description: Sport slug (e.g. football, basketball)
          name: sport
          in: query
          schema:
            type: string
        - example: england-premier-league
          description: >-
            League slug (e.g. england-premier-league). Requires sport param.
            Mutually exclusive with leagues.
          name: league
          in: query
          schema:
            type: string
        - example: england-premier-league,spain-la-liga
          description: >-
            Comma-separated league slugs to filter by multiple leagues at once
            (e.g. england-premier-league,spain-la-liga). Mutually exclusive with
            league.
          name: leagues
          in: query
          required: false
          schema:
            type: string
        - example: Spread,Totals
          description: >-
            Comma-separated market names to filter by (case-insensitive).
            Supported: ML, Spread, Totals, Spread HT, Totals HT, Totals 1Q,
            Spread 1Q, Team Total Home, Team Total Away, Corners Spread, Corners
            Totals, Corners Spread HT, Corners Totals HT, Bookings Spread,
            Bookings Totals, Player Props
          name: markets
          in: query
          schema:
            type: string
        - example: opening
          description: 'Time window for drop filtering and sorting. Default: opening'
          name: timeWindow
          in: query
          schema:
            type: string
            enum:
              - opening
              - 12h
              - 24h
              - 48h
            default: opening
        - example: 5
          description: 'Minimum drop percentage for the selected time window. Default: 0'
          name: minDrop
          in: query
          schema:
            type: number
            default: 0
        - example: 50
          description: Maximum results per page (default 50, max 200)
          name: limit
          in: query
          schema:
            type: integer
            default: 50
            maximum: 200
        - example: 1
          description: Page number, 1-indexed (default 1)
          name: page
          in: query
          schema:
            type: integer
            default: 1
            minimum: 1
        - example: true
          description: >-
            Include event details (home, away, date, sport, league). Default:
            false
          name: includeEventDetails
          in: query
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              description: Total number of entries matching the filters
              schema:
                type: integer
            X-Page:
              description: Current page number
              schema:
                type: integer
            X-Per-Page:
              description: Number of results per page
              schema:
                type: integer
            X-Updated-At:
              description: Timestamp of the last pipeline run (unix milliseconds)
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/dto.DroppingOddsEntry'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controllers.ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controllers.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controllers.ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    dto.DroppingOddsEntry:
      type: object
      properties:
        eventId:
          type: integer
          example: 69455182
        event:
          $ref: '#/components/schemas/dto.DroppingOddsEvent'
        market:
          $ref: '#/components/schemas/dto.Market'
        betSide:
          type: string
          enum:
            - home
            - away
            - over
            - under
          example: home
        odds:
          $ref: '#/components/schemas/dto.DroppingOddsMovement'
        lastMovedAt:
          type: integer
          nullable: true
          description: Unix milliseconds timestamp of last odds movement
          example: 1775851240182
        updatedAt:
          type: integer
          description: Unix milliseconds timestamp of last pipeline update
          example: 1775854172851
    controllers.ErrorResponse:
      type: object
      properties:
        error:
          type: string
          example: Error message
    dto.DroppingOddsEvent:
      type: object
      properties:
        home:
          type: string
          example: Arsenal
        away:
          type: string
          example: Bournemouth
        date:
          type: string
          description: ISO 8601 date
          example: '2026-04-12T15:00:00.000Z'
        sport:
          $ref: '#/components/schemas/dto.Sport'
        league:
          $ref: '#/components/schemas/dto.League'
    dto.Market:
      type: object
      properties:
        hdp:
          type: number
        label:
          type: string
          description: >-
            Player name for player prop markets (e.g. "Carlos Baleba"). Only
            present on player prop entries.
        name:
          type: string
    dto.DroppingOddsMovement:
      type: object
      properties:
        opening:
          type: number
          description: Opening odds value
          example: 2.05
        current:
          type: number
          description: Current odds value
          example: 1.52
        drop:
          $ref: '#/components/schemas/dto.OddsDrop'
    dto.Sport:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
    dto.League:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
    dto.OddsDrop:
      type: object
      properties:
        sinceOpening:
          type: number
          description: Percentage drop since opening
          example: 25.9
        12h:
          type: number
          nullable: true
          description: Percentage drop in last 12 hours
          example: 8.4
        24h:
          type: number
          nullable: true
          description: Percentage drop in last 24 hours
          example: 12.3
        48h:
          type: number
          nullable: true
          description: Percentage drop in last 48 hours
          example: null

````