VLR API endpoint
Returns one VLR.gg player: alias, real name, country, social links, agent-by-agent statistics (use, rounds, rating, ACS, K:D, KAST, ADR, KPR, APR and first kills), current and past teams and recent results.
/vlr/playerHeader: x-api-key required.
Parameters:
id: required numeric player id from vlr-team or vlr-stats.timespan: optional window of the agent statistics; allowed values: all, 30d, 60d, 90d. Omit it for the site default. The response repeats it in timespan.Notable response behavior:
agent_stats covers the site's default recent timespan unless timespan is sent; use vlr-stats for filtered statistics.current_teams and past_teams give period text such as joined in November 2025. An unknown player id returns 404.recent_matches[].result has these values: win, loss, upcoming (an unplayed match, which has an eta instead of a score).| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| agent | 5 | |
| use | 5 | “(6) 29%” and 3 other values |
| rounds | 5 | 18 to 137, median 122 |
| rating | 5 | 0.45 to 1.3, median 0.95 |
| acs | 5 | 125 to 257.5, median 206.5 |
| kd | 5 | 0.38 to 1.43, median 1.04 |
| kast_percent | 5 | 61 to 78, median 71 |
| adr | 5 | 89.3 to 167.1, median 128.8 |
| kills_per_round | 5 | 0.33 to 0.94, median 0.74 |
| assists_per_round | 5 | 0.19 to 0.39, median 0.23 |
| first_kills_per_round | 5 | 0.47 to 3.5, median 0.63 |
| kills | 5 | 6 to 101, median 85 |
| deaths | 5 | 16 to 103, median 80 |
| assists | 5 | 7 to 29, median 26 |
| first_kills | 5 | 1 to 14, median 7 |
| first_deaths | 5 | 1 to 23, median 8 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| id | string | Yes | Numeric VLR player id from vlr-team or vlr-stats | 9780 | |
| timespan | string | No | Window of the agent statistics; one of all, 30d, 60d, 90d; omit for the site default Allowed values: all, 30d, 60d, 90d. |
curl -X GET "https://api.crawlora.net/api/v1/vlr/player?id=9780×pan=all" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://www.vlr.gg/player",
"fetched_at": "2026-10-27T10:00:00Z",
"id": "9780",
"alias": "Jamppi",
"real_name": "Elias Olkkonen",
"country_code": "fi",
"agent_stats": [
{
"agent": "yoru",
"use": "(6) 29%",
"rounds": 137,
"rating": 0.93,
"acs": 206.5,
"kd": 0.98,
"kast_percent": 63
}
],
"current_teams": [
{
"id": "2059",
"name": "Team Vitality",
"period": "joined in November 2025"
}
],
"past_teams": []
}
}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 | vlr.PlayerDetail | No | ||||
| data.agent_stats | array | No | ||||
| data.agent_stats[].acs | number | No | 206.5 | |||
| data.agent_stats[].adr | number | No | 128.8 | |||
| data.agent_stats[].agent | string | No | Jett | |||
| data.agent_stats[].assists | integer | No | 26 | |||
| data.agent_stats[].assists_per_round | number | No | 0.19 | |||
| data.agent_stats[].deaths | integer | No | 103 | |||
| data.agent_stats[].first_deaths | integer | No | 23 | |||
| data.agent_stats[].first_kills | integer | No | 14 | |||
| data.agent_stats[].first_kills_per_round | number | No | 0.61 | |||
| data.agent_stats[].kast_percent | number | No | 63 | |||
| data.agent_stats[].kd | number | No | 0.98 | |||
| data.agent_stats[].kills | integer | No | 101 | |||
| data.agent_stats[].kills_per_round | number | No | 0.74 | |||
| data.agent_stats[].rating | number | No | 0.93 | |||
| data.agent_stats[].rounds | integer | No | 137 | |||
| data.agent_stats[].use | string | No | (6) 29% | |||
| data.alias | string | No | Jamppi | |||
| data.country | string | No | FINLAND | |||
| data.country_code | string | No | fi | |||
| data.current_teams | array | No | ||||
| data.current_teams[].id | string | No | 21919 | |||
| data.current_teams[].logo_url | string | No | ||||
| data.current_teams[].name | string | No | Unsettled Resentment | |||
| data.current_teams[].period | string | No | January 2025 - Present | |||
| data.current_teams[].tag | string | No | UR | |||
| data.current_teams[].url | string | No | ||||
| data.fetched_at | string | No | 2026-10-27T10:00:00Z | |||
| data.id | string | No | 9780 | |||
| data.image_url | string | No | ||||
| data.links | array | No | ||||
| data.past_teams | array | No | ||||
| data.past_teams[].id | string | No | 21919 | |||
| data.past_teams[].logo_url | string | No | ||||
| data.past_teams[].name | string | No | Unsettled Resentment | |||
| data.past_teams[].period | string | No | January 2025 - Present | |||
| data.past_teams[].tag | string | No | UR | |||
| data.past_teams[].url | string | No | ||||
| data.real_name | string | No | Elias Olkkonen | |||
| data.recent_matches | array | No | TeamMatch record, 10 fields: date, eta, event, id, opponent, result, score, stage, team, url. Described under VLR.gg team profile API. | |||
| data.source_url | string | No | https://www.vlr.gg/matches | |||
| data.timespan | string | No | all, 30d, 60d, 90d | 90d | ||
| 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/vlr/player?id=9780×pan=all" \
-H "x-api-key: $CRAWLORA_API_KEY"