Description
Returns match analysis data (head-to-head / recent form, upcoming fixtures, goal distribution)
Use it for the history of matches that have not started; the data is mostly historical and changes rarely
Limit: matches of the previous 30 days
Request rate: 60/min
Use it for the history of matches that have not started; the data is mostly historical and changes rarely
Limit: matches of the previous 30 days
Request rate: 60/min
Access
- Request
GET https://api.sports.csap.ai/api/v1/matches/analysis- Auth
- Header X-API-Key: <your key> (Authorization: Bearer <key> also works; ?key= is still accepted but discouraged, because the key ends up in URLs and logs)
- External keys
- Available (scoped)External keys can call it, but only data inside the open scope is returned.
- Rate limits
- 3000 per minute · 200000 per day · Set per key (rate_per_min and quota_daily returned by /api/v1/account are authoritative; the numbers above are a trial key's). Beyond them the answer is 429. In addition, heavy requests such as whole-table snapshots and statistics lists without a match id are processed 2 at a time for the whole platform; a request that cannot get a slot receives 429 with Retry-After. Responses do not carry X-RateLimit-* headers for now. See the general guide
Request parameters 1
| Parameter | Type | required | Example | Description |
|---|---|---|---|---|
| id | integer | required | 5179 | Match id |
Example request
curl "https://api.sports.csap.ai/api/v1/matches/analysis?id=5179" \ -H "X-API-Key: YOUR_API_KEY"
Try it
Example response
{
"code": 0,
"data": [
{
"all": null,
"away": [
{
"away_scores": [
0,
0,
0
],
"away_team_id": 93586,
"competition_id": 3136,
"home_scores": [
2,
1,
0
],
"home_team_id": 75362,
"id": 4662815,
"match_time": 1793124000,
"odds": [
"0.87,0.5,0.92,0",
"1.83,3.50,3.50,0",
"0.97,3.25,0.82,0"
]
},
{
"away_scores": [
2,
1,
0
],
"away_team_id": 75362,
"competition_id": 3136,
"home_scores": [
4,
1,
0
],
"home_team_id": 93586,
"id": 4660166,
"match_time": 1792521000,
"odds": [
"1.02,0.0,0.77,0",
"2.60,3.50,2.25,0",
"0.97,3.25,0.82,0"
]
},
{
"away_scores": [
0,
0,
0
],
"away_team_id": 75362,
"competition_id": 3136,
"home_scores": [
4,
1,
0
],
"home_team_id": 25930,
"id": 4537979,
"match_time": 1777746600,
"odds": [
"0.82,2.25,0.97,0",
"1.11,7.5,17.0,0",
"0.87,3.0,0.92,0"
]
}
],
"away_avg_rating": null,
"away_form": "WLLLL",
"away_position": null,
"away_scores": null,
"away_team_id": null,
"competition_id": null,
"conceded": null,
"future": null,
"goal_distribution": null,
"group_num": null,
"h2h_away_wins": 0,
"h2h_draws": 0,
"h2h_home_wins": 0,
"history": {
"away": [
{
"away_scores": [
0,
0,
0
],
"away_team_id": 93586,
"competition_id": 3136,
"home_scores": [
2,
1,
0
],
"home_team_id": 75362,
"id": 4662815,
"match_time": 1793124000,
"odds": [
"0.87,0.5,0.92,0",
"1.83,3.50,3.50,0",
"0.97,3.25,0.82,0"
]
},
{
"away_scores": [
2,
1,
0
],
"away_team_id": 75362,
"competition_id": 3136,
"home_scores": [
4,
1,
0
],
"home_team_id": 93586,
"id": 4660166,
"match_time": 1792521000,
"odds": [
"1.02,0.0,0.77,0",
"2.60,3.50,2.25,0",
"0.97,3.25,0.82,0"
]
},
{
"away_scores": [
0,
0,
0
],
"away_team_id": 75362,
"competition_id": 3136,
"home_scores": [
4,
1,
0
],
"home_team_id": 25930,
"id": 4537979,
"match_time": 1777746600,
"odds": [
"0.82,2.25,0.97,0",
"1.11,7.5,17.0,0",
"0.87,3.0,0.92,0"
]
}
],
"home": [
{
"away_scores": [
1,
0,
1
],
"away_team_id": 53790,
"competition_id": 3136,
"home_scores": [
1,
0,
0
],
"home_team_id": 83504,
"id": 4661910,
"match_time": 1792866600,
"odds": [
"0.85,0.5,0.95,0",
"1.80,3.40,3.75,0",
"0.90,2.5,0.90,0"
]
},
{
"away_scores": [
1,
0,
1
],
"away_team_id": 83504,
"competition_id": 3136,
"home_scores": [
1,
1,
0
],
"home_team_id": 53790,
"id": 4660167,
"match_time": 1792521000,
"odds": [
"1.00,-0.25,0.80,0",
"3.00,3.50,2.00,0",
"0.80,2.5,1.00,0"
]
},
{
"away_scores": [
3,
0,
1
],
"away_team_id": 53790,
"competition_id": 3136,
"home_scores": [
1,
0,
2
],
"home_team_id": 93268,
"id": 4657192,
"match_time": 1791914400,
"odds": [
"1.00,1.0,0.80,0",
"1.57,3.60,5.00,0",
"0.95,2.75,0.85,0"
]
}
],
"vs": []
},
"home": [
{
"away_scores": [
1,
0,
1
],
"away_team_id": 53790,
"competition_id": 3136,
"home_scores": [
1,
0,
0
],
"home_team_id": 83504,
"id": 4661910,
"match_time": 1792866600,
"odds": [
"0.85,0.5,0.95,0",
"1.80,3.40,3.75,0",
"0.90,2.5,0.90,0"
]
},
{
"away_scores": [
1,
0,
1
],
"away_team_id": 83504,
"competition_id": 3136,
"home_scores": [
1,
1,
0
],
"home_team_id": 53790,
"id": 4660167,
"match_time": 1792521000,
"odds": [
"1.00,-0.25,0.80,0",
"3.00,3.50,2.00,0",
"0.80,2.5,1.00,0"
]
},
{
"away_scores": [
3,
0,
1
],
"away_team_id": 53790,
"competition_id": 3136,
"home_scores": [
1,
0,
2
],
"home_team_id": 93268,
"id": 4657192,
"match_time": 1791914400,
"odds": [
"1.00,1.0,0.80,0",
"1.57,3.60,5.00,0",
"0.95,2.75,0.85,0"
]
}
],
"home_avg_rating": null,
"home_form": "DDWDD",
"home_position": null,
"home_scores": null,
"home_team_id": null,
"id": 5190,
"info": {
"away_team_id": 75362,
"home_team_id": 53790,
"id": 4664993
},
"match_source": "S3",
"match_time": null,
"matches": null,
"neutral": null,
"note": null,
"odds": null,
"round": null,
"round_num": null,
"scored": null,
"season_id": null,
"stage_id": null,
"status_id": null,
"updated_at": 1793778664249,
"vs": []
},
{
"all": null,
"away": [
{
"away_scores": [
0,
0,
0
],
"away_team_id": 37921,
"competition_id": 1699,
"home_scores": [
2,
1,
0
],
"home_team_id": 39007,
"id": 4661675,
"match_time": 1793124000,
"odds": [
"0.92,0.75,0.87,0",
"1.66,3.50,4.20,0",
"1.00,2.5,0.80,0"
]
},
{
"away_scores": [
1,
0,
0
],
"away_team_id": 39007,
"competition_id": 1699,
"home_scores": [
0,
0,
1
],
"home_team_id": 37337,
"id": 4659266,
"match_time": 1792605600,
"odds": [
"1.00,0.25,0.80,0",
"2.50,3.10,2.55,0",
"0.77,2.0,1.02,0"
]
},
{
"away_scores": [
0,
0,
0
],
"away_team_id": 38154,
"competition_id": 1699,
"home_scores": [
3,
1,
0
],
"home_team_id": 39007,
"id": 4655809,
"match_time": 1792094400,
"odds": [
"0.85,0.25,0.95,0",
"2.00,3.10,3.30,0",
"1.02,2.25,0.77,0"
]
}
],
"away_avg_rating": null,
"away_form": "WWWLW",
"away_position": null,
"away_scores": null,
"away_team_id": null,
"competition_id": null,
"conceded": null,
"future": null,
"goal_distribution": null,
"group_num": null,
"h2h_away_wins": 2,
"h2h_draws": 0,
"h2h_home_wins": 3,
"history": {
"away": [
{
"away_scores": [
0,
0,
0
],
"away_team_id": 37921,
"competition_id": 1699,
"home_scores": [
2,
1,
0
],
"home_team_id": 39007,
"id": 4661675,
"match_time": 1793124000,
"odds": [
"0.92,0.75,0.87,0",
"1.66,3.50,4.20,0",
"1.00,2.5,0.80,0"
]
},
{
"away_scores": [
1,
0,
0
],
"away_team_id": 39007,
"competition_id": 1699,
"home_scores": [
0,
0,
1
],
"home_team_id": 37337,
"id": 4659266,
"match_time": 1792605600,
"odds": [
"1.00,0.25,0.80,0",
"2.50,3.10,2.55,0",
"0.77,2.0,1.02,0"
]
},
{
"away_scores": [
0,
0,
0
],
"away_team_id": 38154,
"competition_id": 1699,
"home_scores": [
3,
1,
0
],
"home_team_id": 39007,
"id": 4655809,
"match_time": 1792094400,
"odds": [
"0.85,0.25,0.95,0",
"2.00,3.10,3.30,0",
"1.02,2.25,0.77,0"
]
}
],
"home": [
{
"away_scores": [
1,
0,
0
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
1,
0,
0
],
"home_team_id": 37302,
"id": 4661663,
"match_time": 1793210400,
"odds": [
"1.05,0.0,0.75,0",
"2.75,3.10,2.30,0",
"1.00,2.25,0.80,0"
]
},
{
"away_scores": [
2,
0,
0
],
"away_team_id": 37862,
"competition_id": 1699,
"home_scores": [
1,
1,
1
],
"home_team_id": 44210,
"id": 4658848,
"match_time": 1792519200,
"odds": [
"0.85,0.0,0.95,0",
"2.45,3.10,2.55,0",
"0.77,2.0,1.02,0"
]
},
{
"away_scores": [
1,
0,
0
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
0,
0,
0
],
"home_team_id": 37316,
"id": 4655558,
"match_time": 1792000800,
"odds": [
"0.80,0.0,1.00,0",
"2.55,3.20,2.45,0",
"0.80,2.0,1.00,0"
]
}
],
"vs": [
{
"away_scores": [
2,
0,
1
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
2,
2,
1
],
"home_team_id": 39007,
"id": 4546848,
"match_time": 1780610400,
"odds": [
"1.05,0.25,0.75,0",
"2.3,3.4,2.7,0",
"1.0,2.5,0.8,0"
]
},
{
"away_scores": [
1,
0,
0
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
1,
1,
1
],
"home_team_id": 39007,
"id": 4008933,
"match_time": 1694210400,
"odds": [
"1.02,0.25,0.78,0",
"2.25,3.2,2.8,0",
"0.8,2.25,1.0,0"
]
},
{
"away_scores": [
1,
0,
1
],
"away_team_id": 39007,
"competition_id": 1699,
"home_scores": [
4,
1,
0
],
"home_team_id": 44210,
"id": 3929992,
"match_time": 1685023200,
"odds": [
"0.9,0.5,0.9,0",
"1.85,3.25,3.8,0",
"0.82,2.25,0.97,0"
]
}
]
},
"home": [
{
"away_scores": [
1,
0,
0
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
1,
0,
0
],
"home_team_id": 37302,
"id": 4661663,
"match_time": 1793210400,
"odds": [
"1.05,0.0,0.75,0",
"2.75,3.10,2.30,0",
"1.00,2.25,0.80,0"
]
},
{
"away_scores": [
2,
0,
0
],
"away_team_id": 37862,
"competition_id": 1699,
"home_scores": [
1,
1,
1
],
"home_team_id": 44210,
"id": 4658848,
"match_time": 1792519200,
"odds": [
"0.85,0.0,0.95,0",
"2.45,3.10,2.55,0",
"0.77,2.0,1.02,0"
]
},
{
"away_scores": [
1,
0,
0
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
0,
0,
0
],
"home_team_id": 37316,
"id": 4655558,
"match_time": 1792000800,
"odds": [
"0.80,0.0,1.00,0",
"2.55,3.20,2.45,0",
"0.80,2.0,1.00,0"
]
}
],
"home_avg_rating": null,
"home_form": "DLWLD",
"home_position": null,
"home_scores": null,
"home_team_id": null,
"id": 5191,
"info": {
"away_team_id": 39007,
"home_team_id": 44210,
"id": 4663132
},
"match_source": "S3",
"match_time": null,
"matches": null,
"neutral": null,
"note": null,
"odds": null,
"round": null,
"round_num": null,
"scored": null,
"season_id": null,
"stage_id": null,
"status_id": null,
"updated_at": 1793778673021,
"vs": [
{
"away_scores": [
2,
0,
1
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
2,
2,
1
],
"home_team_id": 39007,
"id": 4546848,
"match_time": 1780610400,
"odds": [
"1.05,0.25,0.75,0",
"2.3,3.4,2.7,0",
"1.0,2.5,0.8,0"
]
},
{
"away_scores": [
1,
0,
0
],
"away_team_id": 44210,
"competition_id": 1699,
"home_scores": [
1,
1,
1
],
"home_team_id": 39007,
"id": 4008933,
"match_time": 1694210400,
"odds": [
"1.02,0.25,0.78,0",
"2.25,3.2,2.8,0",
"0.8,2.25,1.0,0"
]
},
{
"away_scores": [
1,
0,
1
],
"away_team_id": 39007,
"competition_id": 1699,
"home_scores": [
4,
1,
0
],
"home_team_id": 44210,
"id": 3929992,
"match_time": 1685023200,
"odds": [
"0.9,0.5,0.9,0",
"1.85,3.25,3.8,0",
"0.82,2.25,0.97,0"
]
}
]
}
],
"message": "success",
"success": true
}Response fields 39
allnullnullableAll matches
awayarray<object>nullableAway team's recent form (same format as the info match field)· 8
away_avg_ratingnumbernullable
Example: 7.27away_formstring
Example: "WLLLL"away_positionnullnullableAway team rank
away_scoresnullnullableScore field · example: [1, 0, 0, 0, -1, 0, 0]
away_team_idnullnullableAway team id
competition_idnullnullableCompetition id
concedednullnullableDistribution of goals conceded by the home team
futurenullnullableUpcoming fixtures
goal_distributionnullnullableGoal distribution; may be absent
group_numnullnullableGroup number: 1 = A, 2 = B and so on
h2h_away_winsintegernullable
Example: 0h2h_drawsintegernullable
Example: 0h2h_home_winsintegernullable
Example: 0historyobjectnullableHead-to-head / recent form· 3
homearray<object>nullableHome team's recent form (same format as the info match field)· 8
home_avg_ratingnumbernullable
Example: 7.01home_formstring
Example: "DDWDD"home_positionnullnullableHome team rank
home_scoresnullnullableScore field · example: [1, 0, 0, 0, -1, 0, 0]
home_team_idnullnullableHome team id
idintegerRecord id; paging cursor (the id parameter returns records >= this value). In match endpoints it is the platform match id (gmid)
Example: 5190infoobjectnullable· 3
match_sourcestringSource code of this row
Example: "S3"gmidintegernullablePlatform match id (gmid, unique across the platform)
match_timenullnullableKick-off time (UTC, ISO 8601)
matchesnullnullableMatches
neutralnullnullableNeutral venue: 1 yes, 0 no
notenullnullableRemark
oddsnullnullableBET365 opening line · example: ["0.86,-0.5,1.04,0","3.8,3.6,2.05,0","0.9,2.75,1.0,0","0.9,9,0.9,0"]
roundnullnullableRound
round_numnullnullableRound number
scorednullnullableDistribution of goals scored by the home team
season_idnullnullableSeason id
stage_idnullnullableStage id
status_idnullnullableMatch status code (see the status and type code table)
updated_atintegerLast update time (UTC, ISO 8601; incremental sync with the time parameter goes by it)
Example: 1793778664249vsarraynullableHead-to-head (same format as the info match field)
Errors
| HTTP | message | When |
|---|---|---|
| 401 | missing API key / unauthorized | No X-API-Key, or the key is invalid or disabled |
| 400 | bad param … | Malformed parameter (e.g. id is neither a number nor u<uid>) |
| 301 | match merged into <gmid> | Queried by an old match id that has been merged into a new gmid: Location points to the new address and the body carries moved_to |
| 404 | not found | The match / team / competition does not exist, or is outside what this key can see (external keys see only matches inside the open coverage) |
| 429 | rate limit exceeded / daily quota exceeded | The key's per-minute rate or daily quota is exceeded |
| 429 | server busy, retry later | The server's concurrency slots are full (only 2 heavy requests at a time); retry after Retry-After seconds |
| 500 | query error | The query failed on the server; you may retry |