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, 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-8932",
"id": "cs2-event-8932",
"name": "Thunderpick World Championship 2026",
"slug": "thunderpick-world-championship-2026",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-14T00:00:00.000Z",
"endsAt": "2026-10-18T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": "International",
"isLan": true,
"location": "Malta",
"prizePool": 1000000,
"currency": "USD",
"format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/72d09c8b47e6a587345d31df90aabb0a.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/72d09c8b47e6a587345d31df90aabb0a.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ca4efb32a74416feba939918f7919aa8.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:43:01.895Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9223",
"id": "cs2-event-9223",
"name": "Stake Pulse Beat III",
"slug": "stake-pulse-beat-iii",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-12T00:00:00.000Z",
"endsAt": "2026-10-17T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "Europe",
"isLan": true,
"location": "Stockholm, Sweden",
"prizePool": 80000,
"currency": "USD",
"format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3 3rd place decider match Bo3",
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cc06bce6e2266d321e98b51ed97d659d.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cc06bce6e2266d321e98b51ed97d659d.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/5f78be6696399cd09249b02aaba00e2b.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:44:02.585Z",
"…": "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-9453",
"id": "cs2-event-9453",
"name": "CCT 2026 Challengers Europe Series 8",
"slug": "cct-2026-challengers-europe-series-8",
"status": "upcoming",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-17T00:00:00.000Z",
"endsAt": "2026-10-25T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": null,
"isLan": false,
"location": "Europe (Online)",
"prizePool": 5000,
"currency": "USD",
"format": "Playoffs: Double elimination Bo3",
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e1b3be6626728b04f86f24373d08534b.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e1b3be6626728b04f86f24373d08534b.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9916479abcc9e1bbf1bdd592d8a60ee0.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:40:06.278Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9454",
"id": "cs2-event-9454",
"name": "NSTLGA Emerald Cup 2026",
"slug": "nstlga-emerald-cup-2026",
"status": "upcoming",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-18T00:00:00.000Z",
"endsAt": "2026-10-18T23:59:59.000Z",
"tier": null,
"prestigeScore": null,
"region": null,
"isLan": false,
"location": "North America (Online)",
"prizePool": 2502,
"currency": "USD",
"format": "Playoffs: Single elimination Bo3",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/4a80c2eeef56a2002172786fab5394d6.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/4a80c2eeef56a2002172786fab5394d6.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3eb808f68a0248d7de9a8f2a9b780d19.webp",
"hasBracketStructure": true,
"standingsAvailable": false,
"lastSyncedAt": "2026-10-16T19:40:06.762Z",
"…": "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-9451",
"id": "cs2-event-9451",
"name": "PGL Bucharest 2027 Open Qualifier 2",
"slug": "pgl-bucharest-2027-open-qualifier-2",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-13T00:00:00.000Z",
"endsAt": "2026-10-14T23:59:59.000Z",
"tier": "C",
"prestigeScore": 30,
"region": null,
"isLan": true,
"location": "Europe (Online)",
"prizePool": null,
"currency": null,
"format": "Playoffs: Single elimination Bo1 - Quarter-finals Bo3 - Semi-finals Bo3 - Grand final Bo3",
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3d243df9e55b3252320526320ebfa51e.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3d243df9e55b3252320526320ebfa51e.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/85c65209bf71aa69cdb5b255e3a062a1.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-15T06:15:16.417Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9381",
"id": "cs2-event-9381",
"name": "ESL Challenger League Season 52 Oceania Cup 3",
"slug": "esl-challenger-league-season-52-oceania-cup-3",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-10T00:00:00.000Z",
"endsAt": "2026-10-14T23:59:59.000Z",
"tier": "A",
"prestigeScore": 80,
"region": "Oceania",
"isLan": true,
"location": "Oceania (Online)",
"prizePool": 2500,
"currency": "USD",
"format": "Playoffs: Double elimination Bo3",
"teamCount": 4,
"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-15T06:14:45.739Z",
"…": "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-9420",
"id": "cs2-event-9420",
"name": "CCT 2026 Europe Series 10",
"slug": "cct-2026-europe-series-10",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-09-28T00:00:00.000Z",
"endsAt": "2026-10-10T23: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-15T02:28:21.924Z",
"…": "2 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-8244",
"id": "cs2-event-8244",
"name": "ESL Pro League Season 24",
"slug": "esl-pro-league-season-24",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-03T00:00:00.000Z",
"endsAt": "2026-10-11T23:59:59.000Z",
"tier": "S",
"prestigeScore": 100,
"region": "Europe",
"isLan": true,
"location": "Katowice, Poland",
"prizePool": 1000000,
"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/6346557bea069c7738609f369a8bcce4.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/6346557bea069c7738609f369a8bcce4.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7d4dac65fb7e1e889dcedc3a6e2a6352.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T02:17:10.645Z",
"…": "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-9223",
"id": "cs2-event-9223",
"name": "Stake Pulse Beat III",
"slug": "stake-pulse-beat-iii",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-12T00:00:00.000Z",
"endsAt": "2026-10-17T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "Europe",
"isLan": true,
"location": "Stockholm, Sweden",
"prizePool": 80000,
"currency": "USD",
"format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3 3rd place decider match Bo3",
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cc06bce6e2266d321e98b51ed97d659d.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cc06bce6e2266d321e98b51ed97d659d.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/5f78be6696399cd09249b02aaba00e2b.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:44:02.585Z",
"…": "5 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-8932",
"id": "cs2-event-8932",
"name": "Thunderpick World Championship 2026",
"slug": "thunderpick-world-championship-2026",
"status": "live",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-14T00:00:00.000Z",
"endsAt": "2026-10-18T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": "International",
"isLan": true,
"location": "Malta",
"prizePool": 1000000,
"currency": "USD",
"format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/72d09c8b47e6a587345d31df90aabb0a.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/72d09c8b47e6a587345d31df90aabb0a.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ca4efb32a74416feba939918f7919aa8.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:43:01.895Z",
"…": "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-8300",
"id": "cs2-event-8300",
"name": "Major #2 2028",
"slug": "major-2-2028",
"status": "upcoming",
"confirmedStatus": "source_listed",
"startsAt": "2028-11-20T00:00:00.000Z",
"endsAt": "2028-12-10T23:59:59.000Z",
"tier": "S",
"prestigeScore": 100,
"region": "Europe",
"isLan": true,
"location": null,
"prizePool": null,
"currency": "USD",
"format": null,
"teamCount": 4,
"logoUrl": null,
"imageUrl": null,
"bannerImageUrl": null,
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:40:26.911Z",
"…": "12 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-8822",
"id": "cs2-event-8822",
"name": "PGL Event #8 2028",
"slug": "pgl-event-8-2028",
"status": "upcoming",
"confirmedStatus": "source_listed",
"startsAt": "2028-11-01T00:00:00.000Z",
"endsAt": "2028-11-13T23:59:59.000Z",
"tier": null,
"prestigeScore": null,
"region": "Europe",
"isLan": true,
"location": null,
"prizePool": null,
"currency": "USD",
"format": null,
"teamCount": 4,
"logoUrl": null,
"imageUrl": null,
"bannerImageUrl": null,
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-10-16T19:40:26.765Z",
"…": "12 more fields"
}
],
"meta": {
"page": 1,
"limit": 2,
"total": 1501,
"count": 2,
"totalPages": 751,
"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-2399209",
"eventId": "cs2-event-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-3",
"stageName": null,
"startsAt": "2026-10-08T02:38:15.000Z",
"endsAt": "2026-10-08T02:41:49.547Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-12554",
"team2Id": "cs2-team-13990",
"team1Name": "regain",
"team2Name": "New Legends",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-12554",
"vetoOrder": null,
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-16T02:19:14.155Z",
"lastVerified": "2026-10-16T02:19:14.155Z",
"confidence": "high",
"event": {
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"status": "completed",
"tier": "A",
"region": "North America",
"startsAt": "2026-10-07T00:00:00.000Z",
"endsAt": "2026-10-15T01:30:00.000Z",
"imageUrl": null,
"eventId": "cs2-event-9387",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"bannerImageUrl": null
},
"…": "17 more fields"
},
{
"entityType": "cs2_match",
"id": "cs2-match-2399208",
"eventId": "cs2-event-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-3",
"stageName": null,
"startsAt": "2026-10-08T02:38:33.000Z",
"endsAt": "2026-10-08T02:40:53.861Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13425",
"team2Id": "cs2-team-13855",
"team1Name": "Reign Above",
"team2Name": "Overtake Sector",
"team1Score": 0,
"team2Score": 2,
"winnerTeamId": "cs2-team-13855",
"vetoOrder": null,
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-16T02:19:04.049Z",
"lastVerified": "2026-10-16T02:19:04.049Z",
"confidence": "high",
"event": {
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"status": "completed",
"tier": "A",
"region": "North America",
"startsAt": "2026-10-07T00:00:00.000Z",
"endsAt": "2026-10-15T01:30:00.000Z",
"imageUrl": null,
"eventId": "cs2-event-9387",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"bannerImageUrl": null
},
"…": "17 more fields"
}
],
"meta": {
"count": 2,
"event": {
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"prizePool": 17500,
"currency": "USD",
"location": "North America (Online)",
"format": "Playoffs: Double elimination Bo3",
"teamCount": 15,
"standings": [
{
…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-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"dataAvailable": true,
"teams": [
{
"id": "cs2-team-11795",
"name": "Villainous",
"eventSeed": 198,
"eventPlacement": null,
"eventStatus": "completed",
"lastSyncedAt": "2026-10-16T01:45:20.239Z"
},
{
"id": "cs2-team-13665",
"name": "FarmVille",
"eventSeed": 188,
"eventPlacement": null,
"eventStatus": "completed",
"lastSyncedAt": "2026-10-16T01:45:20.172Z"
}
]
},
"meta": {
"count": 15,
"participantCount": 15,
"matchTeamCount": 28,
"dataAvailable": true,
"limit": 15,
"total": 15,
"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-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"dataAvailable": true,
"teams": [
{
"eventId": "cs2-event-9387",
"teamId": "cs2-team-13855",
"teamName": "Overtake Sector",
"seed": 140,
"placement": null,
"status": "completed",
"lastSyncedAt": "2026-10-16T01:45:20.014Z"
},
{
"eventId": "cs2-event-9387",
"teamId": "cs2-team-13728",
"teamName": "Desi Boyz",
"seed": 148,
"placement": null,
"status": "completed",
"lastSyncedAt": "2026-10-16T01:45:20.049Z"
}
]
},
"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-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"event": {
"entityType": "cs2_event",
"eventId": "cs2-event-9387",
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-07T00:00:00.000Z",
"endsAt": "2026-10-15T01:30:00.000Z",
"tier": "A",
"prestigeScore": 80,
"region": "North America",
"isLan": true,
"location": "North America (Online)",
"prizePool": 17500,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 17500,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 8000,
"teamId": "cs2-team-13855",
"currency": "USD",
"teamName": "Overtake Sector",
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 8000
}
],
"format": "Playoffs: Double elimination Bo3",
"teamCount": 15,
"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",
"eventStructure": {
"other": [],
"teams": [
{
"id": "cs2-team-13107",
"name": "Chicken Coop",
"slug": "chicken-coop",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a397ddda04f2d4c5e13414ba27d1f68a.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a397ddda04f2d4c5e13414ba27d1f68a.webp"
},
{
"id": "cs2-team-13574",
"name": "Club 333",
"slug": "club-333",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3044c1d39c711d18de8e4c02609cc7f0.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3044c1d39c711d18de8e4c02609cc7f0.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": null,
"rounds": [
"…"
],
"display": "Expanded",
"section": "bracket"
}
],
"groupStage": [],
"allBrackets": [
{
"name": "Double Elimination Bracket",
"type": null,
"round
…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-2399233",
"eventId": "cs2-event-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-3",
"stageName": null,
"startsAt": "2026-10-15T01:30:00.000Z",
"endsAt": "2026-10-15T05:02:50.581Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13107",
"team2Id": "cs2-team-13855",
"team1Name": "Chicken Coop",
"team2Name": "Overtake Sector",
"team1Score": 1,
"team2Score": 2,
"winnerTeamId": "cs2-team-13855",
"vetoOrder": null,
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-16T19:36:39.586Z",
"lastVerified": "2026-10-16T19:36:39.586Z",
"confidence": "high",
"event": {
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"status": "completed",
"tier": "A",
"region": "North America",
"startsAt": "2026-10-07T00:00:00.000Z",
"endsAt": "2026-10-15T01:30:00.000Z",
"imageUrl": null,
"eventId": "cs2-event-9387",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"bannerImageUrl": null
},
"…": "17 more fields"
},
{
"entityType": "cs2_match",
"id": "cs2-match-2399232",
"eventId": "cs2-event-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-3",
"stageName": null,
"startsAt": "2026-10-14T01:00:00.000Z",
"endsAt": "2026-10-14T02:43:06.330Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-12164",
"team2Id": "cs2-team-13855",
"team1Name": "Zomblers",
"team2Name": "Overtake Sector",
"team1Score": 0,
"team2Score": 2,
"winnerTeamId": "cs2-team-13855",
"vetoOrder": null,
"streamLinks": null,
"vodLinks": [],
"lastSyncedAt": "2026-10-16T19:16:56.638Z",
"lastVerified": "2026-10-16T19:16:56.638Z",
"confidence": "high",
"event": {
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"status": "completed",
"tier": "A",
"region": "North America",
"startsAt": "2026-10-07T00:00:00.000Z",
"endsAt": "2026-10-15T01:30:00.000Z",
"imageUrl": null,
"eventId": "cs2-event-9387",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"bannerImageUrl": null
},
"…": "17 more fields"
}
],
"meta": {
"count": 2,
"indexedCount": 2,
"eventStructureCount": 0,
"dataAvailable": true,
"event": {
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"prizePool": 17500,
"currency": "USD",
"location": "North America (Online)",
"format": "Pl
…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-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"dataAvailable": true,
"lastSyncedAt": "2026-10-15T06:27:02.475Z",
"demoCoverage": {
"matchesIndexed": 28,
"demos": {
"total": 112,
"byStatus": {
"unknown": 27,
"parsed": 80,
"notAvailable": 5
}
}
},
"topPlayers": [
{
"playerId": "cs2-player-20204",
"playerName": "BeaKie",
"teamId": "cs2-team-13665",
"teamName": "FarmVille",
"maps": 6,
"kills": 110,
"deaths": 72,
"assists": 32,
"kdDiff": 38,
"kdRatio": 1.5278,
"adr": 91.7,
"kast": 0.7831666666666667,
"rating": 1.275,
"ratingProfile": {
"rating": 1.275,
"ratingVersion": "cito_rating_1",
"components": {
"killsPerMap": 18.333,
"adr": 91.7,
"kast": 0.7831666666666667,
"killsPlusAssistsPerDeath": 1.9722
},
"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-15T23:14:48.874Z"
},
{
"playerId": "cs2-player-20211",
"playerName": "ayy",
"teamId": "cs2-team-13855",
"teamName": "Overtake Sector",
"maps": 2,
"kills": 33,
"deaths": 22,
"assists": 7,
"kdDiff": 11,
"kdRatio": 1.5,
"adr": 86.65,
"kast": 0.8755,
"rating": 1.245,
"ratingProfile": {
"rating": 1.245,
"ratingVersion": "cito_rating_1",
"components": {
"killsPerMap": 16.5,
"adr": 86.65,
"kast": 0.8755,
"killsPlusAssistsPerDeath": 1.8182
},
"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-09T16:08:15.187Z"
}
],
"topWeapons": [
{
"scopeType": "event",
"scopeId": "cs2-event-9387",
"matchId": null,
"mapId": null,
"weapon": "AK-47",
"kills": 3197,
"headshots": 1819,
"percent": 32.8369,
"demoCount": 0,
"confidence": "high",
"lastSyncedAt": "2026-10-15T06:27:02.475Z"
},
{
"scopeType": "event",
"scopeId": "cs2-event-9387",
"matchId": null,
"mapId": null,
"weapon": "M4A1-S",
"kills": 1429,
"headshots": 592,
"percent": 14.6775,
"demoCount": 0,
"confidence": "high",
"lastSyncedAt": "2026-10-15T06:27:02.475Z"
}
]
},
"meta": {
"playerCount": 2,
"weaponCount": 12,
"dataAvailable": true,
"demoCoverage": {
"matchesIndexed": 28,
"demos": {
"total": 112,
"byStatus": {
"unknown": 27,
"parsed": 80,
"notAvailable": 5
}
}
}
}
}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-9387",
"eventName": "ESL Challenger League Season 52 North America Cup 3",
"dataAvailable": true,
"bracket": [
{
"name": "Double Elimination Bracket",
"type": null,
"rounds": [
{
"key": "upperRound1",
"name": "Opening round",
"matches": [
"…"
],
"shortName": "Opening rd"
},
{
"key": "upperQuarterfinals",
"name": "Upper quarter-finals",
"matches": [
"…"
],
"shortName": "U. quarters"
}
],
"display": "Expanded",
"section": "bracket"
}
],
"groupStage": [],
"playIn": [],
"swiss": {
"source": "computed_from_event_matches",
"format": "swiss_16_teams_3_wins_advance_3_losses_eliminated",
"generatedAt": "2026-10-16T19:45:00.108Z",
"buckets": [
{
"label": "0:0",
"record": "0:0",
"tone": "start",
"matches": [
{
"…": "…"
},
{
"…": "…"
}
],
"teams": [],
"candidates": []
},
{
"label": "1:0",
"record": "1:0",
"tone": "middle",
"matches": [
{
"…": "…"
},
{
"…": "…"
}
],
"teams": [],
"candidates": []
}
]
},
"groupTables": null,
"otherBrackets": null,
"teams": [
{
"id": "cs2-team-13107",
"name": "Chicken Coop",
"slug": "chicken-coop",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a397ddda04f2d4c5e13414ba27d1f68a.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a397ddda04f2d4c5e13414ba27d1f68a.webp"
},
{
"id": "cs2-team-13574",
"name": "Club 333",
"slug": "club-333",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3044c1d39c711d18de8e4c02609cc7f0.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3044c1d39c711d18de8e4c02609cc7f0.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-9356",
"name": "ESL Challenger League Season 52 North America Cup 2",
"slug": "esl-challenger-league-season-52-north-america-cup-2",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/24d45383d3b1a23f41eeeacd0e533b0a.webp"
},
{
"id": "cs2-event-9388",
"name": "ESL Challenger League Season 52 North America Cup 4",
"slug": "esl-challenger-league-season-52
…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-9387",
"id": "cs2-event-9387",
"name": "ESL Challenger League Season 52 North America Cup 3",
"slug": "esl-challenger-league-season-52-north-america-cup-3",
"status": "completed",
"confirmedStatus": "source_detail",
"startsAt": "2026-10-07T00:00:00.000Z",
"endsAt": "2026-10-15T01:30:00.000Z",
"tier": "A",
"prestigeScore": 80,
"region": "North America",
"isLan": true,
"location": "North America (Online)",
"prizePool": 17500,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 17500,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 8000,
"teamId": "cs2-team-13855",
"currency": "USD",
"teamName": "Overtake Sector",
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 8000
}
],
"format": "Playoffs: Double elimination Bo3",
"teamCount": 15,
"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": null,
"eventStructure": {
"other": [],
"teams": [
{
"id": "cs2-team-13107",
"name": "Chicken Coop",
"slug": "chicken-coop",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a397ddda04f2d4c5e13414ba27d1f68a.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a397ddda04f2d4c5e13414ba27d1f68a.webp"
},
{
"id": "cs2-team-13574",
"name": "Club 333",
"slug": "club-333",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3044c1d39c711d18de8e4c02609cc7f0.webp",
"ranking": null,
"placeholder": false,
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3044c1d39c711d18de8e4c02609cc7f0.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": null,
"rounds": [
{
"…": "…"
},
{
"…": "…"
}
],
"display": "Expanded",
"section": "bracket"
}
],
"groupStage": [],
"allBrackets": [
{
"name": "Double Elimination Bracket",
"type": null,
"rounds": [
{
"…": "…"
},
{
"…": "…"
}
],
"display": "Expanded",
"section": "bracket"
}
],
"groupTables": [],
"relatedEvents": [
{
"id": "cs2-event-9356",
"name": "ESL Challenger League Season
…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"