Endpoint Playground
Returns the maps of one BO3.gg match with round-by-round results: for each map the number, map name, state, start, duration in seconds, final score, per-half side results (CT or T score, overtime) and every round with its number, duration, end reason, winning side and running score. A match with no maps yet returns an empty list.
29 Oct 2026: 2 games; 14 fields had a value in every checked item.
Sample value profiles: begin_at: 2026-10-27; number: 1 to 2, median 1; map: “inferno” and 1 other value.
curl 'https://api.crawlora.net/api/v1/bo3/match-games?match_id=132243' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| match_id | integer | Yes | 132243 | Numeric BO3 match id (the id of a bo3-match-history row) |
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://api.bo3.gg/api/v1/match-games",
"fetched_at": "2026-10-28T10:00:00Z",
"match_id": 132243,
"count": 1,
"games": [
{
"id": 190595,
"number": 1,
"map": "inferno",
"state": "done",
"status": "finished",
"duration_seconds": 2141.7,
"rounds_count": 15,
"winner_name": "Team Vitality",
"loser_name": "Natus Vincere",
"winner_score": 13,
"loser_score": 2,
"side_results": [
{
"order": 1,
"overtime": false,
"winner_side": "CT",
"winner_score": 10,
"loser_side": "T",
"loser_score": 2
}
],
"rounds": [
{
"number": 1,
"duration_seconds": 91.75,
"end_reason": "BombDefused",
"winner_side": "CT",
"winner_name": "Team Vitality",
"winner_score": 1,
"loser_score": 0
}
]
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.