Important announcement regarding OddsPapi v4

Scheduled maintenance on Monday February 13th from 1:00AM CET. Expected duration: 1 hour

With this maintenance we bring you improvements in stability, response times and more capabilities. More information to follow.

IMPORTANT! Potentially breaking changes coming

Endpoints will no longer support oddsFormat parameter, instead all odds formats will be returned in responses. This change can be breaking if you are currently using oddsFormat different than decimal.

Current response format:

GET /v4/odds?fixtureId=id1000017868214572&oddsFormat=american
{
   ... other fields
   "price": "-100"
   ... other fields
}

New response format (After February 13th 1:00AM CET)

GET /v4/odds?fixtureId=id1000017868214572
{
   ... other fields
   "price": 2.00,
   "priceAmerican": "-100",
   "priceFractional": "1/1",
   ... other fields
}

OddsPapi Sports Odds API Documentation

This documentation provides everything you need to start using the OddsPapi Sports Odds API — a real-time sports data service offering live betting odds, pre-match odds, player props, totals, spreads, and historical odds data from over 300 global bookmakers across 60+ sports. In just a few minutes, you’ll learn how to authenticate with your API key, request tournaments and fixtures, fetch bookmaker odds, and stream real-time line movements through our low-latency WebSocket feed.

Step 1Get your API key

Get your API key in your account settings

Step 2Get tournaments for a sport

Get the list of tournaments for your favorite sports

Details here
or
curl "https://api.oddspapi.io/v4/tournaments?sportId=10&apiKey={{YOUR_API_KEY}}"
[
  {
    "tournamentId": 17,
    "tournamentSlug": "premier-league",
    "tournamentName": "Premier League",
    "categorySlug": "england",
    "categoryName": "England",
    "futureFixtures": 231,
    "upcomingFixtures": 0,
    "liveFixtures": 0
  },
  {
    "tournamentId": 8,
    "tournamentSlug": "laliga",
    "tournamentName": "LaLiga",
    "categorySlug": "spain",
    "categoryName": "Spain",
    "futureFixtures": 229,
    "upcomingFixtures": 0,
    "liveFixtures": 0
  },
  "{ /* more tournaments... */ }"
]

Step 3Get upcoming fixtures and odds by tournaments

Get the tournaments ids from step 2 and separate them with commas to get a list of upcoming fixtures and odds from a bookmaker

Use the oddsFormat parameter to show odds in either decimal or American format

Details here
or
curl "https://api.oddspapi.io/v4/odds-by-tournaments?bookmaker=pinnacle&tournamentIds=17,8&apiKey={{YOUR_API_KEY}}"
[
  {
    "fixtureId": "id1000001764618978",
    "participant1Id": 3,
    "participant2Id": 35,
    "sportId": 10,
    "tournamentId": 17,
    "seasonId": 130281,
    "statusId": 0,
    "hasOdds": true,
    "startTime": "2025-12-08T20:00:00.000Z",
    "trueStartTime": null,
    "trueEndTime": null,
    "updatedAt": "2025-12-02T08:01:48.812Z",
    "bookmakerOdds": {
      "pinnacle": {
        "bookmakerIsActive": true,
        "bookmakerFixtureId": "1620599468",
        "fixturePath": "https://www.pinnacle.com/en/e/e/e/1620599468/#all",
        "markets": {
          "101": {
            "outcomes": {
              "101": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "home",
                    "changedAt": "2025-12-07T22:50:48.515996+00:00",
                    "limit": 5000,
                    "playerName": null,
                    "price": 5.01,
                    "exchangeMeta": {}
                  }
                }
              },
              "102": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "draw",
                    "changedAt": "2025-12-07T22:50:48.516257+00:00",
                    "limit": 5000,
                    "playerName": null,
                    "price": 4.32,
                    "exchangeMeta": {}
                  }
                }
              },
              "103": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "away",
                    "changedAt": "2025-12-07T22:50:48.516384+00:00",
                    "limit": 7704,
                    "playerName": null,
                    "price": 1.649,
                    "exchangeMeta": {}
                  }
                }
              }
            },
            "bookmakerMarketId": "line/29/1980/1620128138/3377661430/0/moneyline"
          },
          "104": {
            "outcomes": {
              "104": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "1620599418",
                    "changedAt": "2025-12-07T21:33:08.962871+00:00",
                    "limit": 705,
                    "playerName": null,
                    "price": 1.709,
                    "exchangeMeta": {}
                  }
                }
              },
              "105": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "1620599419",
                    "changedAt": "2025-12-07T21:33:08.963137+00:00",
                    "limit": 500,
                    "playerName": null,
                    "price": 2.2,
                    "exchangeMeta": {}
                  }
                }
              }
            },
            "bookmakerMarketId": "1620128138/5608638792/1620599417"
          }
        }
      }
    }
  },
  {
    "fixtureId": "id1000000861624232",
    "participant1Id": 2820,
    "participant2Id": 2849,
    "sportId": 10,
    "tournamentId": 8,
    "seasonId": 130805,
    "statusId": 0,
    "hasOdds": true,
    "startTime": "2025-12-08T20:00:00.000Z",
    "trueStartTime": null,
    "trueEndTime": null,
    "updatedAt": "2025-11-30T14:00:59.994Z",
    "bookmakerOdds": {
      "pinnacle": {
        "bookmakerIsActive": true,
        "bookmakerFixtureId": "1620613130",
        "fixturePath": "https://www.pinnacle.com/en/e/e/e/1620613130/#all",
        "markets": {
          "101": {
            "outcomes": {
              "101": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "home",
                    "changedAt": "2025-12-07T20:45:17.225169+00:00",
                    "limit": 9986,
                    "playerName": null,
                    "price": 1.751,
                    "exchangeMeta": {}
                  }
                }
              },
              "102": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "draw",
                    "changedAt": "2025-12-07T20:45:17.225297+00:00",
                    "limit": 7500,
                    "playerName": null,
                    "price": 3.89,
                    "exchangeMeta": {}
                  }
                }
              },
              "103": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "away",
                    "changedAt": "2025-12-07T20:45:17.225365+00:00",
                    "limit": 7500,
                    "playerName": null,
                    "price": 4.81,
                    "exchangeMeta": {}
                  }
                }
              }
            },
            "bookmakerMarketId": "line/29/2196/1620122243/3377596534/0/moneyline"
          },
          "104": {
            "outcomes": {
              "104": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "1620613118",
                    "changedAt": "2025-12-07T20:45:15.476236+00:00",
                    "limit": 848,
                    "playerName": null,
                    "price": 1.884,
                    "exchangeMeta": {}
                  }
                }
              },
              "105": {
                "players": {
                  "0": {
                    "active": true,
                    "betslip": null,
                    "bookmakerOutcomeId": "1620613119",
                    "changedAt": "2025-12-07T20:45:15.476405+00:00",
                    "limit": 773,
                    "playerName": null,
                    "price": 1.97,
                    "exchangeMeta": {}
                  }
                }
              }
            },
            "bookmakerMarketId": "1620122243/5608474224/1620613117"
          }
        }
      }
    }
  },
  "{ /* more fixtures... */ }"
]

Host

All requests use the host https://api.oddspapi.io

Authorization

All endpoints require an API key to be passed as a request parameter:

ParameterKeyValue
AuthorizationapiKey{{YOUR_API_KEY}}

Contact Us

If you have any questions, need assistance, or would like to report an issue, feel free to reach out to us at [email protected].

Next pageGET account
Report an issue
OddsPapi | Documentation overview