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, 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-9266",
"id": "cs2-event-9266",
"name": "Logitech G Play Connect 2026",
"slug": "logitech-g-play-connect-2026",
"status": "live",
"confirmedStatus": "source_listed",
"startsAt": "2026-09-17T08:30:00.000Z",
"endsAt": "2026-09-23T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "Europe",
"isLan": true,
"location": null,
"prizePool": 100000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 100000,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 40000,
"teamId": null,
"currency": "USD",
"teamName": null,
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 40000
}
],
"format": "Group stage: Round-robin Bo1 / Playoffs: Single elimination Bo3 - Grand final Bo5",
"teamCount": 12,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3c695e1ca7dd6d43d2c4d3daf93e4618.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3c695e1ca7dd6d43d2c4d3daf93e4618.webp",
"bannerImageUrl": null,
"eventStructure": {
"other": [],
"teams": [],
"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": [],
"groupStage": [],
"allBrackets": [],
"relatedEvents": [
{
"id": "cs2-event-9267",
"name": "Logitech G Play Connect 2026 Closed Qualifier",
"slug": "logitech-g-play-connect-2026-closed-qualifier",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/91534393b3d18b80a2dfca7e1d12f596.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c2c31171918f0f4e8da616513d12d178.webp"
}
]
},
"hasBracketStructure": true,
"…": "6 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9222",
"id": "cs2-event-9222",
"name": "Stake Pulse Beat II",
"slug": "stake-pulse-beat-ii",
"status": "live",
"confirmedStatus": "source_listed",
"startsAt": "2026-09-21T10:00:00.000Z",
"endsAt": "2026-09-26T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "Europe",
"isLan": true,
"location": null,
"prizePool": 60000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 60000,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 20000,
"teamId": null,
"currency": "USD",
"teamName": null,
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 20000
}
…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-8302",
"id": "cs2-event-8302",
"name": "PGL Major Singapore 2026",
"slug": "pgl-major-singapore-2026",
"status": "upcoming",
"confirmedStatus": "source_listed",
"startsAt": "2026-12-13T00:00:00.000Z",
"endsAt": "2026-12-13T23:59:59.000Z",
"tier": "S",
"prestigeScore": 100,
"region": "Asia",
"isLan": true,
"location": "Singapore",
"prizePool": 1250000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 1250000,
"percent": 100,
"currency": "USD"
}
],
"format": null,
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9395bf632eb521bc32ed71ae89cf0d22.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9395bf632eb521bc32ed71ae89cf0d22.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/85c65209bf71aa69cdb5b255e3a062a1.webp",
"eventStructure": {
"other": [],
"teams": [],
"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": [],
"groupStage": [],
"allBrackets": [],
"relatedEvents": [
{
"id": "cs2-event-8301",
"name": "IEM Cologne Major 2026",
"slug": "iem-cologne-major-2026",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9395bf632eb521bc32ed71ae89cf0d22.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9981b4f7011470de58e32a195cd80cb0.webp"
},
{
"id": "cs2-event-9028",
"name": "IEM Cologne Major 2026 Stage 1",
"slug": "iem-cologne-major-2026-stage-1",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9395bf632eb521bc32ed71ae89cf0d22.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9981b4f7011470de58e32a195cd80cb0.webp"
}
]
},
"hasBracketStructure": true,
"…": "6 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-8050",
"id": "cs2-event-8050",
"name": "PGL Masters Bucharest 2026",
"slug": "pgl-masters-bucharest-2026",
"status": "upcoming",
"confirmedStatus": "source_listed",
"startsAt": "2026-10-31T00: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",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 1250000,
"percent": 100,
"currency": "USD"
},
{
"label": "Player Share",
"amount": 625000,
"percent": 50,
"currency": "USD"
}
…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-9405",
"id": "cs2-event-9405",
"name": "CCT 2026 Challengers South America Series 3",
"slug": "cct-2026-challengers-south-america-series-3",
"status": "completed",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-09-17T23:45:00.000Z",
"endsAt": "2026-09-21T01:16:22.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "South America",
"isLan": true,
"location": null,
"prizePool": 2500,
"currency": "USD",
"format": "Playoffs: Double elimination Bo3",
"teamCount": null,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7211f321d8786082be2e104946e5c0a9.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7211f321d8786082be2e104946e5c0a9.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/94643b0a8eb390b6b41cd3d1850aef12.webp",
"hasBracketStructure": true,
"standingsAvailable": false,
"lastSyncedAt": "2026-09-18T21:00:47.512Z",
"…": "3 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9034",
"id": "cs2-event-9034",
"name": "Liga Gamers Club 2026 Serie A February Cup",
"slug": "liga-gamers-club-2026-serie-a-february-cup",
"status": "completed",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-02-27T19:00:00.000Z",
"endsAt": "2026-09-20T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": "Europe",
"isLan": true,
"location": null,
"prizePool": 2000,
"currency": "USD",
"format": "Playoffs: Grand final Bo3",
"teamCount": 2,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3c16adb151dc0aeaf3d4fd611241f448.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3c16adb151dc0aeaf3d4fd611241f448.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e423ed2e72d478274c8ca9da4f420b1d.webp",
"hasBracketStructure": true,
"standingsAvailable": true,
"lastSyncedAt": "2026-09-20T00:50:07.733Z",
"…": "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-9390",
"id": "cs2-event-9390",
"name": "ESEA Intermediate Season 58 Oceania",
"slug": "esea-intermediate-season-58-oceania",
"status": "completed",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-09-03T07:30:00.000Z",
"endsAt": "2026-09-17T09:00:00.000Z",
"tier": null,
"prestigeScore": null,
"region": null,
"isLan": true,
"location": null,
"prizePool": null,
"currency": "USD",
"prizeDistribution": [
{
"label": "1st",
"amount": null,
"teamId": "cs2-team-13686",
"currency": "USD",
"teamName": "Abyssal",
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": null
},
{
"label": "2nd",
"amount": null,
"teamId": null,
"currency": "USD",
"teamName": null,
"clubPrize": null,
"placement": "2nd",
"spotPrize": null,
"playerPrize": null
}
],
"format": "Playoffs: Double elimination Bo3",
"teamCount": 8,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b3b6c675c0b486f6d1aad32e024f6640.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b3b6c675c0b486f6d1aad32e024f6640.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/10cea6fcaa71cda7f16863dab16cac31.jpg",
"eventStructure": {
"other": [],
"teams": [],
"playIn": [],
"mapPool": [
{
"…": "…"
},
{
"…": "…"
}
],
"brackets": [],
"groupStage": [],
"allBrackets": [],
"relatedEvents": [
{
"…": "…"
}
]
},
"hasBracketStructure": true,
"…": "5 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9345",
"id": "cs2-event-9345",
"name": "WINLINE MPKBK CIS LAN Season 7",
"slug": "winline-mpkbk-cis-lan-season-7",
"status": "completed",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-09-13T06:00:00.000Z",
"endsAt": "2026-09-16T23:59:59.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "CIS",
"isLan": true,
"location": null,
"prizePool": 40000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 40000,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 20000,
"teamId": "cs2-team-7969",
"currency": "USD",
"teamName": "Nemiga",
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 20000
}
],
"format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5",
"teamCount": 16,
"logoUrl": "https://api.c
…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-8266",
"id": "cs2-event-8266",
"name": "FISSURE Playground 3",
"slug": "fissure-playground-3",
"status": "completed",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-09-08T03:00:00.000Z",
"endsAt": "2026-09-13T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": "Asia",
"isLan": true,
"location": "Shenzhen, China",
"prizePool": 1000000,
"currency": "USD",
"prizeDistribution": null,
"format": null,
"teamCount": 16,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d9d4c3f2cd813bd882aba0867173d3d8.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d9d4c3f2cd813bd882aba0867173d3d8.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/4136fd9dafdb58d6d881db924e6fa42a.webp",
"eventStructure": null,
"hasBracketStructure": false,
"…": "8 more fields"
},
{
"entityType": "cs2_event",
"eventId": "cs2-event-9240",
"id": "cs2-event-9240",
"name": "Esports Nations Cup 2026",
"slug": "esports-nations-cup-2026",
"status": "upcoming",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-11-10T00:00:00.000Z",
"endsAt": "2026-11-15T23:59:59.000Z",
"tier": "A",
"prestigeScore": 75,
"region": null,
"isLan": true,
"location": null,
"prizePool": 1320000,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 1320000,
"percent": 100,
"currency": "USD"
},
{
"label": "1st",
"amount": 300000,
"teamId": null,
"currency": "USD",
"teamName": null,
"clubPrize": null,
"placement": "1st",
"spotPrize": null,
"playerPrize": 300000
}
],
"format": "Group stage: Round-robin Bo1 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3 Event d…",
"teamCount": 24,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0c2fb0ed12bab08f0f0cf7bea895b2d4.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0c2fb0ed12bab08f0f0cf7bea895b2d4.webp",
"bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/43105bff49c2aed223bf834eaac0682b.png",
"eventStructure": {
"other": [
{
"name": "3rd Place Decider Match",
"type": null,
"rounds": [
"…"
],
"display": "Collapsed",
"section": "other"
}
],
"teams": [],
"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": "Playoffs",
"type": null,
"rounds": [
"…"
],
"display": "Colla
…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-12-10T00: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-09-23T03:15:26.387Z",
"…": "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-13T00: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-09-23T03:15:26.259Z",
"…": "12 more fields"
}
],
"meta": {
"page": 1,
"limit": 2,
"total": 1308,
"count": 2,
"totalPages": 654,
"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-2398335",
"eventId": "cs2-event-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"eventSlug": "cct-2026-challengers-south-america-series-3",
"stageName": null,
"startsAt": "2026-09-17T23:45:00.000Z",
"endsAt": "2026-09-18T01:35:27.865Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13907",
"team2Id": "cs2-team-13978",
"team1Name": "RUSH",
"team2Name": "Sementes do Mal",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-13907",
"liveState": {
"teams": {
"team1Name": "RUSH",
"team2Name": "Sementes do Mal",
"ctTeamName": "RUSH",
"terroristTeamName": "Sementes do Mal"
},
"source": "live",
"status": "live",
"matchId": "cs2-match-2398335",
"roundEnds": [
{
"winner": "CT",
"eventId": "8c7dd19ad868b4e7839eeef70f496ac8",
"payload": {
"…": "…"
},
"winType": "CTs_Win",
"eventType": "RoundEnd",
"observedAt": "2026-09-18T01:21:07.634Z",
"terroristScore": 8,
"webhookEligible": true,
"counterTerroristScore": 13
},
{
"winner": "TERRORIST",
"eventId": "916676e20e999307d8105ff1f5d3ebeb",
"payload": {
"…": "…"
},
"winType": "Terrorists_Win",
"eventType": "RoundEnd",
"observedAt": "2026-09-18T01:21:07.634Z",
"terroristScore": 8,
"webhookEligible": true,
"counterTerroristScore": 12
}
],
"bombEvents": [
{
"source": "live",
"eventId": "1f29548ca0ceb17014c035e6ffed2740",
"payload": {
"…": "…"
},
"bombSite": "B",
"tPlayers": 2,
"ctPlayers": 0,
"eventType": "BombPlanted",
"observedAt": "2026-09-18T01:21:07.634Z",
"playerName": "coxinha",
"playerNick": "coxa",
"webhookEligible": true
},
{
"source": "live",
"eventId": "f3960568b0c249e7e68165d061323faa",
"payload": {
"…": "…"
},
"bombSite": "A",
"tPlayers": 1,
"ctPlayers": 1,
"eventType": "BombPlanted",
"observedAt": "2026-09-18T01:21:07.635Z",
"playerName": "Kaiserzy",
"playerNick": "Kaiserzy",
"webhookEligible": true
}
],
"capturedAt": "2026-09-18T01:21:07.639Z",
"currentMap": "de_mirage",
"team1Score": 13,
"team2Score": 8,
"bombPlanted": false,
"playerStats": [
{
"hp": 0,
"adr": 87.95238095238095,
"name": "terran",
"nick": "terran",
"side": "T",
"alive": false,
"kills": 17,
"money": 450,
"deaths": 16,
"helmet": false,
"kevlar": false,
"assists": 3,
"steamId": "1:0:227765279",
"hasDefuseKit": false,
"primaryWeapon": null
},
{
"hp": 0,
"adr": 79.3809
…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-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"dataAvailable": true,
"teams": [
{
"id": "cs2-team-13978",
"name": "Sementes do Mal",
"eventSeed": null,
"eventPlacement": null,
"eventStatus": "attending",
"lastSyncedAt": "2026-09-17T20:55:03.035Z"
},
{
"id": "cs2-team-13811",
"name": "QUINTESSÊNCIA",
"slug": "quintessncia",
"teamTag": "QUINTESS",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b83bfcf22f50f55d9a7b96441358a4e0.webp",
"countryName": "Brazil",
"countryCode": "BR",
"region": "Americas",
"worldRanking": 132,
"lastSyncedAt": "2026-09-23T03:09:20.146Z",
"lastVerified": "2026-09-23T03:09:20.146Z",
"confidence": "high"
}
]
},
"meta": {
"count": 7,
"participantCount": 4,
"matchTeamCount": 8,
"dataAvailable": true,
"limit": 7,
"total": 7,
"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-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"dataAvailable": true,
"teams": [
{
"eventId": "cs2-event-9405",
"teamId": "cs2-team-13907",
"teamName": "RUSH",
"seed": null,
"placement": null,
"status": "attending",
"lastSyncedAt": "2026-09-17T20:55:03.000Z"
},
{
"eventId": "cs2-event-9405",
"teamId": "cs2-team-13978",
"teamName": "Sementes do Mal",
"seed": null,
"placement": null,
"status": "attending",
"lastSyncedAt": "2026-09-17T20:55:03.035Z"
}
]
},
"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": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"dataQuality": "unavailable",
"message": "Event standings have not been indexed for this CS2 event yet."
},
"meta": {
"count": 0,
"dataAvailable": false,
"source": null,
"limit": 0,
"total": 0,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}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-2398341",
"eventId": "cs2-event-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"eventSlug": "cct-2026-challengers-south-america-series-3",
"stageName": null,
"startsAt": "2026-09-21T01:16:22.000Z",
"endsAt": null,
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-14008",
"team2Id": "cs2-team-13811",
"team1Name": "your end",
"team2Name": "QUINTESSÊNCIA",
"team1Score": 0,
"team2Score": 2,
"winnerTeamId": "cs2-team-13811",
"liveState": {
"status": "completed",
"team1Score": 0,
"team2Score": 2,
"winnerTeamId": "cs2-team-13811"
},
"vetoOrder": [
{
"map": "anubis",
"order": 1,
"action": "ban",
"teamId": "cs2-team-13811",
"teamName": "QUINTESSÊNCIA"
},
{
"map": null,
"order": 2,
"action": "ban",
"teamId": "cs2-team-14008",
"teamName": "your end"
}
],
"streamLinks": [
{
"url": null,
"label": null,
"language": null,
"platform": "twitch"
},
{
"url": null,
"label": null,
"language": null,
"platform": "youtube"
}
],
"vodLinks": [],
"lastSyncedAt": "2026-09-23T03:06:59.572Z",
"lastVerified": "2026-09-23T03:06:59.572Z",
"confidence": "high",
"…": "18 more fields"
},
{
"entityType": "cs2_match",
"id": "cs2-match-2398340",
"eventId": "cs2-event-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"eventSlug": "cct-2026-challengers-south-america-series-3",
"stageName": null,
"startsAt": "2026-09-20T22:19:43.000Z",
"endsAt": null,
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-11008",
"team2Id": "cs2-team-13811",
"team1Name": "RUSH",
"team2Name": "QUINTESSÊNCIA",
"team1Score": 0,
"team2Score": 2,
"winnerTeamId": "cs2-team-13811",
"liveState": {
"status": "completed",
"team1Score": 0,
"team2Score": 2,
"winnerTeamId": "cs2-team-13811"
},
"vetoOrder": [
{
"map": "nuke",
"order": 1,
"action": "ban",
"teamId": "cs2-team-13811",
"teamName": "QUINTESSÊNCIA"
},
{
"map": "anubis",
"order": 2,
"action": "ban",
"teamId": "cs2-team-13907",
"teamName": "RUSH"
}
],
"streamLinks": [
{
"url": null,
"label": null,
"language": null,
"platform": "twitch"
},
{
"url": null,
"label": null,
"language": null,
"platform": "youtube"
}
],
"vodLinks": [],
"lastSyncedAt": "2026-09-23T03:07:01.475Z",
"lastVerified": "2026-09-23T03:07:01.475Z",
"confidence": "high",
"…": "18 more fields"
}
],
"meta": {
"count": 2,
"indexedCount": 2,
"eventStructureCount": 0,
"dataAvailable": true,
"event": {
"id": "cs2-event-9405",
"name": "CCT 2026 Challengers South America Series 3",
"slug": "cct-2026-challengers-south-america-series-3",
…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-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"dataAvailable": true,
"lastSyncedAt": "2026-09-23T01:40:58.954Z",
"demoCoverage": {
"matchesIndexed": 8,
"demos": {
"total": 0,
"byStatus": {}
}
},
"topPlayers": [
{
"playerId": "cs2-player-24716",
"playerName": "cLd",
"teamId": "cs2-team-13907",
"teamName": "RUSH",
"maps": 2,
"kills": 34,
"deaths": 24,
"assists": 11,
"kdDiff": 10,
"kdRatio": 1.4167,
"adr": null,
"kast": null,
"rating": 1.525,
"rating3Profile": {
"rating3": null,
"rating3Available": false,
"subratings": {
"kills": 17,
"damage": null,
"survival": 1.875,
"kast": null,
"multiKills": null,
"roundSwing": null
},
"openingDuels": {
"openingKills": 0,
"openingDeaths": 0,
"successRate": null
},
"unavailableSubratings": [
"multi_kills",
"round_swing"
],
"rating2": 1.525
},
"source": "live",
"lastSyncedAt": "2026-09-23T01:40:58.954Z"
},
{
"playerId": "cs2-player-22423",
"playerName": "clon7",
"teamId": "cs2-team-13907",
"teamName": "RUSH",
"maps": 2,
"kills": 37,
"deaths": 25,
"assists": 8,
"kdDiff": 12,
"kdRatio": 1.48,
"adr": null,
"kast": null,
"rating": 1.505,
"rating3Profile": {
"rating3": null,
"rating3Available": false,
"subratings": {
"kills": 18.5,
"damage": null,
"survival": 1.8,
"kast": null,
"multiKills": null,
"roundSwing": null
},
"openingDuels": {
"openingKills": 0,
"openingDeaths": 0,
"successRate": null
},
"unavailableSubratings": [
"multi_kills",
"round_swing"
],
"rating2": 1.505
},
"source": "live",
"lastSyncedAt": "2026-09-23T01:40:58.954Z"
}
],
"topWeapons": []
},
"meta": {
"playerCount": 2,
"weaponCount": 0,
"dataAvailable": true,
"demoCoverage": {
"matchesIndexed": 8,
"demos": {
"total": 0,
"byStatus": {}
}
}
}
}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-9405",
"eventName": "CCT 2026 Challengers South America Series 3",
"dataAvailable": true,
"bracket": [],
"groupStage": [],
"playIn": [],
"swiss": null,
"teams": [],
"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-9313",
"name": "CCT 2026 Challengers South America Series 2",
"slug": "cct-2026-challengers-south-america-series-2",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f0cb5ad3c32d928caa3bb237032de831.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f0cb5ad3c32d928caa3bb237032de831.webp"
}
],
"completedMatchesFromStructure": [],
"lastVerified": "2026-09-18T21:00:04.293Z"
},
"meta": {
"dataAvailable": true,
"swissAvailable": false,
"completedStructureMatchCount": 0
}
}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-9405",
"id": "cs2-event-9405",
"name": "CCT 2026 Challengers South America Series 3",
"slug": "cct-2026-challengers-south-america-series-3",
"status": "completed",
"confirmedStatus": "detail_unavailable",
"startsAt": "2026-09-17T23:45:00.000Z",
"endsAt": "2026-09-21T01:16:22.000Z",
"tier": "B",
"prestigeScore": 55,
"region": "South America",
"isLan": true,
"location": null,
"prizePool": 2500,
"currency": "USD",
"prizeDistribution": [
{
"label": "Total prize pool",
"amount": 2500,
"percent": 100,
"currency": "USD"
}
],
"format": "Playoffs: Double elimination Bo3",
"teamCount": null,
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7211f321d8786082be2e104946e5c0a9.webp",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7211f321d8786082be2e104946e5c0a9.webp",
"bannerImageUrl": null,
"eventStructure": {
"other": [],
"teams": [],
"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": [],
"groupStage": [],
"allBrackets": [],
"relatedEvents": [
{
"id": "cs2-event-9313",
"name": "CCT 2026 Challengers South America Series 2",
"slug": "cct-2026-challengers-south-america-series-2",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f0cb5ad3c32d928caa3bb237032de831.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f0cb5ad3c32d928caa3bb237032de831.webp"
}
]
},
"hasBracketStructure": true,
"…": "15 more fields"
},
"meta": {}
}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"