CS2 Rankings API
Team rankings: the world ranking, Valve Regional Standings, and regional boards. The VRS ranks rosters, not organisations, so an organisation whose new and previous lineups are both ranked appears twice: the lower entry carries alsoRankedAt.
6 endpoints in this section. Authenticate with the x-api-key header; every response is { success, data, meta }. Other sections: Live, Player props, Odds, Matches, Maps & rounds, Teams, Players, Events, Stats & leaderboards, Skins, Transfers, Search & reference.
Team rankings
The latest world team ranking, one row per team, with points and change since the previous ranking. Same response as `GET /api/v1/cs2/rankings`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
| offset | integer | Rows to skip, for paging. |
| page | integer | Page number, starting at 1. |
| source | string | Ranking to use: omit for Valve Regional Standings, or world for the world ranking filtered to this region. |
Example
curl "https://api.citoapi.com/api/v1/cs2/teams/rankings" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"id": "ed73655e-011f-48fa-a6a8-1594187a86c6",
"teamId": "cs2-team-7020",
"teamName": "Spirit",
"rank": 1,
"points": 904,
"change": 0,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-7020",
"name": "Spirit",
"slug": "spirit",
"teamTag": "SPIRIT",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/608894028d96779c209b2fb4c03da37c.webp",
"countryName": "Russia",
"countryCode": "RU",
"region": "Europe",
"lastSyncedAt": "2026-10-26T22:47:00.752Z",
"lastVerified": "2026-10-26T22:47:00.752Z",
"confidence": "high",
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/25ac49209b09795f64e76b9800aa5b5c.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/25ac49209b09795f64e76b9800aa5b5c.webp"
}
},
{
"id": "fe330e8a-fd41-4920-867d-dd86c556d759",
"teamId": "cs2-team-9565",
"teamName": "Vitality",
"rank": 2,
"points": 898,
"change": 0,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-9565",
"name": "Vitality",
"slug": "vitality",
"teamTag": "VITALITY",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
"countryName": "Europe",
"countryCode": null,
"region": "Europe",
"lastSyncedAt": "2026-10-26T22:47:07.809Z",
"lastVerified": "2026-10-26T22:47:07.809Z",
"confidence": "high",
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
}
}
],
"meta": {
"count": 2,
"total": 248,
"page": 1,
"limit": 2,
"ranking": "world",
"rankingDate": "2026-10-26",
"changeSince": "2026-10-19",
"syncedAt": "2026-10-26T22:02:01.323Z",
"availability": "available",
"totalPages": 124,
"hasNext": true,
"hasPrev": false
}
}World ranking
The latest world team ranking. Past lists: `?date=YYYY-MM-DD` (or `as_of`) returns the newest complete list published on or before that day; `?before=YYYY-MM-DD` the newest one strictly before it (the ranking a model may use for a match on that day). Weekly lists from 2018-01-01, daily from 2026-07-22. `meta.rankingDate` is the list returned. Team ids are the same as in the match endpoints.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| as_of | string | Same as date. |
| before | string | The newest list published strictly before this day (YYYY-MM-DD): pre-match rankings with no look-ahead. |
| date | string | The list as it stood on this day (YYYY-MM-DD): the newest complete list published on or before it. |
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
| offset | integer | Rows to skip, for paging. |
| page | integer | Page number, starting at 1. |
Example
curl "https://api.citoapi.com/api/v1/cs2/rankings/world" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"id": "ed73655e-011f-48fa-a6a8-1594187a86c6",
"teamId": "cs2-team-7020",
"teamName": "Spirit",
"rank": 1,
"points": 904,
"change": 0,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-7020",
"name": "Spirit",
"slug": "spirit",
"teamTag": "SPIRIT",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/608894028d96779c209b2fb4c03da37c.webp",
"countryName": "Russia",
"countryCode": "RU",
"region": "Europe",
"lastSyncedAt": "2026-10-26T23:00:39.505Z",
"lastVerified": "2026-10-26T23:00:39.505Z",
"confidence": "high",
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/25ac49209b09795f64e76b9800aa5b5c.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/25ac49209b09795f64e76b9800aa5b5c.webp"
}
},
{
"id": "fe330e8a-fd41-4920-867d-dd86c556d759",
"teamId": "cs2-team-9565",
"teamName": "Vitality",
"rank": 2,
"points": 898,
"change": 0,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-9565",
"name": "Vitality",
"slug": "vitality",
"teamTag": "VITALITY",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
"countryName": "Europe",
"countryCode": null,
"region": "Europe",
"lastSyncedAt": "2026-10-26T22:47:07.809Z",
"lastVerified": "2026-10-26T22:47:07.809Z",
"confidence": "high",
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
}
}
],
"meta": {
"count": 2,
"total": 248,
"page": 1,
"limit": 2,
"ranking": "world",
"rankingDate": "2026-10-26",
"changeSince": "2026-10-19",
"syncedAt": "2026-10-26T22:02:01.323Z",
"availability": "available",
"totalPages": 124,
"hasNext": true,
"hasPrev": false
}
}VRS snapshot dates
Every Valve Regional Standings list we hold, oldest first, with the number of teams in each: Valve's releases from 2024-08-06 (weekly until January 2025, then about monthly) and a daily list from July 2026. Use these dates with `/cs2/rankings/vrs?date=` to rebuild the ranking as it stood at any point.
Example
curl "https://api.citoapi.com/api/v1/cs2/rankings/vrs/dates" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"rankingDate": "2024-08-06",
"teams": 207
},
{
"rankingDate": "2024-08-14",
"teams": 209
}
],
"meta": {
"count": 118,
"ranking": "vrs",
"coverage": {
"from": "2024-08-06",
"to": "2026-10-26"
},
"limit": 118,
"total": 118,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}World ranking snapshot dates
Every world ranking list we hold, oldest first, with the number of teams in each: weekly from 2018-01-01, daily from 2026-07-22. Use these dates with `/cs2/rankings/world?date=` to rebuild the ranking as it stood at any point.
Example
curl "https://api.citoapi.com/api/v1/cs2/rankings/world/dates" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"rankingDate": "2018-01-01",
"teams": 30
},
{
"rankingDate": "2018-01-08",
"teams": 30
}
],
"meta": {
"count": 539,
"ranking": "world",
"coverage": {
"from": "2018-01-01",
"to": "2026-10-26"
},
"limit": 539,
"total": 539,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Valve Regional Standings
Past lists: `?date=YYYY-MM-DD` (or `as_of`) returns the newest list published on or before that day; `?before=YYYY-MM-DD` the newest one strictly before it, which is the ranking a model may use for a match on that day without seeing results from it. `meta.rankingDate` is the list returned; a date before our coverage returns an empty list with `meta.coverage`. Team ids are the same as in the match endpoints. Without a date: the latest Valve Regional Standings (VRS), in Valve's order. Valve ranks rosters, not organisations: a roster is five specific players and keeps its ranking only while at least three of them stay together, so after a big roster change the new lineup and the previous one can both be ranked under the same organisation. That team then appears twice with different points: the lower entry has `alsoRankedAt` (the team's best rank) and `change: null`. Every entry has its own `id`; key on `id` or `rank` for one row per place, or skip rows with `alsoRankedAt` for one row per organisation. `rank` is Valve's official position; points are rounded, so two teams can show equal points with different ranks.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| as_of | string | Same as date. |
| before | string | The newest list published strictly before this day (YYYY-MM-DD): pre-match rankings with no look-ahead. |
| date | string | The list as it stood on this day (YYYY-MM-DD): the newest list published on or before it. |
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
| offset | integer | Rows to skip, for paging. |
| page | integer | Page number, starting at 1. |
Example
curl "https://api.citoapi.com/api/v1/cs2/rankings/vrs" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"id": "3dfa5b6a-6053-43f3-89c8-6426d46eb92a",
"teamId": "cs2-team-9565",
"teamName": "Vitality",
"rank": 1,
"points": 1988,
"change": 0,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-9565",
"name": "Vitality",
"slug": "vitality",
"teamTag": "VITALITY",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
"countryName": "Europe",
"countryCode": null,
"region": "Europe",
"lastSyncedAt": "2026-10-26T22:47:07.809Z",
"lastVerified": "2026-10-26T22:47:07.809Z",
"confidence": "high",
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
},
"alsoRankedAt": null
},
{
"id": "bb6d4352-14ff-4982-ad97-28fb02d7e8fc",
"teamId": "cs2-team-4494",
"teamName": "MOUZ",
"rank": 2,
"points": 1941,
"change": 0,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-4494",
"name": "MOUZ",
"slug": "mouz",
"teamTag": "MOUZ",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0ad08abfc7542d74ca19505208967289.svg",
"countryName": "Europe",
"countryCode": null,
"region": "Europe",
"lastSyncedAt": "2026-10-26T22:47:00.942Z",
"lastVerified": "2026-10-26T22:47:00.942Z",
"confidence": "high"
},
"alsoRankedAt": null
}
],
"meta": {
"count": 2,
"total": 386,
"page": 1,
"limit": 2,
"ranking": "vrs",
"rankingDate": "2026-10-26",
"changeSince": "2026-10-19",
"syncedAt": "2026-10-26T22:02:01.323Z",
"availability": "available",
"totalPages": 193,
"hasNext": true,
"hasPrev": false
}
}Regional ranking
The latest ranking for one region, with each team's world and regional rank. `region`: `europe`, `americas`, `north-america`, `south-america`, `asia` or `oceania` (short forms `eu`, `am`, `na`, `sa`, `as` also work).
Query parameters
| Parameter | Type | Description |
|---|---|---|
| region (path)* | string | Region: europe, americas, north-america, south-america, asia, oceania. |
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
| source | string | Ranking to use: omit for Valve Regional Standings, or world for the world ranking filtered to this region. |
Example
curl "https://api.citoapi.com/api/v1/cs2/rankings/region/europe" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"id": "3dfa5b6a-6053-43f3-89c8-6426d46eb92a",
"teamId": "cs2-team-9565",
"teamName": "Vitality",
"rank": 1,
"points": 1988,
"change": null,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-9565",
"name": "Vitality",
"slug": "vitality",
"teamTag": "VITALITY",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
"countryName": "Europe",
"countryCode": null,
"region": "Europe",
"worldRanking": 2,
"lastSyncedAt": "2026-10-26T22:47:07.809Z",
"lastVerified": "2026-10-26T22:47:07.809Z",
"confidence": "high",
"vrsRanking": 1,
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
},
"regionalRank": 1
},
{
"id": "bb6d4352-14ff-4982-ad97-28fb02d7e8fc",
"teamId": "cs2-team-4494",
"teamName": "MOUZ",
"rank": 2,
"points": 1941,
"change": null,
"region": "Europe",
"rankingDate": "2026-10-26T00:00:00.000Z",
"syncedAt": "2026-10-26T22:02:01.323Z",
"team": {
"id": "cs2-team-4494",
"name": "MOUZ",
"slug": "mouz",
"teamTag": "MOUZ",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0ad08abfc7542d74ca19505208967289.svg",
"countryName": "Europe",
"countryCode": null,
"region": "Europe",
"worldRanking": 4,
"lastSyncedAt": "2026-10-26T22:47:00.942Z",
"lastVerified": "2026-10-26T22:47:00.942Z",
"confidence": "high",
"vrsRanking": 2
},
"regionalRank": 2
}
],
"meta": {
"region": "europe",
"rankingDate": "2026-10-26",
"count": 2,
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Try the CS2 Rankings API
Run a real request with your key, then wire the same call into your app. The free plan includes 500 requests a month.
curl "https://api.citoapi.com/api/v1/cs2/rankings/vrs?limit=10" \
-H "x-api-key: YOUR_API_KEY"