Docs/CS2 API/CS2 Tournaments API

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

GET/api/v1/cs2/tournaments/live
GET/api/v1/cs2/events/live

Tournaments being played now. Same response as `GET /api/v1/cs2/events/live`. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
limitintegerRows to return. Maximum 100; larger values are reduced to 100.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/live" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/upcoming
GET/api/v1/cs2/events/upcoming

Scheduled tournaments, soonest first. Same response as `GET /api/v1/cs2/events/upcoming`. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
limitintegerRows to return. Maximum 100; larger values are reduced to 100.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/upcoming" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/recent
GET/api/v1/cs2/events/recent

Finished tournaments, newest first. Same response as `GET /api/v1/cs2/events/recent`. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
limitintegerRows to return. Maximum 100; larger values are reduced to 100.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/recent" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/calendar
GET/api/v1/cs2/events/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

ParameterTypeDescription
fromstringStart of the date range (ISO 8601, UTC).
limitintegerRows to return. Maximum 250; larger values are reduced to 250.
statusstringFilter by status.
tostringEnd of the date range (ISO 8601, UTC).

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/calendar" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/active
GET/api/v1/cs2/events/active

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

ParameterTypeDescription
fieldsstringComma-separated list of fields to return.
includeUpcomingstringFilter by includeUpcoming.
include_upcomingstringFilter by include_upcoming.
limitintegerRows to return. Maximum 250; larger values are reduced to 250.
summarybooleantrue returns a summary instead of full rows.
upcomingLimitstringFilter by upcomingLimit.
upcoming_limitstringFilter by upcoming_limit.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/active" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments
GET/api/v1/cs2/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

ParameterTypeDescription
fieldsstringComma-separated list of fields to return.
limitintegerRows to return. Maximum 100; larger values are reduced to 100.
offsetintegerRows to skip, for paging.
pageintegerPage number, starting at 1.
summarybooleantrue returns a summary instead of full rows.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/matches
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.
limitintegerRows to return. Maximum 200; larger values are reduced to 200.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/matches" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/teams
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/teams" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/participants
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.
limitintegerRows to return. Maximum 250; larger values are reduced to 250.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/participants" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/standings
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/standings" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/results
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.
limitintegerRows to return. Maximum 200; larger values are reduced to 200.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/results" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/stats
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.
limitintegerRows to return. Maximum 200; larger values are reduced to 200.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/stats" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}/bracket
GET/api/v1/cs2/events/{eventIdOrSlug}/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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG/bracket" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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

GET/api/v1/cs2/tournaments/{eventIdOrSlug}
GET/api/v1/cs2/events/{eventIdOrSlug}

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

ParameterTypeDescription
eventIdOrSlug (path)*stringEvent id (cs2-event-8038) or slug.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/tournaments/EVENT_ID_OR_SLUG" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "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.

bash
curl "https://api.citoapi.com/api/v1/cs2/events/upcoming?limit=5" \
  -H "x-api-key: YOUR_API_KEY"