Match Info
GET /api/v1/match/{matchId}
GET /api/v1/match/{matchId}/info
Comprehensive match payload — both routes return the same data.
{
"generatedAt": "2026-04-05 00:00:00",
"matchId": 9791299,
"homeTeam": "Chicago Fire",
"homeTeamId": 12345,
"awayTeam": "Nashville FC",
"awayTeamId": 12346,
"matchDate": "2026-04-05 20:00:00",
"status": "prematch",
"homeScore": null,
"awayScore": null,
"sportId": 1,
"leagueId": 25,
"leagueName": "MLS",
"categoryName": "USA",
"venue": "Soldier Field",
"referee": null,
"standings": { },
"form": { },
"h2h": { },
"raw": { }
}
| Field | Description |
|---|
standings | League position context for both teams |
form | Recent form (W/D/L) for both teams |
h2h | Head-to-head history |
raw | Full unprocessed upstream snapshot for advanced use |
The numeric matchStatus codes mirror those returned by /api/v1/team/{id}/matches: values < 8 are upcoming / in-play, >= 8 are finished.
Cache TTL: 1 minute.
Match Odds
GET /api/v1/match/{matchId}/odds
GET /api/v1/match/{matchId}/odds?oddGroupId=3
Full odds comparison across all bookmakers, split into prematch and inplay.
| Param | Type | Description |
|---|
oddGroupId | number | Filter by market group (1 = 1X2, 3 = Handicap, 5 = Over/Under, …) |
{
"generatedAt": "2026-04-05 00:00:00",
"matchId": 9791299,
"prematch": [
{
"og": 1,
"og_name": "1X2",
"periods": [
{
"name": "Full Time",
"odds": [
{
"bookie_name": "bet365",
"bookie_slug": "bet365",
"bid": 126,
"o1": 2.10,
"oX": 3.40,
"o2": 3.50,
"link": "https://...",
"primary_color": "#126d50"
}
]
}
]
}
],
"inplay": []
}
| Field | Description |
|---|
og | Odds group ID |
o1, oX, o2 | Home / Draw / Away prices |
bid | Bookmaker ID (matches /api/v1/bookmakers) |
Cache TTL: 1 minute.
Match Odds Movements
GET /api/v1/match/{matchId}/odds-movements
GET /api/v1/match/{matchId}/odds-movements?offerType=201&inplay=0
| Param | Type | Default | Description |
|---|
offerType | number | 201 | Offer type ID |
inplay | string | "0" | "1" for live movements |
{
"generatedAt": "2026-04-05 00:00:00",
"matchId": 9791299,
"movements": {
"1": {
"average": {
"lowest": { "y": 1.85, "x": "2026-04-01" },
"highest": { "y": 2.20, "x": "2026-03-28" },
"open": { "y": 2.05, "x": "2026-03-25" }
},
"bookmakers": { }
}
}
}
Cache TTL: 2 minutes.
Available Markets
GET /api/v1/match/{matchId}/markets
Lists every betting market available for the match. Use this to decide which oddGroupId filters to expose in your UI.
{
"matchId": 9791299,
"markets": [
{ "id": 1, "name": "1X2" },
{ "id": 3, "name": "Handicap" },
{ "id": 5, "name": "Over/Under" }
]
}
Cache TTL: 5 minutes.
GET /api/v1/match/{matchId}/prediction
{
"matchId": 9791299,
"prediction": {
"home_percent": 45,
"draw_percent": 25,
"away_percent": 30,
"total_predictions": 1500
}
}
Cache TTL: 5 minutes.
Example
curl -H "x-api-key: YOUR_API_KEY" \
"https://v4.football.sportsapipro.com/api/v1/match/9798283/odds"