BO3 API endpoint
Returns one statistics view of a BO3.gg player over a day range (default: the last six months): `general` (match, game, round, kill, death, assist and damage totals), `maps` (rating, kills and damage per map) or `accuracy` (hits, damage and kills by hit group). General views fill `stats`; the other views fill `rows`.
/bo3/player-statsHeader: x-api-key required.
Parameters:
slug: required player slug, for example donk or zywoo.kind: optional; allowed values: general, maps, accuracy. Defaults to general.from, to: optional days as YYYY-MM-DD; the default window is the six months ending today (UTC).Notable response behavior:
general returns stats (games_count, matches_count, rounds_count, kills_sum, deaths_sum, assists_sum, damage_sum and more) with the player id and name; maps rows carry map_name, maps_count, avg_player_rating, avg_kills and avg_damage.subject is player here (the shared response also uses team). An unknown slug returns 404 or an empty rows list. The response is cached for up to one hour.| Field | In the sample | Value in the sample |
|---|---|---|
| subject | Has a value | “player” |
| slug | Has a value | |
| kind | Has a value | “general” |
| from | Has a value | 2026-04-29 |
| to | Has a value | 2026-10-29 |
| id | Has a value | |
| name | Has a value | “donk” |
| stats.assists_sum | Has a value | 534 |
| stats.damage_sum | Has a value | 223,412 |
| stats.deaths_sum | Has a value | 1,590 |
| stats.events_count | Has a value | 9 |
| stats.events_won_count | Has a value | 3 |
| stats.games_count | Has a value | 109 |
| stats.games_lost_count | Has a value | 34 |
| stats.games_won_count | Has a value | 75 |
| stats.kills_sum | Has a value | 2,151 |
| stats.matches_count | Has a value | 44 |
| stats.matches_lost_count | Has a value | 10 |
| stats.matches_won_count | Has a value | 34 |
| stats.rounds_count | Has a value | 2,374 |
| stats.rounds_won_count | Has a value | 1,328 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| slug | string | Yes | Player slug, for example donk | donk | |
| kind | string | No | general | Statistics view; one of general, maps, accuracy; defaults to general Allowed values: general, maps, accuracy. | |
| from | string | No | six months before to | First day, YYYY-MM-DD; defaults to six months before to | 2026-04-28 |
| to | string | No | today (UTC | Last day, YYYY-MM-DD; defaults to today (UTC) | 2026-10-28 |
curl -X GET "https://api.crawlora.net/api/v1/bo3/player-stats?slug=donk&kind=general" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://api.bo3.gg/api/v1/player-stats",
"fetched_at": "2026-10-28T10:00:00Z",
"subject": "player",
"slug": "donk",
"kind": "maps",
"from": "2026-04-28",
"to": "2026-10-28",
"rows": [
{
"map_name": "de_ancient",
"maps_count": 16,
"avg_player_rating": 7.64,
"avg_kills": 0.95,
"avg_damage": 99.36
}
]
}
}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.StatsResponse | No | ||||
| data.fetched_at | string | No | 2026-10-28T10:00:00Z | |||
| data.from | string | No | 2026-04-28 | |||
| data.id | integer | No | 667 | |||
| data.kind | string | No | general | |||
| data.name | string | No | Vitality | |||
| data.rows | array | No | ||||
| data.slug | string | No | vitality | |||
| data.source_url | string | No | https://bo3.gg/matches/current | |||
| data.stats | object | No | ||||
| data.subject | string | No | team, player | team | ||
| data.to | string | No | 2026-10-28 | |||
| 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-stats?slug=donk&kind=general" \
-H "x-api-key: $CRAWLORA_API_KEY"