BO3 API endpoint
Returns a CS2 player's newest matches (up to 30) with the opponent, the tournament, the rounds played, each map in order with whether the player's team won it, and the player's own line for the match (rating, kills, deaths, assists, damage, first kills and deaths, trade kills and deaths, headshots, hits, shots, accuracy, money saved and equipment value). Filter by `opponent` or `tournament`. Date windows are not supported upstream; the list does not page past 30.
/bo3/player-recent-matchesHeader: x-api-key required.
Parameters:
slug: required player slug, for example donk.opponent: optional opposing team slug, for example mouz-cs2.tournament: optional tournament slug from bo3-tournaments.limit: optional number of newest matches, 1 to 30, default 10.Notable response behavior:
subject is player (allowed values: team, player; it is team on bo3-team-recent-matches). Each map carries won, whether the player's team won it. lines has exactly one row, the player's totals over the maps of the match, with the same fields as bo3-team-recent-matches.404; a filter that matches nothing returns an empty list. Cached for up to ten minutes.| Field | Filled in, of 30 checked | Values in the sample |
|---|---|---|
| match_slug | 30 | |
| started_at | 30 | 2026-07-23 to 2026-10-28 |
| tournament_slug | 30 | |
| opponent | 30 | |
| rounds | 30 | 23 to 100, median 50 |
| maps | 30 | median 2 entries |
| lines | 30 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| slug | string | Yes | Player slug, for example donk | donk | |
| opponent | string | No | Opposing team slug, for example mouz-cs2 | ||
| tournament | string | No | Tournament slug from bo3-tournaments | ||
| limit | integer | No | Newest matches to return, 1 to 30, default 10 Minimum: 1. Maximum: 30. |
curl -X GET "https://api.crawlora.net/api/v1/bo3/player-recent-matches?slug=donk&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://api.bo3.gg/api/v1/players/donk/matches_list_stats/general",
"fetched_at": "2026-10-28T10:00:00Z",
"subject": "player",
"slug": "donk",
"count": 1,
"matches": [
{
"match_slug": "spirit-vs-mouz-cs2-27-10-2026",
"started_at": "2026-10-27T14:35:00Z",
"tournament_slug": "pgl-masters-bucharest-2026",
"opponent": {
"id": 765,
"slug": "mouz-cs2",
"name": "MOUZ"
},
"rounds": 66,
"maps": [
{
"game_number": 3,
"game_id": 190587,
"map": "de_dust2",
"won": false
}
],
"lines": [
{
"player_slug": "donk",
"nickname": "donk",
"team_slug": "spirit",
"rating": 7.7,
"kills": 66,
"deaths": 47,
"assists": 16,
"damage": 7364
}
]
}
]
}
}Request schema
No body schema
Response schema
Inline response schema
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | bo3.RecentMatchesResponse | No | ||||
| data.count | integer | No | 10 | |||
| data.fetched_at | string | No | 2026-10-28T10:00:00Z | |||
| data.matches | array | No | RecentMatch record, 35 fields: lines, maps, match_slug, opponent, rounds, started_at, tournament_slug. Described under BO3.gg team recent matches API. | |||
| data.opponent | string | No | ||||
| data.slug | string | No | vitality | |||
| data.source_url | string | No | https://bo3.gg/matches/current | |||
| data.subject | string | No | team, player | team | ||
| data.tournament | string | No | ||||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/bo3/player-recent-matches?slug=donk&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"