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, Player props, 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-8050",
      "id": "cs2-event-8050",
      "name": "PGL Masters Bucharest 2026",
      "slug": "pgl-masters-bucharest-2026",
      "status": "live",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-24T00:00:00.000Z",
      "endsAt": "2026-10-31T23:59:59.000Z",
      "tier": "A",
      "prestigeScore": 80,
      "region": "Europe",
      "isLan": true,
      "location": "Bucharest, Romania",
      "prizePool": 1250000,
      "currency": "USD",
      "format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3",
      "teamCount": 16,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/302d7de6941832dc49b87fa8f5d80a06.webp",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:01.298Z",
      "…": "3 more fields"
    },
    {
      "entityType": "cs2_event",
      "eventId": "cs2-event-9440",
      "id": "cs2-event-9440",
      "name": "NODWIN Clutch Series 13",
      "slug": "nodwin-clutch-series-13",
      "status": "live",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-14T00:00:00.000Z",
      "endsAt": "2026-10-27T23:59:59.000Z",
      "tier": "A",
      "prestigeScore": 75,
      "region": null,
      "isLan": true,
      "location": "Europe (Online)",
      "prizePool": 30000,
      "currency": "USD",
      "format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
      "teamCount": 24,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7776c6beda12be7972311101e91a3e2.png",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:06.698Z",
      "…": "3 more fields"
    }
  ],
  "meta": {
    "count": 2,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Upcoming events

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-9257",
      "id": "cs2-event-9257",
      "name": "Stake Ranked Episode 5",
      "slug": "stake-ranked-episode-5",
      "status": "upcoming",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-27T00:00:00.000Z",
      "endsAt": "2026-10-30T23:59:59.000Z",
      "tier": "B",
      "prestigeScore": 55,
      "region": null,
      "isLan": true,
      "location": "Barcelona, Spain",
      "prizePool": 100000,
      "currency": "USD",
      "format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
      "teamCount": 8,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21396af31d05530bf62f7baa70ee6f59.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21396af31d05530bf62f7baa70ee6f59.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3f5a15ad93840d52548767216761ea87.webp",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:08.361Z",
      "…": "3 more fields"
    },
    {
      "entityType": "cs2_event",
      "eventId": "cs2-event-9434",
      "id": "cs2-event-9434",
      "name": "RLG Tesla Cup 2026",
      "slug": "rlg-tesla-cup-2026",
      "status": "upcoming",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-27T00:00:00.000Z",
      "endsAt": "2026-10-29T23:59:59.000Z",
      "tier": "A",
      "prestigeScore": 80,
      "region": null,
      "isLan": true,
      "location": "Belgrade, Serbia",
      "prizePool": 50000,
      "currency": "USD",
      "format": "Group stage: GSL Bo3 / Playoffs: Single elimination Bo3",
      "teamCount": 8,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d58d2bec4ff445d15f0b87f8e672deef.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d58d2bec4ff445d15f0b87f8e672deef.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3729710e8fd933d905af70759ee7d59f.jpg",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:08.127Z",
      "…": "3 more fields"
    }
  ],
  "meta": {
    "count": 2,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Recent events

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-9435",
      "id": "cs2-event-9435",
      "name": "MaceMedia VOID Autumn Cup 2026",
      "slug": "macemedia-void-autumn-cup-2026",
      "status": "completed",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-20T00:00:00.000Z",
      "endsAt": "2026-10-24T23:59:59.000Z",
      "tier": null,
      "prestigeScore": null,
      "region": null,
      "isLan": true,
      "location": "Shanghai, China",
      "prizePool": 12000,
      "currency": "USD",
      "format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
      "teamCount": 8,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7607c7e255e35e4968c8bd0f07678b0.webp",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-25T14:46:09.544Z",
      "…": "3 more fields"
    },
    {
      "entityType": "cs2_event",
      "eventId": "cs2-event-9375",
      "id": "cs2-event-9375",
      "name": "ESL Challenger League Season 52 Europe Cup 9",
      "slug": "esl-challenger-league-season-52-europe-cup-9",
      "status": "completed",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-22T00:00:00.000Z",
      "endsAt": "2026-10-23T23:59:59.000Z",
      "tier": "A",
      "prestigeScore": 80,
      "region": "Europe",
      "isLan": true,
      "location": "Europe (Online)",
      "prizePool": 7000,
      "currency": "USD",
      "format": "Playoffs: Single elimination Bo3 3rd place decider match Bo3",
      "teamCount": 8,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/26b7ff4045ff125bfdc946944e25739d.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/dd4ff2f86719e1f939d32b6e6624de21.jpg",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-24T06:14:30.687Z",
      "…": "3 more fields"
    }
  ],
  "meta": {
    "count": 2,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Event calendar

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-9442",
        "id": "cs2-event-9442",
        "name": "CCT 2026 Europe Series 11",
        "slug": "cct-2026-europe-series-11",
        "status": "live",
        "confirmedStatus": "source_detail",
        "startsAt": "2026-10-13T00:00:00.000Z",
        "endsAt": "2026-10-25T23:59:59.000Z",
        "tier": "B",
        "prestigeScore": 55,
        "region": null,
        "isLan": true,
        "location": "Europe (Online)",
        "prizePool": 25000,
        "currency": "USD",
        "format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
        "teamCount": 24,
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ac4495c84752b25a0971c9e8d2a3001e.webp",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/ac4495c84752b25a0971c9e8d2a3001e.webp",
        "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/84a93101c98246a52273c60574cefee6.webp",
        "hasBracketStructure": true,
        "standingsAvailable": true,
        "lastSyncedAt": "2026-10-26T06:14:26.455Z",
        "…": "2 more fields"
      },
      {
        "entityType": "cs2_event",
        "eventId": "cs2-event-9452",
        "id": "cs2-event-9452",
        "name": "CCT 2026 South America Series 7",
        "slug": "cct-2026-south-america-series-7",
        "status": "live",
        "confirmedStatus": "source_detail",
        "startsAt": "2026-10-13T00:00:00.000Z",
        "endsAt": "2026-10-25T23:59:59.000Z",
        "tier": "B",
        "prestigeScore": 55,
        "region": null,
        "isLan": true,
        "location": "South America (Online)",
        "prizePool": 15000,
        "currency": "USD",
        "format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
        "teamCount": 24,
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f61e400b8ba8497484bcb762686a3755.webp",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f61e400b8ba8497484bcb762686a3755.webp",
        "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/88d84244d614b700401e34ea87426b79.webp",
        "hasBracketStructure": true,
        "standingsAvailable": true,
        "lastSyncedAt": "2026-10-26T06:14:05.476Z",
        "…": "2 more fields"
      }
    ]
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Active events

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-9440",
      "id": "cs2-event-9440",
      "name": "NODWIN Clutch Series 13",
      "slug": "nodwin-clutch-series-13",
      "status": "live",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-14T00:00:00.000Z",
      "endsAt": "2026-10-27T23:59:59.000Z",
      "tier": "A",
      "prestigeScore": 75,
      "region": null,
      "isLan": true,
      "location": "Europe (Online)",
      "prizePool": 30000,
      "currency": "USD",
      "format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - 8 teams are invited directly to the Round of 16",
      "teamCount": 24,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/1dea43556c8df0010c360ba1f015cfcc.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7776c6beda12be7972311101e91a3e2.png",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:06.698Z",
      "…": "5 more fields"
    },
    {
      "entityType": "cs2_event",
      "eventId": "cs2-event-8050",
      "id": "cs2-event-8050",
      "name": "PGL Masters Bucharest 2026",
      "slug": "pgl-masters-bucharest-2026",
      "status": "live",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-24T00:00:00.000Z",
      "endsAt": "2026-10-31T23:59:59.000Z",
      "tier": "A",
      "prestigeScore": 80,
      "region": "Europe",
      "isLan": true,
      "location": "Bucharest, Romania",
      "prizePool": 1250000,
      "currency": "USD",
      "format": "Group stage: Swiss Bo3 / Playoffs: Single elimination Bo3 - Grand final Bo5 3rd place decider match Bo3",
      "teamCount": 16,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/856742d130d33845a6bc550723b76ede.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/302d7de6941832dc49b87fa8f5d80a06.webp",
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:01.298Z",
      "…": "5 more fields"
    }
  ],
  "meta": {
    "count": 2,
    "activeCount": 2,
    "upcomingFillCount": 0,
    "dataAvailable": true,
    "sort": "prize_pool_desc,prestige_score_desc,starts_at_asc",
    "statusScope": "active_only",
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

List events

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-9417",
      "id": "cs2-event-9417",
      "name": "Esports World Cup 2028",
      "slug": "esports-world-cup-2028",
      "status": "upcoming",
      "confirmedStatus": "source_listed",
      "startsAt": "2028-07-14T00:00:00.000Z",
      "endsAt": "2028-07-30T23:59:59.000Z",
      "tier": null,
      "prestigeScore": null,
      "region": null,
      "isLan": null,
      "location": "Riyadh, Saudi Arabia",
      "prizePool": null,
      "currency": null,
      "format": null,
      "teamCount": null,
      "logoUrl": null,
      "imageUrl": null,
      "bannerImageUrl": null,
      "hasBracketStructure": false,
      "standingsAvailable": false,
      "lastSyncedAt": "2026-10-26T23:00:22.920Z",
      "…": "12 more fields"
    },
    {
      "entityType": "cs2_event",
      "eventId": "cs2-event-9191",
      "id": "cs2-event-9191",
      "name": "StarLadder StarSeries Season 22",
      "slug": "starladder-starseries-season-22",
      "status": "upcoming",
      "confirmedStatus": "source_listed",
      "startsAt": "2028-05-16T00:00:00.000Z",
      "endsAt": "2028-05-21T23:59:59.000Z",
      "tier": "B",
      "prestigeScore": 55,
      "region": "Europe",
      "isLan": true,
      "location": null,
      "prizePool": null,
      "currency": "USD",
      "format": null,
      "teamCount": 22,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e41cca58363bb111170d38a8c053e424.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e41cca58363bb111170d38a8c053e424.webp",
      "bannerImageUrl": null,
      "hasBracketStructure": true,
      "standingsAvailable": true,
      "lastSyncedAt": "2026-10-26T23:00:22.768Z",
      "…": "12 more fields"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 2,
    "total": 1611,
    "count": 2,
    "totalPages": 806,
    "hasNext": true,
    "hasPrev": false
  }
}

Event matches

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-2399576",
      "eventId": "cs2-event-9435",
      "eventName": "MaceMedia VOID Autumn Cup 2026",
      "eventSlug": "macemedia-void-autumn-cup-2026",
      "stageName": null,
      "startsAt": "2026-10-20T03:00:00.000Z",
      "endsAt": "2026-10-20T05:35:49.095Z",
      "bestOf": 3,
      "status": "completed",
      "team1Id": "cs2-team-8840",
      "team2Id": "cs2-team-13602",
      "team1Name": "Lynn Vision",
      "team2Name": "Morningstar",
      "team1Score": 2,
      "team2Score": 0,
      "winnerTeamId": "cs2-team-8840",
      "vetoOrder": [
        {
          "map": "cache",
          "raw": "Morningstar removed cache",
          "order": 1,
          "action": "ban",
          "teamId": "cs2-team-13602",
          "teamName": "Morningstar",
          "mapName": "cache",
          "mapNumber": null
        },
        {
          "map": "mirage",
          "raw": "Lynn Vision removed mirage",
          "order": 2,
          "action": "ban",
          "teamId": "cs2-team-8840",
          "teamName": "Lynn Vision",
          "mapName": "mirage",
          "mapNumber": null
        }
      ],
      "streamLinks": null,
      "vodLinks": [],
      "lastSyncedAt": "2026-10-26T22:44:02.159Z",
      "lastVerified": "2026-10-26T22:44:02.159Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-9435",
        "name": "MaceMedia VOID Autumn Cup 2026",
        "slug": "macemedia-void-autumn-cup-2026",
        "status": "completed",
        "tier": null,
        "region": null,
        "startsAt": "2026-10-20T00:00:00.000Z",
        "endsAt": "2026-10-24T23:59:59.000Z",
        "imageUrl": null,
        "eventId": "cs2-event-9435",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
        "bannerImageUrl": null
      },
      "…": "19 more fields"
    },
    {
      "entityType": "cs2_match",
      "id": "cs2-match-2399577",
      "eventId": "cs2-event-9435",
      "eventName": "MaceMedia VOID Autumn Cup 2026",
      "eventSlug": "macemedia-void-autumn-cup-2026",
      "stageName": null,
      "startsAt": "2026-10-20T04:35:00.000Z",
      "endsAt": "2026-10-20T04:47:40.866Z",
      "bestOf": 3,
      "status": "completed",
      "team1Id": "cs2-team-11514",
      "team2Id": "cs2-team-9958",
      "team1Name": "Rare Atom",
      "team2Name": "Alter Ego",
      "team1Score": 1,
      "team2Score": 0,
      "winnerTeamId": "cs2-team-11514",
      "vetoOrder": [],
      "streamLinks": null,
      "vodLinks": [],
      "lastSyncedAt": "2026-10-26T22:44:02.709Z",
      "lastVerified": "2026-10-26T22:44:02.709Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-9435",
        "name": "MaceMedia VOID Autumn Cup 2026",
        "slug": "macemedia-void-autumn-cup-2026",
        "status": "completed",
        "tier": null,
        "region": null,
        "startsAt": "2026-10-20T00:00:00.000Z",
        "endsAt": "2026-10-24T23:59:59.000Z",
        "imageUrl": null,
        "eventId": "cs2-event-9435",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
        "bannerImageUrl": null
      },
      "…": "19 more fields"
    }
  ],
  "meta": {
    "count": 2,
    "event": {
      "id": "cs2-event-9435",
      "name": "MaceMedia VOID Autumn Cup 2026",
      "slug": "macemedia-void-autumn-cup-2026
…

Event teams

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-9435",
    "eventName": "MaceMedia VOID Autumn Cup 2026",
    "dataAvailable": true,
    "teams": [
      {
        "id": "cs2-team-9958",
        "name": "Alter Ego",
        "eventSeed": 132,
        "eventPlacement": null,
        "eventStatus": "completed",
        "lastSyncedAt": "2026-10-25T14:46:09.817Z"
      },
      {
        "id": "cs2-team-13602",
        "name": "Morningstar",
        "eventSeed": null,
        "eventPlacement": null,
        "eventStatus": "completed",
        "lastSyncedAt": "2026-10-25T14:46:09.883Z"
      }
    ]
  },
  "meta": {
    "count": 8,
    "participantCount": 8,
    "matchTeamCount": 14,
    "dataAvailable": true,
    "limit": 8,
    "total": 8,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Event participants

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-9435",
    "eventName": "MaceMedia VOID Autumn Cup 2026",
    "dataAvailable": true,
    "teams": [
      {
        "eventId": "cs2-event-9435",
        "teamId": "cs2-team-8840",
        "teamName": "Lynn Vision",
        "seed": 39,
        "placement": null,
        "status": "completed",
        "lastSyncedAt": "2026-10-25T14:46:09.686Z"
      },
      {
        "eventId": "cs2-event-9435",
        "teamId": "cs2-team-12646",
        "teamName": "Chinggis Warriors",
        "seed": 65,
        "placement": null,
        "status": "completed",
        "lastSyncedAt": "2026-10-25T14:46:09.720Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Event standings

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-9435",
    "eventName": "MaceMedia VOID Autumn Cup 2026",
    "event": {
      "entityType": "cs2_event",
      "eventId": "cs2-event-9435",
      "id": "cs2-event-9435",
      "name": "MaceMedia VOID Autumn Cup 2026",
      "slug": "macemedia-void-autumn-cup-2026",
      "status": "completed",
      "confirmedStatus": "source_detail",
      "startsAt": "2026-10-20T00:00:00.000Z",
      "endsAt": "2026-10-24T23:59:59.000Z",
      "tier": null,
      "prestigeScore": null,
      "region": null,
      "isLan": true,
      "location": "Shanghai, China",
      "prizePool": 12000,
      "currency": "USD",
      "prizeDistribution": [
        {
          "label": "Total prize pool",
          "amount": 12000,
          "percent": 100,
          "currency": "USD"
        },
        {
          "label": "1st",
          "amount": 5000,
          "teamId": "cs2-team-8840",
          "currency": "USD",
          "teamName": "Lynn Vision",
          "clubPrize": null,
          "placement": "1st",
          "spotPrize": null,
          "playerPrize": 5000
        }
      ],
      "format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
      "teamCount": 8,
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
      "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
      "bannerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/a7607c7e255e35e4968c8bd0f07678b0.webp",
      "eventStructure": {
        "other": [],
        "teams": [
          {
            "id": "cs2-team-9958",
            "name": "Alter Ego",
            "slug": "alter-ego",
            "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp",
            "ranking": null,
            "placeholder": false,
            "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp"
          },
          {
            "id": "cs2-team-12646",
            "name": "Chinggis Warriors",
            "slug": "chinggis-warriors",
            "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp",
            "ranking": null,
            "placeholder": false,
            "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp"
          }
        ],
        "playIn": [],
        "mapPool": [
          {
            "key": "cache",
            "name": "Cache",
            "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c442564b5d271f85b71cc038389bd4ea.webp"
          },
          {
            "key": "dust2",
            "name": "Dust2",
            "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/16948a6107149d6bce6ea2a0ace54d43.webp"
          }
        ],
        "brackets": [
          {
            "name": "Double Elimination Bracket",
            "type": "doubleElimination8",
            "rounds": [
              "…"
            ],
            "display": "Expanded",
            "section": "bracket"
          }
        ],
        "groupStage": [],
        "allBrackets": [
          {
            "name": "Double Elimination Bracket",
            "type": "doubleElimination8",
            "rounds": [
              "…
…

Event results

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-2399589",
      "eventId": "cs2-event-9435",
      "eventName": "MaceMedia VOID Autumn Cup 2026",
      "eventSlug": "macemedia-void-autumn-cup-2026",
      "stageName": null,
      "startsAt": "2026-10-24T06:40:00.000Z",
      "endsAt": "2026-10-24T09:58:50.825Z",
      "bestOf": 5,
      "status": "completed",
      "team1Id": "cs2-team-8840",
      "team2Id": "cs2-team-12646",
      "team1Name": "Lynn Vision",
      "team2Name": "Chinggis Warriors",
      "team1Score": 3,
      "team2Score": 0,
      "winnerTeamId": "cs2-team-8840",
      "vetoOrder": [
        {
          "map": "anubis",
          "raw": "Chinggis Warriors removed anubis",
          "order": 1,
          "action": "ban",
          "teamId": "cs2-team-12646",
          "teamName": "Chinggis Warriors",
          "mapName": "anubis",
          "mapNumber": null
        },
        {
          "map": "mirage",
          "raw": "Lynn Vision removed mirage",
          "order": 2,
          "action": "ban",
          "teamId": "cs2-team-8840",
          "teamName": "Lynn Vision",
          "mapName": "mirage",
          "mapNumber": null
        }
      ],
      "streamLinks": null,
      "vodLinks": [],
      "lastSyncedAt": "2026-10-26T22:45:51.088Z",
      "lastVerified": "2026-10-26T22:45:51.088Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-9435",
        "name": "MaceMedia VOID Autumn Cup 2026",
        "slug": "macemedia-void-autumn-cup-2026",
        "status": "completed",
        "tier": null,
        "region": null,
        "startsAt": "2026-10-20T00:00:00.000Z",
        "endsAt": "2026-10-24T23:59:59.000Z",
        "imageUrl": null,
        "eventId": "cs2-event-9435",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
        "bannerImageUrl": null
      },
      "…": "19 more fields"
    },
    {
      "entityType": "cs2_match",
      "id": "cs2-match-2399588",
      "eventId": "cs2-event-9435",
      "eventName": "MaceMedia VOID Autumn Cup 2026",
      "eventSlug": "macemedia-void-autumn-cup-2026",
      "stageName": null,
      "startsAt": "2026-10-24T03:00:00.000Z",
      "endsAt": "2026-10-24T05:36:03.692Z",
      "bestOf": 3,
      "status": "completed",
      "team1Id": "cs2-team-12646",
      "team2Id": "cs2-team-11514",
      "team1Name": "Chinggis Warriors",
      "team2Name": "Rare Atom",
      "team1Score": 2,
      "team2Score": 0,
      "winnerTeamId": "cs2-team-12646",
      "vetoOrder": [
        {
          "map": "nuke",
          "raw": "Rare Atom removed nuke",
          "order": 1,
          "action": "ban",
          "teamId": "cs2-team-11514",
          "teamName": "Rare Atom",
          "mapName": "nuke",
          "mapNumber": null
        },
        {
          "map": "anubis",
          "raw": "Chinggis Warriors removed anubis",
          "order": 2,
          "action": "ban",
          "teamId": "cs2-team-12646",
          "teamName": "Chinggis Warriors",
          "mapName": "anubis",
          "mapNumber": null
        }
      ],
      "streamLinks": null,
      "vodLinks": [],
      "lastSyncedAt": "2026-10-26T22:45:50.394Z",
      "lastVerified": "2026-10-26T22:45:50.394Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-9435",
        "name": "MaceMedia VOID Autumn Cup 2026",
        "slug": "macemedia-void-autumn-cup-2026",

…

Event stats

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-9435",
    "eventName": "MaceMedia VOID Autumn Cup 2026",
    "dataAvailable": true,
    "lastSyncedAt": "2026-10-24T11:27:03.448Z",
    "demoCoverage": {
      "matchesIndexed": 14,
      "demos": {
        "total": 58,
        "byStatus": {
          "unknown": 12,
          "parsed": 38,
          "notAvailable": 8
        }
      }
    },
    "topPlayers": [
      {
        "playerId": "cs2-player-16768",
        "playerName": "lan",
        "teamId": "cs2-team-13983",
        "teamName": "Vitalem Aerem",
        "maps": 7,
        "kills": 134,
        "deaths": 92,
        "assists": 42,
        "kdDiff": 42,
        "kdRatio": 1.4565,
        "adr": 91.2,
        "kast": 0.73,
        "rating": 1.237142857142857,
        "ratingProfile": {
          "rating": 1.237142857142857,
          "ratingVersion": "cito_rating_1",
          "components": {
            "killsPerMap": 19.143,
            "adr": 91.2,
            "kast": 0.73,
            "killsPlusAssistsPerDeath": 1.913
          },
          "openingDuels": {
            "openingKills": 0,
            "openingDeaths": 0,
            "successRate": null
          },
          "formula": "Cito Rating 1.0 per map: 0.30*KPR/0.683 + 0.25*(1-DPR)/0.305 + 0.25*ADR/74.1 + 0.15*KAST/0.716 + 0.05*APR/0.223 (per-…"
        },
        "lastSyncedAt": "2026-10-24T13:36:20.423Z"
      },
      {
        "playerId": "cs2-player-18638",
        "playerName": "SK0R",
        "teamId": "cs2-team-12646",
        "teamName": "Chinggis Warriors",
        "maps": 14,
        "kills": 232,
        "deaths": 199,
        "assists": 71,
        "kdDiff": 33,
        "kdRatio": 1.1658,
        "adr": 94.51857142857143,
        "kast": 0.7110142857142857,
        "rating": 1.167142857142857,
        "ratingProfile": {
          "rating": 1.167142857142857,
          "ratingVersion": "cito_rating_1",
          "components": {
            "killsPerMap": 16.571,
            "adr": 94.51857142857143,
            "kast": 0.7110142857142857,
            "killsPlusAssistsPerDeath": 1.5226
          },
          "openingDuels": {
            "openingKills": 0,
            "openingDeaths": 0,
            "successRate": null
          },
          "formula": "Cito Rating 1.0 per map: 0.30*KPR/0.683 + 0.25*(1-DPR)/0.305 + 0.25*ADR/74.1 + 0.15*KAST/0.716 + 0.05*APR/0.223 (per-…"
        },
        "lastSyncedAt": "2026-10-24T10:46:16.811Z"
      }
    ],
    "topWeapons": [
      {
        "scopeType": "event",
        "scopeId": "cs2-event-9435",
        "matchId": null,
        "mapId": null,
        "weapon": "AK-47",
        "kills": 1467,
        "headshots": 932,
        "percent": 33.6005,
        "demoCount": 0,
        "confidence": "high",
        "lastSyncedAt": "2026-10-24T11:27:03.448Z"
      },
      {
        "scopeType": "event",
        "scopeId": "cs2-event-9435",
        "matchId": null,
        "mapId": null,
        "weapon": "M4A1-S",
        "kills": 697,
        "headshots": 332,
        "percent": 15.9643,
        "demoCount": 0,
        "confidence": "high",
        "lastSyncedAt": "2026-10-24T11:27:03.448Z"
      }
    ]
  },
  "meta": {
    "playerCount": 2,
    "weaponCount": 12,
    "dataAvailable": true,
    "demoCoverage": {
      "matchesIndexed": 14,
      "demos": {
        "total": 58,
        "byStatus": {
          "unknown": 12,
          "parsed": 38,
          "notAvailable": 
…

Event bracket

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-9435",
    "eventName": "MaceMedia VOID Autumn Cup 2026",
    "dataAvailable": true,
    "bracket": [
      {
        "name": "Double Elimination Bracket",
        "type": "doubleElimination8",
        "rounds": [
          {
            "key": "upperRound1",
            "name": "Opening round",
            "matches": [
              "…"
            ],
            "shortName": "Opening rd"
          },
          {
            "key": "upperRound2",
            "name": "Upper semi-finals",
            "matches": [
              "…"
            ],
            "shortName": "U. semis"
          }
        ],
        "display": "Expanded",
        "section": "bracket"
      }
    ],
    "groupStage": [],
    "playIn": [],
    "swiss": null,
    "groupTables": null,
    "otherBrackets": null,
    "teams": [
      {
        "id": "cs2-team-9958",
        "name": "Alter Ego",
        "slug": "alter-ego",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp",
        "ranking": null,
        "placeholder": false,
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp"
      },
      {
        "id": "cs2-team-12646",
        "name": "Chinggis Warriors",
        "slug": "chinggis-warriors",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp",
        "ranking": null,
        "placeholder": false,
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp"
      }
    ],
    "mapPool": [
      {
        "key": "cache",
        "name": "Cache",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c442564b5d271f85b71cc038389bd4ea.webp"
      },
      {
        "key": "dust2",
        "name": "Dust2",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/16948a6107149d6bce6ea2a0ace54d43.webp"
      }
    ],
    "relatedEvents": [
      {
        "id": "cs2-event-9080",
        "name": "MaceMedia VOID Spring Cup 2026",
        "slug": "macemedia-void-spring-cup-2026",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/66faed4d2245cc7fe4e570da7f84224a.webp"
      }
    ],
    "completedMatchesFromStructure": [
      {
        "entityType": "cs2_match",
        "id": "cs2-match-2399576",
        "eventId": "cs2-event-9435",
        "event": {
          "id": "cs2-event-9435",
          "name": "MaceMedia VOID Autumn Cup 2026",
          "slug": "macemedia-void-autumn-cup-2026",
          "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
          "prizePool": 12000,
          "currency": "USD",
          "location": "Shanghai, China",
          "format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
          "teamCount": 8,
          "standings": [
            {
              "…": "…"
            },
            {
              "…": "…"
            }
          ],
          "startsAt": "2026-10-20T00:00:00.000Z",
          "endsAt": "2026-10-24T23:59:59.000Z",
          "status": "completed",
          "tier": null,
          "prestigeScore": null,
          "region":
…

Event details

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-9435",
    "id": "cs2-event-9435",
    "name": "MaceMedia VOID Autumn Cup 2026",
    "slug": "macemedia-void-autumn-cup-2026",
    "status": "completed",
    "confirmedStatus": "source_detail",
    "startsAt": "2026-10-20T00:00:00.000Z",
    "endsAt": "2026-10-24T23:59:59.000Z",
    "tier": null,
    "prestigeScore": null,
    "region": null,
    "isLan": true,
    "location": "Shanghai, China",
    "prizePool": 12000,
    "currency": "USD",
    "prizeDistribution": [
      {
        "label": "Total prize pool",
        "amount": 12000,
        "percent": 100,
        "currency": "USD"
      },
      {
        "label": "1st",
        "amount": 5000,
        "teamId": "cs2-team-8840",
        "currency": "USD",
        "teamName": "Lynn Vision",
        "clubPrize": null,
        "placement": "1st",
        "spotPrize": null,
        "playerPrize": 5000
      }
    ],
    "format": "Playoffs: Double elimination Bo3 - Grand final Bo5",
    "teamCount": 8,
    "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
    "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/74dfacac7e2f57c98d3ff835426dd1dd.webp",
    "bannerImageUrl": null,
    "eventStructure": {
      "other": [],
      "teams": [
        {
          "id": "cs2-team-9958",
          "name": "Alter Ego",
          "slug": "alter-ego",
          "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp",
          "ranking": null,
          "placeholder": false,
          "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/cfe4fa591513d63fd93baf5eae3be22f.webp"
        },
        {
          "id": "cs2-team-12646",
          "name": "Chinggis Warriors",
          "slug": "chinggis-warriors",
          "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp",
          "ranking": null,
          "placeholder": false,
          "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/60691e918910735e4e6b92bfbd5c6b2f.webp"
        }
      ],
      "playIn": [],
      "mapPool": [
        {
          "key": "cache",
          "name": "Cache",
          "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c442564b5d271f85b71cc038389bd4ea.webp"
        },
        {
          "key": "dust2",
          "name": "Dust2",
          "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/16948a6107149d6bce6ea2a0ace54d43.webp"
        }
      ],
      "brackets": [
        {
          "name": "Double Elimination Bracket",
          "type": "doubleElimination8",
          "rounds": [
            {
              "…": "…"
            },
            {
              "…": "…"
            }
          ],
          "display": "Expanded",
          "section": "bracket"
        }
      ],
      "groupStage": [],
      "allBrackets": [
        {
          "name": "Double Elimination Bracket",
          "type": "doubleElimination8",
          "rounds": [
            {
              "…": "…"
            },
            {
              "…": "…"
            }
          ],
          "display": "Expanded",
          "section": "bracket"
        }
      ],
      "groupTables": [],
      "relatedEvents": [
        {
          "id": "cs2-event-9080",
          "name": "MaceMedia VOID Spring Cup 2026"
…

Try the CS2 Tournaments API

Run a real request with your key, then wire the same call into your app. The free plan includes 500 requests a month.

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