CS2 Tournaments API
Tournaments and events (the two route families are equivalent): calendar, participants, matches, standings, brackets, results and event-level stats.
14 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, Rankings, Teams, Players, Stats & leaderboards, Skins, Transfers, Search & reference.
Live events
Tournaments being played now. Same response as `GET /api/v1/cs2/events/live`. 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. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/live" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_event",
"eventId": "cs2-event-8050",
"id": "cs2-event-8050",
"name": "PGL Masters Bucharest 2026",
"slug": "pgl-masters-bucharest-2026",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-24T00:00:00.000Z",
"endsAt": "2026-10-31T23:59:59.000Z",
"tier": "A",
"prestigeScore": 80,
"region": "Europe",
"isLan": true,
"location": "Bucharest, Romania",
"prizePool": 1250000,
"currency": "USD",
"format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3",
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/302d7de6941832dc49b87fa8f5d80a06.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:01.298Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9440",
"id": "cs2-event-9440",
"name": "NODWIN Clutch Series 13",
"slug": "nodwin-clutch-series-13",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-14T00:00:00.000Z",
"endsAt": "2026-10-27T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": null,
"isLan": true,
"location": "Europe (Online)",
"prizePool": 30000,
"currency": "USD",
"format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
"teamCount": 24,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7776c6beda12be7972311101e91a3e2.png",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:06.698Z",
"…": "3 more fields"
}
],
"meta": {
"count": 2,
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Upcoming events
Scheduled tournaments, soonest first. Same response as `GET /api/v1/cs2/events/upcoming`. 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. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/upcoming" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_event",
"eventId": "cs2-event-9257",
"id": "cs2-event-9257",
"name": "Stake Ranked Episode 5",
"slug": "stake-ranked-episode-5",
"status": "upcoming",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-27T00:00:00.000Z",
"endsAt": "2026-10-30T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": null,
"isLan": true,
"location": "Barcelona, Spain",
"prizePool": 100000,
"currency": "USD",
"format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21396af31d05530bf62f7baa70ee6f59.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21396af31d05530bf62f7baa70ee6f59.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3f5a15ad93840d52548767216761ea87.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:08.361Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9434",
"id": "cs2-event-9434",
"name": "RLG Tesla Cup 2026",
"slug": "rlg-tesla-cup-2026",
"status": "upcoming",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-27T00:00:00.000Z",
"endsAt": "2026-10-29T23:59:59.000Z",
"tier": "A",
"prestigeScore": 80,
"region": null,
"isLan": true,
"location": "Belgrade, Serbia",
"prizePool": 50000,
"currency": "USD",
"format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d58d2bec4ff445d15f0b87f8e672deef.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d58d2bec4ff445d15f0b87f8e672deef.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3729710e8fd933d905af70759ee7d59f.jpg",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:08.127Z",
"…": "3 more fields"
}
],
"meta": {
"count": 2,
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Recent events
Finished tournaments, newest first. Same response as `GET /api/v1/cs2/events/recent`. 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. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/recent" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_event",
"eventId": "cs2-event-9435",
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"tier": null,
"prestigeScore": null,
"region": null,
"isLan": true,
"location": "Shanghai, China",
"prizePool": 12000,
"currency": "USD",
"format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7607c7e255e35e4968c8bd0f07678b0.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-25T14:46:09.544Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9375",
"id": "cs2-event-9375",
"name": "ESL Challenger League Season 52 Europe Cup 9",
"slug": "esl-challenger-league-season-52-europe-cup-9",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-22T00:00:00.000Z",
"endsAt": "2026-10-23T23:59:59.000Z",
"tier": "A",
"prestigeScore": 80,
"region": "Europe",
"isLan": true,
"location": "Europe (Online)",
"prizePool": 7000,
"currency": "USD",
"format": "Playoffs: Single elimination Bo3 3rd place decider match Bo3",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/dd4ff2f86719e1f939d32b6e6624de21.jpg",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-24T06:14:30.687Z",
"…": "3 more fields"
}
],
"meta": {
"count": 2,
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Event calendar
Tournaments in a date range. Filter with `from` and `to`. Same response as `GET /api/v1/cs2/events/calendar`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| from | string | Start of the date range (ISO 8601, UTC). |
| limit | integer | Rows to return. Maximum 250; larger values are reduced to 250. |
| status | string | Filter by status. |
| to | string | End of the date range (ISO 8601, UTC). |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/calendar" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_tournament_calendar",
"dataAvailable": true,
"events": [
{
"entityType": "cs2_event",
"eventId": "cs2-event-9442",
"id": "cs2-event-9442",
"name": "CCT 2026 Europe Series 11",
"slug": "cct-2026-europe-series-11",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-13T00:00:00.000Z",
"endsAt": "2026-10-25T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": null,
"isLan": true,
"location": "Europe (Online)",
"prizePool": 25000,
"currency": "USD",
"format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
"teamCount": 24,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ac4495c84752b25a0971c9e8d2a3001e.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ac4495c84752b25a0971c9e8d2a3001e.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/84a93101c98246a52273c60574cefee6.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T06:14:26.455Z",
"…": "2 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9452",
"id": "cs2-event-9452",
"name": "CCT 2026 South America Series 7",
"slug": "cct-2026-south-america-series-7",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-13T00:00:00.000Z",
"endsAt": "2026-10-25T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": null,
"isLan": true,
"location": "South America (Online)",
"prizePool": 15000,
"currency": "USD",
"format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
"teamCount": 24,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f61e400b8ba8497484bcb762686a3755.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f61e400b8ba8497484bcb762686a3755.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/88d84244d614b700401e34ea87426b79.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T06:14:05.476Z",
"…": "2 more fields"
}
]
},
"meta": {
"count": 2,
"dataAvailable": true,
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Active events
Tournaments in progress or starting soon. Same response as `GET /api/v1/cs2/events/active`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| fields | string | Comma-separated list of fields to return. |
| includeUpcoming | string | Filter by includeUpcoming. |
| include_upcoming | string | Filter by include_upcoming. |
| limit | integer | Rows to return. Maximum 250; larger values are reduced to 250. |
| summary | boolean | true returns a summary instead of full rows. |
| upcomingLimit | string | Filter by upcomingLimit. |
| upcoming_limit | string | Filter by upcoming_limit. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/active" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_event",
"eventId": "cs2-event-9440",
"id": "cs2-event-9440",
"name": "NODWIN Clutch Series 13",
"slug": "nodwin-clutch-series-13",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-14T00:00:00.000Z",
"endsAt": "2026-10-27T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": null,
"isLan": true,
"location": "Europe (Online)",
"prizePool": 30000,
"currency": "USD",
"format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
"teamCount": 24,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7776c6beda12be7972311101e91a3e2.png",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:06.698Z",
"…": "5 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-8050",
"id": "cs2-event-8050",
"name": "PGL Masters Bucharest 2026",
"slug": "pgl-masters-bucharest-2026",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-24T00:00:00.000Z",
"endsAt": "2026-10-31T23:59:59.000Z",
"tier": "A",
"prestigeScore": 80,
"region": "Europe",
"isLan": true,
"location": "Bucharest, Romania",
"prizePool": 1250000,
"currency": "USD",
"format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3",
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/302d7de6941832dc49b87fa8f5d80a06.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:01.298Z",
"…": "5 more fields"
}
],
"meta": {
"count": 2,
"activeCount": 2,
"upcomingFillCount": 0,
"dataAvailable": true,
"sort": "prize_pool_desc,prestige_score_desc,starts_at_asc",
"statusScope": "active_only",
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}List events
Tournaments with filters for status and date. List rows are compact; fetch one event for its full structure and standings. Same response as `GET /api/v1/cs2/events`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| fields | string | Comma-separated list of fields to return. |
| 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. |
| summary | boolean | true returns a summary instead of full rows. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_event",
"eventId": "cs2-event-9417",
"id": "cs2-event-9417",
"name": "Esports World Cup 2028",
"slug": "esports-world-cup-2028",
"status": "upcoming",
"confirmedStatus": "source_listed",
"startsAt": "2028-07-14T00:00:00.000Z",
"endsAt": "2028-07-30T23:59:59.000Z",
"tier": null,
"prestigeScore": null,
"region": null,
"isLan": null,
"location": "Riyadh, Saudi Arabia",
"prizePool": null,
"currency": null,
"format": null,
"teamCount": null,
"logoUrl": null,
"imageUrl": null,
"bannerImageUrl": null,
"hasBracketStructure": false,
"standingsAvailable": false,
"lastSyncedAt": "2026-10-26T23:00:22.920Z",
"…": "12 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9191",
"id": "cs2-event-9191",
"name": "StarLadder StarSeries Season 22",
"slug": "starladder-starseries-season-22",
"status": "upcoming",
"confirmedStatus": "source_listed",
"startsAt": "2028-05-16T00:00:00.000Z",
"endsAt": "2028-05-21T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "Europe",
"isLan": true,
"location": null,
"prizePool": null,
"currency": "USD",
"format": null,
"teamCount": 22,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e41cca58363bb111170d38a8c053e424.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e41cca58363bb111170d38a8c053e424.webp",
"bannerImageUrl": null,
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-26T23:00:22.768Z",
"…": "12 more fields"
}
],
"meta": {
"page": 1,
"limit": 2,
"total": 1611,
"count": 2,
"totalPages": 806,
"hasNext": true,
"hasPrev": false
}
}Event matches
All matches of a tournament. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/matches`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/matches" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2399576",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"eventSlug": "macemedia-void-autumn-cup-2026",
"stageName": null,
"startsAt": "2026-10-20T03:00:00.000Z",
"endsAt": "2026-10-20T05:35:49.095Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-8840",
"team2Id": "cs2-team-13602",
"team1Name": "Lynn Vision",
"team2Name": "Morningstar",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-8840",
"vetoOrder": [
{
"map": "cache",
"raw": "Morningstar removed cache",
"order": 1,
"action": "ban",
"teamId": "cs2-team-13602",
"teamName": "Morningstar",
"mapName": "cache",
"mapNumber": null
},
{
"map": "mirage",
"raw": "Lynn Vision removed mirage",
"order": 2,
"action": "ban",
"teamId": "cs2-team-8840",
"teamName": "Lynn Vision",
"mapName": "mirage",
"mapNumber": null
}
],
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-26T22:44:02.159Z",
"lastVerified": "2026-10-26T22:44:02.159Z",
"confidence": "high",
"event": {
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"status": "completed",
"tier": null,
"region": null,
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"imageUrl": null,
"eventId": "cs2-event-9435",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"bannerImageUrl": null
},
"…": "19 more fields"
},
{
"entityType": "cs2_match",
"id": "cs2-match-2399577",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"eventSlug": "macemedia-void-autumn-cup-2026",
"stageName": null,
"startsAt": "2026-10-20T04:35:00.000Z",
"endsAt": "2026-10-20T04:47:40.866Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-11514",
"team2Id": "cs2-team-9958",
"team1Name": "Rare Atom",
"team2Name": "Alter Ego",
"team1Score": 1,
"team2Score": 0,
"winnerTeamId": "cs2-team-11514",
"vetoOrder": [],
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-26T22:44:02.709Z",
"lastVerified": "2026-10-26T22:44:02.709Z",
"confidence": "high",
"event": {
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"status": "completed",
"tier": null,
"region": null,
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"imageUrl": null,
"eventId": "cs2-event-9435",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"bannerImageUrl": null
},
"…": "19 more fields"
}
],
"meta": {
"count": 2,
"event": {
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026
…Event teams
Teams in a tournament. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/teams`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/teams" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_event_teams",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"dataAvailable": true,
"teams": [
{
"id": "cs2-team-9958",
"name": "Alter Ego",
"eventSeed": 132,
"eventPlacement": null,
"eventStatus": "completed",
"lastSyncedAt": "2026-10-25T14:46:09.817Z"
},
{
"id": "cs2-team-13602",
"name": "Morningstar",
"eventSeed": null,
"eventPlacement": null,
"eventStatus": "completed",
"lastSyncedAt": "2026-10-25T14:46:09.883Z"
}
]
},
"meta": {
"count": 8,
"participantCount": 8,
"matchTeamCount": 14,
"dataAvailable": true,
"limit": 8,
"total": 8,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Event participants
Teams in a tournament with their players. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/participants`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
| limit | integer | Rows to return. Maximum 250; larger values are reduced to 250. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/participants" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_event_participants",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"dataAvailable": true,
"teams": [
{
"eventId": "cs2-event-9435",
"teamId": "cs2-team-8840",
"teamName": "Lynn Vision",
"seed": 39,
"placement": null,
"status": "completed",
"lastSyncedAt": "2026-10-25T14:46:09.686Z"
},
{
"eventId": "cs2-event-9435",
"teamId": "cs2-team-12646",
"teamName": "Chinggis Warriors",
"seed": 65,
"placement": null,
"status": "completed",
"lastSyncedAt": "2026-10-25T14:46:09.720Z"
}
]
},
"meta": {
"count": 2,
"dataAvailable": true,
"limit": 2,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Event standings
Teams of a tournament with seed, final placement and prize, ordered by placement. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/standings`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/standings" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_event_standings",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"event": {
"entityType": "cs2_event",
"eventId": "cs2-event-9435",
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"tier": null,
"prestigeScore": null,
"region": null,
"isLan": true,
"location": "Shanghai, China",
"prizePool": 12000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 12000,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 5000,
"teamId": "cs2-team-8840",
"currency": "USD",
"teamName": "Lynn Vision",
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 5000
}
],
"format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7607c7e255e35e4968c8bd0f07678b0.webp",
"eventStructure": {
"other": [],
"teams": [
{
"id": "cs2-team-9958",
"name": "Alter Ego",
"slug": "alter-ego",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp"
},
{
"id": "cs2-team-12646",
"name": "Chinggis Warriors",
"slug": "chinggis-warriors",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp"
}
],
"playIn": [],
"mapPool": [
{
"key": "cache",
"name": "Cache",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c442564b5d271f85b71cc038389bd4ea.webp"
},
{
"key": "dust2",
"name": "Dust2",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/16948a6107149d6bce6ea2a0ace54d43.webp"
}
],
"brackets": [
{
"name": "Double Elimination Bracket",
"type": "doubleElimination8",
"rounds": [
"…"
],
"display": "Expanded",
"section": "bracket"
}
],
"groupStage": [],
"allBrackets": [
{
"name": "Double Elimination Bracket",
"type": "doubleElimination8",
"rounds": [
"…
…Event results
Final placements and prize money for a tournament. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/results`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/results" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2399589",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"eventSlug": "macemedia-void-autumn-cup-2026",
"stageName": null,
"startsAt": "2026-10-24T06:40:00.000Z",
"endsAt": "2026-10-24T09:58:50.825Z",
"bestOf": 5,
"status": "completed",
"team1Id": "cs2-team-8840",
"team2Id": "cs2-team-12646",
"team1Name": "Lynn Vision",
"team2Name": "Chinggis Warriors",
"team1Score": 3,
"team2Score": 0,
"winnerTeamId": "cs2-team-8840",
"vetoOrder": [
{
"map": "anubis",
"raw": "Chinggis Warriors removed anubis",
"order": 1,
"action": "ban",
"teamId": "cs2-team-12646",
"teamName": "Chinggis Warriors",
"mapName": "anubis",
"mapNumber": null
},
{
"map": "mirage",
"raw": "Lynn Vision removed mirage",
"order": 2,
"action": "ban",
"teamId": "cs2-team-8840",
"teamName": "Lynn Vision",
"mapName": "mirage",
"mapNumber": null
}
],
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-26T22:45:51.088Z",
"lastVerified": "2026-10-26T22:45:51.088Z",
"confidence": "high",
"event": {
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"status": "completed",
"tier": null,
"region": null,
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"imageUrl": null,
"eventId": "cs2-event-9435",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"bannerImageUrl": null
},
"…": "19 more fields"
},
{
"entityType": "cs2_match",
"id": "cs2-match-2399588",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"eventSlug": "macemedia-void-autumn-cup-2026",
"stageName": null,
"startsAt": "2026-10-24T03:00:00.000Z",
"endsAt": "2026-10-24T05:36:03.692Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-12646",
"team2Id": "cs2-team-11514",
"team1Name": "Chinggis Warriors",
"team2Name": "Rare Atom",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-12646",
"vetoOrder": [
{
"map": "nuke",
"raw": "Rare Atom removed nuke",
"order": 1,
"action": "ban",
"teamId": "cs2-team-11514",
"teamName": "Rare Atom",
"mapName": "nuke",
"mapNumber": null
},
{
"map": "anubis",
"raw": "Chinggis Warriors removed anubis",
"order": 2,
"action": "ban",
"teamId": "cs2-team-12646",
"teamName": "Chinggis Warriors",
"mapName": "anubis",
"mapNumber": null
}
],
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-26T22:45:50.394Z",
"lastVerified": "2026-10-26T22:45:50.394Z",
"confidence": "high",
"event": {
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
…Event stats
Top players and teams by stats within a tournament. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/stats`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/stats" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_event_stats",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"dataAvailable": true,
"lastSyncedAt": "2026-10-24T11:27:03.448Z",
"demoCoverage": {
"matchesIndexed": 14,
"demos": {
"total": 58,
"byStatus": {
"unknown": 12,
"parsed": 38,
"notAvailable": 8
}
}
},
"topPlayers": [
{
"playerId": "cs2-player-16768",
"playerName": "lan",
"teamId": "cs2-team-13983",
"teamName": "Vitalem Aerem",
"maps": 7,
"kills": 134,
"deaths": 92,
"assists": 42,
"kdDiff": 42,
"kdRatio": 1.4565,
"adr": 91.2,
"kast": 0.73,
"rating": 1.237142857142857,
"ratingProfile": {
"rating": 1.237142857142857,
"ratingVersion": "cito_rating_1",
"components": {
"killsPerMap": 19.143,
"adr": 91.2,
"kast": 0.73,
"killsPlusAssistsPerDeath": 1.913
},
"openingDuels": {
"openingKills": 0,
"openingDeaths": 0,
"successRate": null
},
"formula": "Cito Rating 1.0 per map: 0.30*KPR/0.683 + 0.25*(1-DPR)/0.305 + 0.25*ADR/74.1 + 0.15*KAST/0.716 + 0.05*APR/0.223 (per-…"
},
"lastSyncedAt": "2026-10-24T13:36:20.423Z"
},
{
"playerId": "cs2-player-18638",
"playerName": "SK0R",
"teamId": "cs2-team-12646",
"teamName": "Chinggis Warriors",
"maps": 14,
"kills": 232,
"deaths": 199,
"assists": 71,
"kdDiff": 33,
"kdRatio": 1.1658,
"adr": 94.51857142857143,
"kast": 0.7110142857142857,
"rating": 1.167142857142857,
"ratingProfile": {
"rating": 1.167142857142857,
"ratingVersion": "cito_rating_1",
"components": {
"killsPerMap": 16.571,
"adr": 94.51857142857143,
"kast": 0.7110142857142857,
"killsPlusAssistsPerDeath": 1.5226
},
"openingDuels": {
"openingKills": 0,
"openingDeaths": 0,
"successRate": null
},
"formula": "Cito Rating 1.0 per map: 0.30*KPR/0.683 + 0.25*(1-DPR)/0.305 + 0.25*ADR/74.1 + 0.15*KAST/0.716 + 0.05*APR/0.223 (per-…"
},
"lastSyncedAt": "2026-10-24T10:46:16.811Z"
}
],
"topWeapons": [
{
"scopeType": "event",
"scopeId": "cs2-event-9435",
"matchId": null,
"mapId": null,
"weapon": "AK-47",
"kills": 1467,
"headshots": 932,
"percent": 33.6005,
"demoCount": 0,
"confidence": "high",
"lastSyncedAt": "2026-10-24T11:27:03.448Z"
},
{
"scopeType": "event",
"scopeId": "cs2-event-9435",
"matchId": null,
"mapId": null,
"weapon": "M4A1-S",
"kills": 697,
"headshots": 332,
"percent": 15.9643,
"demoCount": 0,
"confidence": "high",
"lastSyncedAt": "2026-10-24T11:27:03.448Z"
}
]
},
"meta": {
"playerCount": 2,
"weaponCount": 12,
"dataAvailable": true,
"demoCoverage": {
"matchesIndexed": 14,
"demos": {
"total": 58,
"byStatus": {
"unknown": 12,
"parsed": 38,
"notAvailable":
…Event bracket
Bracket, group stage, play-in and Swiss structure of a tournament, each slot with its teams, scores and winner. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}/bracket`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/bracket" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_event_bracket",
"eventId": "cs2-event-9435",
"eventName": "MaceMedia VOID Autumn Cup 2026",
"dataAvailable": true,
"bracket": [
{
"name": "Double Elimination Bracket",
"type": "doubleElimination8",
"rounds": [
{
"key": "upperRound1",
"name": "Opening round",
"matches": [
"…"
],
"shortName": "Opening rd"
},
{
"key": "upperRound2",
"name": "Upper semi-finals",
"matches": [
"…"
],
"shortName": "U. semis"
}
],
"display": "Expanded",
"section": "bracket"
}
],
"groupStage": [],
"playIn": [],
"swiss": null,
"groupTables": null,
"otherBrackets": null,
"teams": [
{
"id": "cs2-team-9958",
"name": "Alter Ego",
"slug": "alter-ego",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp"
},
{
"id": "cs2-team-12646",
"name": "Chinggis Warriors",
"slug": "chinggis-warriors",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp"
}
],
"mapPool": [
{
"key": "cache",
"name": "Cache",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c442564b5d271f85b71cc038389bd4ea.webp"
},
{
"key": "dust2",
"name": "Dust2",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/16948a6107149d6bce6ea2a0ace54d43.webp"
}
],
"relatedEvents": [
{
"id": "cs2-event-9080",
"name": "MaceMedia VOID Spring Cup 2026",
"slug": "macemedia-void-spring-cup-2026",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/66faed4d2245cc7fe4e570da7f84224a.webp"
}
],
"completedMatchesFromStructure": [
{
"entityType": "cs2_match",
"id": "cs2-match-2399576",
"eventId": "cs2-event-9435",
"event": {
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"prizePool": 12000,
"currency": "USD",
"location": "Shanghai, China",
"format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
"teamCount": 8,
"standings": [
{
"…": "…"
},
{
"…": "…"
}
],
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"status": "completed",
"tier": null,
"prestigeScore": null,
"region":
…Event details
One tournament: dates, location, prize pool, tier, teams and format. Same response as `GET /api/v1/cs2/events/{eventIdOrSlug}`. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventIdOrSlug (path)* | string | Event id (cs2-event-8038) or slug. |
Example
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_event",
"eventId": "cs2-event-9435",
"id": "cs2-event-9435",
"name": "MaceMedia VOID Autumn Cup 2026",
"slug": "macemedia-void-autumn-cup-2026",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-20T00:00:00.000Z",
"endsAt": "2026-10-24T23:59:59.000Z",
"tier": null,
"prestigeScore": null,
"region": null,
"isLan": true,
"location": "Shanghai, China",
"prizePool": 12000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 12000,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 5000,
"teamId": "cs2-team-8840",
"currency": "USD",
"teamName": "Lynn Vision",
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 5000
}
],
"format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
"bannerImageUrl": null,
"eventStructure": {
"other": [],
"teams": [
{
"id": "cs2-team-9958",
"name": "Alter Ego",
"slug": "alter-ego",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp"
},
{
"id": "cs2-team-12646",
"name": "Chinggis Warriors",
"slug": "chinggis-warriors",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp"
}
],
"playIn": [],
"mapPool": [
{
"key": "cache",
"name": "Cache",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c442564b5d271f85b71cc038389bd4ea.webp"
},
{
"key": "dust2",
"name": "Dust2",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/16948a6107149d6bce6ea2a0ace54d43.webp"
}
],
"brackets": [
{
"name": "Double Elimination Bracket",
"type": "doubleElimination8",
"rounds": [
{
"…": "…"
},
{
"…": "…"
}
],
"display": "Expanded",
"section": "bracket"
}
],
"groupStage": [],
"allBrackets": [
{
"name": "Double Elimination Bracket",
"type": "doubleElimination8",
"rounds": [
{
"…": "…"
},
{
"…": "…"
}
],
"display": "Expanded",
"section": "bracket"
}
],
"groupTables": [],
"relatedEvents": [
{
"id": "cs2-event-9080",
"name": "MaceMedia VOID Spring Cup 2026"
…Try the CS2 Tournaments 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/events/upcoming?limit=5" \
-H "x-api-key: YOUR_API_KEY"