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 1 – Get your API key
Get your API key in your account settings
Step 2 – Get tournaments for a sport
Get the list of tournaments for your favorite sports
Details herecurl "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 3 – Get 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
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:
| Parameter | Key | Value |
|---|---|---|
| Authorization | apiKey | {{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].
