Docs/CS2 API/CS2 Teams API

CS2 Teams API

Team profiles by id or slug ("vitality", "natus-vincere"): roster and roster history, results, upcoming matches, form, map stats and head-to-head.

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, Players, Events, Stats & leaderboards, Skins, Transfers, Search & reference.

Team transfers

GET/api/v1/cs2/teams/{teamIdOrSlug}/transfers

Players who joined or left a team.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
afterstringOnly rows after this time (ISO 8601).
beforestringOnly rows before this time (ISO 8601).
from_teamstringFilter by from_team.
include_computedstringFilter by include_computed.
include_undatedstringFilter by include_undated.
limitintegerRows to return. Maximum 200; larger values are reduced to 200.
pageintegerPage number, starting at 1.
playerstringPlayer id or slug.
player_idstringPlayer id or slug.
statusstringFilter by status.
teamstringTeam id or slug.
team_idstringTeam id or slug.
to_teamstringFilter by to_team.

Example

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

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_player_transfers",
    "dataAvailable": true,
    "transfers": [
      {
        "transferKey": "profile-history:2025-01-01:source-player-18221:source-team-9565:source-team-4494:joined",
        "playerId": "cs2-player-18221",
        "playerName": "Spinx",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/252b36c5681479de69062d9a8b90736e.webp",
        "fromTeamId": "cs2-team-9565",
        "fromTeamName": "Vitality",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
        "fromTeamAlternateLogoUrl": null,
        "fromTeamDarkUiLogoUrl": null,
        "fromTeamIsNoTeam": false,
        "toTeamId": "cs2-team-4494",
        "toTeamName": "MOUZ",
        "toTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0ad08abfc7542d74ca19505208967289.svg",
        "toTeamAlternateLogoUrl": null,
        "toTeamDarkUiLogoUrl": null,
        "toTeamIsNoTeam": false,
        "status": "joined",
        "role": null,
        "transferDate": "2025-01-01T12:00:00.000Z",
        "joinDate": "2025-01-01T12:00:00.000Z",
        "leaveDate": null,
        "detectedAt": "2026-07-10T00:54:23.160Z"
      },
      {
        "transferKey": "profile-history:2025-01-01:source-player-11816:source-team-6667:source-team-9565:joined",
        "playerId": "cs2-player-11816",
        "playerName": "ropz",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-6667",
        "fromTeamName": "FaZe",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b9b1714c98b7f5ba2f329d35548eba3f.webp",
        "fromTeamAlternateLogoUrl": null,
        "fromTeamDarkUiLogoUrl": null,
        "fromTeamIsNoTeam": false,
        "toTeamId": "cs2-team-9565",
        "toTeamName": "Vitality",
        "toTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
        "toTeamAlternateLogoUrl": null,
        "toTeamDarkUiLogoUrl": null,
        "toTeamIsNoTeam": false,
        "status": "joined",
        "role": null,
        "transferDate": "2025-01-01T12:00:00.000Z",
        "joinDate": "2025-01-01T12:00:00.000Z",
        "leaveDate": null,
        "detectedAt": "2026-07-09T20:16:18.067Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "total": 33,
    "page": 1,
    "limit": 2,
    "dataAvailable": true,
    "totalPages": 17,
    "hasNext": true,
    "hasPrev": false
  }
}

Team roster

GET/api/v1/cs2/teams/{teamIdOrSlug}/roster

A team's current players and coach, with role, country and join date where known.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).

Example

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

Response

json
{
  "success": true,
  "data": [
    {
      "teamId": "cs2-team-9565",
      "teamName": "Vitality",
      "playerId": "cs2-player-11893",
      "playerNickname": "ZywOo",
      "playerName": "Mathieu Herbaut",
      "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9a20575a48df13463513233c6314f72c.webp",
      "playerSlug": "zywoo",
      "countryName": "France",
      "countryCode": "FR",
      "age": 25,
      "rating": 1.24,
      "mapsPlayed": 167,
      "role": "AWPer",
      "fromAt": "2018-10-01T12:00:00.000Z",
      "toAt": null,
      "isActive": true,
      "tenureKnown": true,
      "tenureUnavailableReason": null,
      "lastSyncedAt": "2026-10-16T18:53:28.992Z"
    },
    {
      "teamId": "cs2-team-9565",
      "teamName": "Vitality",
      "playerId": "cs2-player-9086",
      "playerNickname": "XTQZZZ",
      "playerName": "Rémy Quoniam",
      "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b689e77e923fa8285d5fd19cd911b6b0.webp",
      "playerSlug": "xtqzzz",
      "countryName": "France",
      "countryCode": "FR",
      "age": 37,
      "rating": null,
      "mapsPlayed": null,
      "role": "coach",
      "fromAt": null,
      "toAt": null,
      "isActive": true,
      "tenureKnown": false,
      "tenureUnavailableReason": "source_join_date_unavailable",
      "lastSyncedAt": "2026-10-16T18:53:28.641Z"
    }
  ],
  "meta": {
    "count": 6,
    "rosterCheckedAt": "2026-10-16T18:53:29.489Z",
    "rosterStatus": "complete",
    "noActivePlayers": false,
    "unknownRosterSlots": 0,
    "partialRoster": false,
    "activePlayerCount": 5,
    "coachCount": 1,
    "rosterTenureKnown": false,
    "rosterTenureUnavailableReason": "source_join_date_unavailable",
    "activePlayers": 5,
    "coaches": 1,
    "lastKnownRoster": false,
    "limit": 6,
    "total": 6,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Team roster history

GET/api/v1/cs2/teams/{teamIdOrSlug}/roster-history
GET/api/v1/cs2/teams/{teamIdOrSlug}/players/history

Every player who has played for a team, with start and end dates. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
changesLimitstringFilter by changesLimit.
limitintegerRows to return. Maximum 250; larger values are reduced to 250.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/teams/vitality/roster-history" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team_roster_history",
    "teamId": "cs2-team-9565",
    "teamName": "Vitality",
    "dataAvailable": true,
    "rosterStatus": "partial",
    "noActivePlayers": false,
    "unknownRosterSlots": 3,
    "partialRoster": true,
    "activePlayerCount": 2,
    "coachCount": 0,
    "rosterTenureKnown": true,
    "rosterTenureUnavailableReason": null,
    "currentRoster": [
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-11816",
        "playerNickname": "ropz",
        "playerName": "Robin Kool",
        "playerImageUrl": null,
        "playerSlug": "ropz",
        "countryName": "Estonia",
        "countryCode": "EE",
        "age": 26,
        "rating": 1.12,
        "mapsPlayed": 170,
        "role": "rifler",
        "fromAt": "2025-01-01T12:00:00.000Z",
        "toAt": null,
        "isActive": true,
        "tenureKnown": true,
        "tenureUnavailableReason": null,
        "lastSyncedAt": "2026-10-16T18:53:29.489Z"
      },
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-18462",
        "playerNickname": "mezii",
        "playerName": "William Merriman",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8e03966f6fdc8d8ad9479e45918277c3.webp",
        "playerSlug": "mezii",
        "countryName": "United Kingdom",
        "countryCode": "GB",
        "age": 27,
        "rating": 1.05,
        "mapsPlayed": 119,
        "role": "rifler",
        "fromAt": "2023-11-01T12:00:00.000Z",
        "toAt": null,
        "isActive": true,
        "tenureKnown": true,
        "tenureUnavailableReason": null,
        "lastSyncedAt": "2026-10-16T18:53:29.313Z"
      }
    ],
    "activePlayers": [
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-11816",
        "playerNickname": "ropz",
        "playerName": "Robin Kool",
        "playerImageUrl": null,
        "playerSlug": "ropz",
        "countryName": "Estonia",
        "countryCode": "EE",
        "age": 26,
        "rating": 1.12,
        "mapsPlayed": 170,
        "role": "rifler",
        "fromAt": "2025-01-01T12:00:00.000Z",
        "toAt": null,
        "isActive": true,
        "tenureKnown": true,
        "tenureUnavailableReason": null,
        "lastSyncedAt": "2026-10-16T18:53:29.489Z"
      },
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-18462",
        "playerNickname": "mezii",
        "playerName": "William Merriman",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8e03966f6fdc8d8ad9479e45918277c3.webp",
        "playerSlug": "mezii",
        "countryName": "United Kingdom",
        "countryCode": "GB",
        "age": 27,
        "rating": 1.05,
        "mapsPlayed": 119,
        "role": "rifler",
        "fromAt": "2023-11-01T12:00:00.000Z",
        "toAt": null,
        "isActive": true,
        "tenureKnown": true,
        "tenureUnavailableReason": null,
        "lastSyncedAt": "2026-10-16T18:53:29.313Z"
      }
    ],
    "coach": null,
    "coaches": [],
    "historicalMemberships": [
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-11816",
        "playerNickname": "ropz",
        "playerName": "Robin Kool",
        "playerImageUrl": null,
        "playerSlug": 
…

Team matches

GET/api/v1/cs2/teams/{teamIdOrSlug}/matches

A team's matches, upcoming and finished.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 250; larger values are reduced to 250.
offsetintegerRows to skip, for paging.
pageintegerPage number, starting at 1.
statusstringFilter by status.
typestringFilter by type.

Example

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

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_match",
      "id": "cs2-match-2399723",
      "eventId": "cs2-event-8050",
      "eventName": "PGL Masters Bucharest 2026",
      "eventSlug": "pgl-masters-bucharest-2026",
      "stageName": null,
      "startsAt": "2026-10-24T13:00:00.000Z",
      "endsAt": null,
      "bestOf": 3,
      "status": "upcoming",
      "team1Id": "cs2-team-9565",
      "team2Id": "cs2-team-9996",
      "team1Name": "Vitality",
      "team2Name": "9z",
      "team1Score": null,
      "team2Score": null,
      "winnerTeamId": null,
      "lastSyncedAt": "2026-10-16T19:15:24.293Z",
      "lastVerified": "2026-10-16T19:15:24.293Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-8050",
        "name": "PGL Masters Bucharest 2026",
        "slug": "pgl-masters-bucharest-2026",
        "imageUrl": null,
        "prizePool": 1250000,
        "currency": "USD",
        "tier": "A",
        "prestigeScore": 80,
        "status": "upcoming",
        "region": "Europe",
        "startsAt": "2026-10-24T00:00:00.000Z",
        "endsAt": "2026-10-31T23:59:59.000Z",
        "eventId": "cs2-event-8050",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3d243df9e55b3252320526320ebfa51e.webp",
        "bannerImageUrl": null
      },
      "team1": {
        "id": "cs2-team-9565",
        "name": "Vitality",
        "slug": "vitality",
        "teamTag": "VITALITY",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
        "countryName": "Europe",
        "countryCode": null,
        "worldRanking": 2,
        "alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
      },
      "team2": {
        "id": "cs2-team-9996",
        "name": "9z",
        "slug": "9z",
        "teamTag": "9Z",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/bcbd4fb558dfa12256480e5f9bdadb09.webp",
        "countryName": "South America",
        "countryCode": null,
        "worldRanking": 17,
        "alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21fb40fe1479cdfdcb47cf590ff9bc38.webp",
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21fb40fe1479cdfdcb47cf590ff9bc38.webp"
      },
      "maps": [],
      "…": "14 more fields"
    },
    {
      "entityType": "cs2_match",
      "id": "cs2-match-2398757",
      "eventId": "cs2-event-8244",
      "eventName": "ESL Pro League Season 24",
      "eventSlug": "esl-pro-league-season-24",
      "stageName": null,
      "startsAt": "2026-10-11T15:00:00.000Z",
      "endsAt": "2026-10-11T18:13:51.234Z",
      "bestOf": 5,
      "status": "completed",
      "team1Id": "cs2-team-9565",
      "team2Id": "cs2-team-4494",
      "team1Name": "Vitality",
      "team2Name": "MOUZ",
      "team1Score": 3,
      "team2Score": 0,
      "winnerTeamId": "cs2-team-9565",
      "lastSyncedAt": "2026-10-16T19:16:19.761Z",
      "lastVerified": "2026-10-16T19:16:19.761Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-8244",
        "name": "ESL Pro League Season 24",
        "slug": "esl-pro-league-season-24",
        "imageUrl": null,
        "prizePool": 1000000,
        "currency": "USD",
        "tier": "S",
 
…

Team upcoming matches

GET/api/v1/cs2/teams/{teamIdOrSlug}/upcoming
GET/api/v1/cs2/teams/{teamIdOrSlug}/upcoming-matches

A team's scheduled matches. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 50; larger values are reduced to 50.

Example

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

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_match",
      "id": "cs2-match-2399723",
      "eventId": "cs2-event-8050",
      "eventName": "PGL Masters Bucharest 2026",
      "eventSlug": "pgl-masters-bucharest-2026",
      "stageName": null,
      "startsAt": "2026-10-24T13:00:00.000Z",
      "endsAt": null,
      "bestOf": 3,
      "status": "upcoming",
      "team1Id": "cs2-team-9565",
      "team2Id": "cs2-team-9996",
      "team1Name": "Vitality",
      "team2Name": "9z",
      "team1Score": null,
      "team2Score": null,
      "winnerTeamId": null,
      "lastSyncedAt": "2026-10-16T19:15:24.293Z",
      "lastVerified": "2026-10-16T19:15:24.293Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-8050",
        "name": "PGL Masters Bucharest 2026",
        "slug": "pgl-masters-bucharest-2026",
        "imageUrl": null,
        "prizePool": 1250000,
        "currency": "USD",
        "tier": "A",
        "prestigeScore": 80,
        "status": "upcoming",
        "region": "Europe",
        "startsAt": "2026-10-24T00:00:00.000Z",
        "endsAt": "2026-10-31T23:59:59.000Z",
        "eventId": "cs2-event-8050",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/3d243df9e55b3252320526320ebfa51e.webp",
        "bannerImageUrl": null
      },
      "team1": {
        "id": "cs2-team-9565",
        "name": "Vitality",
        "slug": "vitality",
        "teamTag": "VITALITY",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
        "countryName": "Europe",
        "countryCode": null,
        "worldRanking": 2,
        "alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
      },
      "team2": {
        "id": "cs2-team-9996",
        "name": "9z",
        "slug": "9z",
        "teamTag": "9Z",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/bcbd4fb558dfa12256480e5f9bdadb09.webp",
        "countryName": "South America",
        "countryCode": null,
        "worldRanking": 17,
        "alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21fb40fe1479cdfdcb47cf590ff9bc38.webp",
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21fb40fe1479cdfdcb47cf590ff9bc38.webp"
      },
      "maps": [],
      "…": "14 more fields"
    }
  ],
  "meta": {
    "count": 1,
    "type": "upcoming",
    "limit": 1,
    "total": 1,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Team results

GET/api/v1/cs2/teams/{teamIdOrSlug}/results
GET/api/v1/cs2/teams/{teamIdOrSlug}/recent

A team's finished matches, newest first. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 250; larger values are reduced to 250.

Example

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

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_match",
      "id": "cs2-match-2398757",
      "eventId": "cs2-event-8244",
      "eventName": "ESL Pro League Season 24",
      "eventSlug": "esl-pro-league-season-24",
      "stageName": null,
      "startsAt": "2026-10-11T15:00:00.000Z",
      "endsAt": "2026-10-11T18:13:51.234Z",
      "bestOf": 5,
      "status": "completed",
      "team1Id": "cs2-team-9565",
      "team2Id": "cs2-team-4494",
      "team1Name": "Vitality",
      "team2Name": "MOUZ",
      "team1Score": 3,
      "team2Score": 0,
      "winnerTeamId": "cs2-team-9565",
      "lastSyncedAt": "2026-10-16T19:16:19.761Z",
      "lastVerified": "2026-10-16T19:16:19.761Z",
      "confidence": "high",
      "event": {
        "id": "cs2-event-8244",
        "name": "ESL Pro League Season 24",
        "slug": "esl-pro-league-season-24",
        "imageUrl": null,
        "prizePool": 1000000,
        "currency": "USD",
        "tier": "S",
        "prestigeScore": 100,
        "status": "completed",
        "region": "Europe",
        "startsAt": "2026-10-03T00:00:00.000Z",
        "endsAt": "2026-10-11T23:59:59.000Z",
        "eventId": "cs2-event-8244",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/6346557bea069c7738609f369a8bcce4.webp",
        "bannerImageUrl": null
      },
      "team1": {
        "id": "cs2-team-9565",
        "name": "Vitality",
        "slug": "vitality",
        "teamTag": "VITALITY",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
        "countryName": "Europe",
        "countryCode": null,
        "worldRanking": 2,
        "alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp",
        "darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c5e463f9b2347d3aa58794fb8f7ec967.webp"
      },
      "team2": {
        "id": "cs2-team-4494",
        "name": "MOUZ",
        "slug": "mouz",
        "teamTag": "MOUZ",
        "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0ad08abfc7542d74ca19505208967289.svg",
        "countryName": "Europe",
        "countryCode": null,
        "worldRanking": 3
      },
      "maps": [
        {
          "id": "cs2-match-2398757-map-1",
          "matchId": "cs2-match-2398757",
          "mapNumber": 1,
          "mapName": "Cache",
          "status": "completed",
          "team1Score": 13,
          "team2Score": 8,
          "team1Halves": null,
          "team2Halves": null,
          "winnerTeamId": "cs2-team-9565",
          "durationRounds": 21,
          "lastSyncedAt": "2026-10-14T15:36:28.245Z",
          "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
          "pickTeamId": null,
          "objectiveStats": {
            "dataAvailable": false,
            "unavailableReason": "not_yet_indexed",
            "confidence": {
              "…": "…"
            },
            "teamStats": [
              "…"
            ],
            "roundEvents": [
              "…"
            ]
          },
          "mapNameCanonical": "Cache",
          "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
          "coverImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
          "resultType": "played",
          "resultStatus": "completed",
          "isForfeit": false,
          "
…

Team trends

GET/api/v1/cs2/teams/{teamIdOrSlug}/trends

A team's form over time: win rate and rating by period.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 200; larger values are reduced to 200.

Example

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

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team_performance_trends",
    "teamId": "cs2-team-9565",
    "teamName": "Vitality",
    "dataAvailable": true,
    "trends": [
      {
        "trendKey": "career:source-team-9565",
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "windowType": "career",
        "periodStart": null,
        "periodEnd": "2026-10-16T03:41:12.290Z",
        "matches": 276,
        "matchWins": 217,
        "matchLosses": 58,
        "maps": 911,
        "mapWins": 462,
        "mapLosses": 174,
        "mapsDecided": 636,
        "mapsUnresolved": 275,
        "winRate": 0.7891,
        "mapWinPercent": 0.7264,
        "mapWinPercentBasis": "decided_maps",
        "roundsFor": 8133,
        "roundsAgainst": 6202,
        "opponentDifficulty": null,
        "recentForm": {
          "sourceEndpoint": "/api/v1/cs2/teams/{teamId}/form"
        },
        "mapStats": {
          "sourceEndpoint": "/api/v1/cs2/teams/{teamId}/map-stats"
        },
        "source": "computed_from_matches",
        "computedAt": "2026-10-16T03:41:12.290Z"
      },
      {
        "trendKey": "last_30_days:source-team-9565",
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "windowType": "last_30_days",
        "periodStart": "2026-09-16T03:41:12.290Z",
        "periodEnd": "2026-10-16T03:41:12.290Z",
        "matches": 11,
        "matchWins": 10,
        "matchLosses": 1,
        "maps": 37,
        "mapWins": 23,
        "mapLosses": 6,
        "mapsDecided": 29,
        "mapsUnresolved": 8,
        "winRate": 0.9091,
        "mapWinPercent": 0.7931,
        "mapWinPercentBasis": "decided_maps",
        "roundsFor": 349,
        "roundsAgainst": 226,
        "opponentDifficulty": null,
        "recentForm": {
          "sourceEndpoint": "/api/v1/cs2/teams/{teamId}/form"
        },
        "mapStats": {
          "sourceEndpoint": "/api/v1/cs2/teams/{teamId}/map-stats"
        },
        "source": "computed_from_matches",
        "computedAt": "2026-10-16T03:41:12.290Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Team stats

GET/api/v1/cs2/teams/{teamIdOrSlug}/stats

Aggregate team stats over a recent window.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).

Example

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

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team_stats",
    "teamId": "cs2-team-9565",
    "matches": 247,
    "wins": 196,
    "losses": 51,
    "winRate": 0.7935222672064778,
    "maps": 576,
    "mapWinRates": [
      {
        "mapName": "Mirage",
        "played": 110,
        "wins": 77,
        "winRate": 0.7,
        "isUnknownMap": false,
        "unavailableReason": null,
        "mapNameCanonical": "Mirage",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/mirage.png",
        "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/mirage.png",
        "coverImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/mirage.png"
      },
      {
        "mapName": "Inferno",
        "played": 109,
        "wins": 81,
        "winRate": 0.7431192660550459,
        "isUnknownMap": false,
        "unavailableReason": null,
        "mapNameCanonical": "Inferno",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png",
        "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png",
        "coverImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png"
      }
    ],
    "unknownMapCount": 0,
    "averageRating": 1.1014626556016587,
    "recentForm": [
      {
        "matchId": "cs2-match-2398757",
        "opponentId": "cs2-team-4494",
        "opponentName": "MOUZ",
        "result": "W",
        "startsAt": "2026-10-11T15:00:00.000Z",
        "score": {
          "team1": 3,
          "team2": 0
        }
      },
      {
        "matchId": "cs2-match-2398754",
        "opponentId": "cs2-team-11861",
        "opponentName": "Aurora",
        "result": "W",
        "startsAt": "2026-10-10T13:45:00.000Z",
        "score": {
          "team1": 1,
          "team2": 2
        }
      }
    ],
    "ctT": {
      "ctRounds": 904,
      "ctWins": 582,
      "ctWinPercent": 64.4,
      "tRounds": 877,
      "tWins": 448,
      "tWinPercent": 51.1
    },
    "economy": {
      "pistolRounds": 149,
      "pistolWins": 89,
      "pistolWinPercent": 59.7,
      "ecoRounds": 160,
      "ecoWins": 45,
      "ecoWinPercent": 28.1,
      "forceRounds": 221,
      "forceWins": 85,
      "forceWinPercent": 38.5,
      "fullBuyRounds": 1251,
      "fullBuyWins": 811,
      "fullBuyWinPercent": 64.8
    },
    "dataAvailable": true,
    "unavailableReason": null
  },
  "meta": {}
}

Team maps

GET/api/v1/cs2/teams/{teamIdOrSlug}/maps
GET/api/v1/cs2/teams/{teamIdOrSlug}/map-pool

Maps from a team's matches, one row per map (played or scheduled) with score, halves and winner. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 100; larger values are reduced to 100.

Example

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

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_map",
      "id": "cs2-match-2398757-map-1",
      "matchId": "cs2-match-2398757",
      "mapNumber": 1,
      "mapName": "Cache",
      "status": "completed",
      "team1Score": 13,
      "team2Score": 8,
      "team1Halves": null,
      "team2Halves": null,
      "winnerTeamId": "cs2-team-9565",
      "durationRounds": 21,
      "lastSyncedAt": "2026-10-14T15:36:28.245Z",
      "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
      "pickTeamId": "cs2-team-9565",
      "playerSkins": [
        {
          "rarity": 6,
          "itemId": 27587984734,
          "quality": 3,
          "defIndex": 5034,
          "itemName": null,
          "skinName": "Crimson Kimono",
          "paintSeed": 77,
          "paintWear": 1045112904,
          "paintIndex": 10033
        },
        {
          "rarity": 5,
          "itemId": 40244265855,
          "quality": 4,
          "defIndex": 60,
          "itemName": "M4A1-S",
          "skinName": "Hot Rod",
          "paintSeed": 234,
          "paintWear": 1021476363,
          "paintIndex": 445
        }
      ],
      "objectiveStats": {
        "dataAvailable": false,
        "unavailableReason": "not_yet_indexed",
        "confidence": {
          "plants": "high",
          "defuses": "high",
          "explosions": "high",
          "clutchDefuse": "medium"
        },
        "teamStats": [],
        "roundEvents": []
      },
      "availableSubresources": [],
      "unavailableSubresources": [
        "player_stats",
        "objective_stats"
      ],
      "unavailableFields": {},
      "dataQuality": "partial",
      "confidence": "medium",
      "confidenceScore": 0.7,
      "lastVerified": "2026-10-14T15:36:28.245Z",
      "…": "9 more fields"
    },
    {
      "entityType": "cs2_map",
      "id": "cs2-match-2398757-map-2",
      "matchId": "cs2-match-2398757",
      "mapNumber": 2,
      "mapName": "Inferno",
      "status": "completed",
      "team1Score": 13,
      "team2Score": 7,
      "team1Halves": null,
      "team2Halves": null,
      "winnerTeamId": "cs2-team-9565",
      "durationRounds": 20,
      "lastSyncedAt": "2026-10-14T15:36:28.282Z",
      "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png",
      "pickTeamId": "cs2-team-4494",
      "playerSkins": [
        {
          "rarity": 6,
          "itemId": 53959184276,
          "quality": 3,
          "defIndex": 5030,
          "itemName": null,
          "skinName": "Hedge Maze",
          "paintSeed": 148,
          "paintWear": 1033870020,
          "paintIndex": 10038
        },
        {
          "rarity": 6,
          "itemId": 53959184277,
          "quality": 3,
          "defIndex": 515,
          "itemName": "Butterfly Knife",
          "skinName": "Gamma Doppler",
          "paintSeed": 668,
          "paintWear": 1021472755,
          "paintIndex": 568
        }
      ],
      "objectiveStats": {
        "dataAvailable": false,
        "unavailableReason": "not_yet_indexed",
        "confidence": {
          "plants": "high",
          "defuses": "high",
          "explosions": "high",
          "clutchDefuse": "medium"
        },
        "teamStats": [],
        "roundEvents": []
      },
      "availableSubresources": [],
      "unavailableSubresources": [
        "player_stats",
        "objective_stats"
      ],
      "unavailableFields": {},
      "dataQuality": "partial"
…

Team form

GET/api/v1/cs2/teams/{teamIdOrSlug}/form

A team's last results as a W/L sequence with scores.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 50; larger values are reduced to 50.

Example

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

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team_form",
    "teamId": "cs2-team-9565",
    "teamName": "Vitality",
    "window": 2,
    "record": {
      "wins": 2,
      "losses": 0,
      "unknown": 0,
      "winPercent": 100
    },
    "matches": [
      {
        "matchId": "cs2-match-2398757",
        "status": "completed",
        "startsAt": "2026-10-11T15:00:00.000Z",
        "eventName": "ESL Pro League Season 24",
        "bestOf": 5,
        "opponentId": "cs2-team-4494",
        "opponentName": "MOUZ",
        "teamScore": 3,
        "opponentScore": 0,
        "score": "3-0",
        "result": "W",
        "maps": [
          {
            "mapId": "cs2-match-2398757-map-1",
            "mapNumber": 1,
            "mapName": "Cache",
            "status": "completed",
            "teamScore": 13,
            "opponentScore": 8,
            "score": "13-8",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 13,
            "roundsAgainst": 8
          },
          {
            "mapId": "cs2-match-2398757-map-2",
            "mapNumber": 2,
            "mapName": "Inferno",
            "status": "completed",
            "teamScore": 13,
            "opponentScore": 7,
            "score": "13-7",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 13,
            "roundsAgainst": 7
          }
        ]
      },
      {
        "matchId": "cs2-match-2398754",
        "status": "completed",
        "startsAt": "2026-10-10T13:45:00.000Z",
        "eventName": "ESL Pro League Season 24",
        "bestOf": 3,
        "opponentId": "cs2-team-11861",
        "opponentName": "Aurora",
        "teamScore": 2,
        "opponentScore": 1,
        "score": "2-1",
        "result": "W",
        "maps": [
          {
            "mapId": "cs2-match-2398754-map-1",
            "mapNumber": 1,
            "mapName": "Anubis",
            "status": "completed",
            "teamScore": 7,
            "opponentScore": 13,
            "score": "7-13",
            "result": "L",
            "winnerTeamId": "cs2-team-11861",
            "roundsFor": 7,
            "roundsAgainst": 13
          },
          {
            "mapId": "cs2-match-2398754-map-2",
            "mapNumber": 2,
            "mapName": "Cache",
            "status": "completed",
            "teamScore": 13,
            "opponentScore": 7,
            "score": "13-7",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 13,
            "roundsAgainst": 7
          }
        ]
      }
    ],
    "dataAvailable": true
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Team map stats

GET/api/v1/cs2/teams/{teamIdOrSlug}/map-stats

Per-map win rate, rounds and pick/ban tendencies.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
limitintegerRows to return. Maximum 250; larger values are reduced to 250.
windowDaysintegerLook-back window in days.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/teams/vitality/map-stats" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team_map_stats",
    "teamId": "cs2-team-9565",
    "teamName": "Vitality",
    "matchWindow": 2,
    "windowDays": null,
    "totalMaps": 3,
    "totalMapWins": 3,
    "mapWinPercent": 100,
    "sideEconomy": {
      "ctRounds": 904,
      "ctWins": 582,
      "tRounds": 877,
      "tWins": 448,
      "pistolRounds": 149,
      "pistolWins": 89,
      "ecoRounds": 160,
      "ecoWins": 45,
      "forceRounds": 221,
      "forceWins": 85,
      "fullBuyRounds": 1251,
      "fullBuyWins": 811,
      "ctWinPercent": 64.4,
      "tWinPercent": 51.1,
      "pistolWinPercent": 59.7,
      "ecoWinPercent": 28.1,
      "forceWinPercent": 38.5,
      "fullBuyWinPercent": 64.8
    },
    "maps": [
      {
        "mapName": "Cache",
        "played": 1,
        "wins": 1,
        "losses": 0,
        "ties": 0,
        "roundsFor": 13,
        "roundsAgainst": 8,
        "latestPlayedAt": "2026-10-11T15:00:00.000Z",
        "isUnknownMap": false,
        "unavailableReason": null,
        "mapNameCanonical": "Cache",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
        "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
        "coverImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/cache.png",
        "pickPercent": 33.3,
        "winPercent": 100,
        "lossPercent": 0,
        "roundDifferential": 5,
        "avgRoundsFor": 13,
        "avgRoundsAgainst": 8,
        "ctRounds": 70,
        "ctWins": 45,
        "ctWinPercent": 64.3,
        "tRounds": 80,
        "…": "14 more fields"
      },
      {
        "mapName": "Inferno",
        "played": 1,
        "wins": 1,
        "losses": 0,
        "ties": 0,
        "roundsFor": 13,
        "roundsAgainst": 7,
        "latestPlayedAt": "2026-10-11T15:00:00.000Z",
        "isUnknownMap": false,
        "unavailableReason": null,
        "mapNameCanonical": "Inferno",
        "imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png",
        "mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png",
        "coverImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/inferno.png",
        "pickPercent": 33.3,
        "winPercent": 100,
        "lossPercent": 0,
        "roundDifferential": 6,
        "avgRoundsFor": 13,
        "avgRoundsAgainst": 7,
        "ctRounds": 97,
        "ctWins": 63,
        "ctWinPercent": 64.9,
        "tRounds": 90,
        "…": "14 more fields"
      }
    ],
    "dataAvailable": true
  },
  "meta": {
    "count": 3,
    "dataAvailable": true,
    "limit": 3,
    "total": 3,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Team head-to-head

GET/api/v1/cs2/teams/{teamIdOrSlug}/vs/{opponentIdOrSlug}
GET/api/v1/cs2/teams/{teamIdOrSlug}/h2h/{opponentIdOrSlug}

Record and past matches between two teams. These routes are equivalent; use whichever reads best.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
opponentIdOrSlug (path)*stringOpponent team id or slug.
limitintegerRows to return. Maximum 250; larger values are reduced to 250.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/teams/vitality/vs/natus-vincere" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team_h2h",
    "team": {
      "id": "cs2-team-9565",
      "name": "Vitality"
    },
    "opponent": {
      "id": "cs2-team-7020",
      "name": "Spirit"
    },
    "totalMatches": 2,
    "matchRecord": {
      "teamWins": 2,
      "opponentWins": 0,
      "teamWinPercent": 100,
      "opponentWinPercent": 0
    },
    "mapRecord": {
      "teamWins": 5,
      "opponentWins": 0,
      "totalDecidedMaps": 5,
      "teamWinPercent": 100,
      "opponentWinPercent": 0
    },
    "mapBreakdown": [
      {
        "mapName": "Mirage",
        "played": 2,
        "teamWins": 2,
        "opponentWins": 0,
        "teamWinPercent": 100,
        "opponentWinPercent": 0,
        "roundsFor": 35,
        "roundsAgainst": 30,
        "roundDifferential": 5
      },
      {
        "mapName": "Dust2",
        "played": 2,
        "teamWins": 2,
        "opponentWins": 0,
        "teamWinPercent": 100,
        "opponentWinPercent": 0,
        "roundsFor": 26,
        "roundsAgainst": 13,
        "roundDifferential": 13
      }
    ],
    "recent5Matches": [
      {
        "matchId": "cs2-match-2393245",
        "status": "completed",
        "startsAt": "2026-04-19T17:00:00.000Z",
        "eventName": "IEM Rio 2026",
        "bestOf": 5,
        "opponentId": "cs2-team-7020",
        "opponentName": "Spirit",
        "teamScore": 3,
        "opponentScore": 0,
        "score": "3-0",
        "result": "W",
        "maps": [
          {
            "mapId": "cs2-match-2393245-map-1",
            "mapNumber": 1,
            "mapName": "Mirage",
            "status": "completed",
            "teamScore": 16,
            "opponentScore": 13,
            "score": "16-13",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 16,
            "roundsAgainst": 13
          },
          {
            "mapId": "cs2-match-2393245-map-2",
            "mapNumber": 2,
            "mapName": "Nuke",
            "status": "completed",
            "teamScore": 13,
            "opponentScore": 10,
            "score": "13-10",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 13,
            "roundsAgainst": 10
          }
        ]
      },
      {
        "matchId": "cs2-match-2388128",
        "status": "completed",
        "startsAt": "2025-12-13T16:00:00.000Z",
        "eventName": "StarLadder Budapest Major 2025",
        "bestOf": 3,
        "opponentId": "cs2-team-7020",
        "opponentName": "Spirit",
        "teamScore": 2,
        "opponentScore": 0,
        "score": "2-0",
        "result": "W",
        "maps": [
          {
            "mapId": "cs2-match-2388128-map-1",
            "mapNumber": 1,
            "mapName": "Mirage",
            "status": "completed",
            "teamScore": 19,
            "opponentScore": 17,
            "score": "19-17",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 19,
            "roundsAgainst": 17
          },
          {
            "mapId": "cs2-match-2388128-map-2",
            "mapNumber": 2,
            "mapName": "Dust2",
            "status": "completed",
            "teamScore": 13,
            "opponentScore": 8,
            "score": "13-8",
            "result": "W",
            "winnerTeamId": "cs2-team-9565",
            "roundsFor": 13,
            "roundsAgainst": 8
          }
        ]
      }
    ],
 
…

Team details

GET/api/v1/cs2/teams/{teamIdOrSlug}

One team: name, logo, country, region, world ranking and current roster.

Query parameters

ParameterTypeDescription
teamIdOrSlug (path)*stringTeam id (cs2-team-7020) or slug (spirit).
recentLimitstringFilter by recentLimit.
recent_limitstringFilter by recent_limit.
upcomingLimitstringFilter by upcomingLimit.
upcoming_limitstringFilter by upcoming_limit.

Example

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

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_team",
    "id": "cs2-team-9565",
    "name": "Vitality",
    "slug": "vitality",
    "teamTag": "VITALITY",
    "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
    "countryName": "Europe",
    "countryCode": null,
    "region": "Europe",
    "worldRanking": 2,
    "lastSyncedAt": "2026-10-16T19:39:26.768Z",
    "lastVerified": "2026-10-16T19:39:26.768Z",
    "confidence": "high",
    "roster": [
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-11893",
        "playerNickname": "ZywOo",
        "playerName": "Mathieu Herbaut",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9a20575a48df13463513233c6314f72c.webp",
        "playerSlug": "zywoo",
        "countryName": "France",
        "countryCode": "FR",
        "age": 25,
        "rating": 1.24,
        "mapsPlayed": 167,
        "role": "AWPer",
        "fromAt": "2018-10-01T12:00:00.000Z",
        "toAt": null,
        "isActive": true,
        "tenureKnown": true,
        "tenureUnavailableReason": null,
        "lastSyncedAt": "2026-10-16T18:53:28.992Z"
      },
      {
        "teamId": "cs2-team-9565",
        "teamName": "Vitality",
        "playerId": "cs2-player-9086",
        "playerNickname": "XTQZZZ",
        "playerName": "Rémy Quoniam",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b689e77e923fa8285d5fd19cd911b6b0.webp",
        "playerSlug": "xtqzzz",
        "countryName": "France",
        "countryCode": "FR",
        "age": 37,
        "rating": null,
        "mapsPlayed": null,
        "role": "coach",
        "fromAt": null,
        "toAt": null,
        "isActive": true,
        "tenureKnown": false,
        "tenureUnavailableReason": "source_join_date_unavailable",
        "lastSyncedAt": "2026-10-16T18:53:28.641Z"
      }
    ],
    "recentResults": [
      {
        "entityType": "cs2_match",
        "id": "cs2-match-2398757",
        "eventId": "cs2-event-8244",
        "eventName": "ESL Pro League Season 24",
        "eventSlug": "esl-pro-league-season-24",
        "stageName": null,
        "startsAt": "2026-10-11T15:00:00.000Z",
        "endsAt": "2026-10-11T18:13:51.234Z",
        "bestOf": 5,
        "status": "completed",
        "team1Id": "cs2-team-9565",
        "team2Id": "cs2-team-4494",
        "team1Name": "Vitality",
        "team2Name": "MOUZ",
        "team1Score": 3,
        "team2Score": 0,
        "winnerTeamId": "cs2-team-9565",
        "lastSyncedAt": "2026-10-16T19:16:19.761Z",
        "lastVerified": "2026-10-16T19:16:19.761Z",
        "confidence": "high",
        "event": {
          "id": "cs2-event-8244",
          "name": "ESL Pro League Season 24",
          "slug": "esl-pro-league-season-24",
          "imageUrl": null,
          "prizePool": 1000000,
          "currency": "USD",
          "tier": "S",
          "prestigeScore": 100,
          "status": "completed",
          "region": "Europe",
          "startsAt": "2026-10-03T00:00:00.000Z",
          "endsAt": "2026-10-11T23:59:59.000Z",
          "eventId": "cs2-event-8244",
          "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/6346557bea069c7738609f369a8bcce4.webp",
          "bannerImageUrl": null
        },
        "team1": {
          "id": "cs2-team-9565",
          "name": "Vitality",
          "slug": "vitali
…

List teams

GET/api/v1/cs2/teams

Teams ordered by world ranking, with logo, country and roster. `compact=true` returns lighter rows.

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.
qstringSearch text.
searchstringSearch text.
summarybooleantrue returns a summary instead of full rows.

Example

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

Response

json
{
  "success": true,
  "data": [
    {
      "entityType": "cs2_team",
      "id": "cs2-team-7020",
      "name": "Spirit",
      "slug": "spirit",
      "teamTag": "SPIRIT",
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/608894028d96779c209b2fb4c03da37c.webp",
      "countryName": "Russia",
      "countryCode": "RU",
      "region": "Europe",
      "worldRanking": 1,
      "lastSyncedAt": "2026-10-16T19:39:27.117Z",
      "lastVerified": "2026-10-16T19:39:27.117Z",
      "confidence": "high",
      "roster": [
        {
          "teamId": "cs2-team-7020",
          "teamName": "Spirit",
          "playerId": "cs2-player-16920",
          "playerNickname": "sh1ro",
          "playerName": "Dmitry Sokolov",
          "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7f8014979bb54f2cd974d1a369c24939.webp",
          "playerSlug": "sh1ro",
          "countryName": "Russia",
          "countryCode": "RU",
          "age": 24,
          "rating": 1.19,
          "mapsPlayed": 136,
          "role": "AWPer",
          "fromAt": "2023-12-01T12:00:00.000Z",
          "toAt": null,
          "isActive": true,
          "tenureKnown": true,
          "tenureUnavailableReason": null,
          "lastSyncedAt": "2026-10-16T18:53:24.525Z"
        },
        {
          "teamId": "cs2-team-7020",
          "teamName": "Spirit",
          "playerId": "cs2-player-2154",
          "playerNickname": "hally",
          "playerName": "Sergey Shavaev",
          "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/445dd6783047f7e0191ccedacc007ac8.png",
          "playerSlug": "hally",
          "countryName": "Russia",
          "countryCode": "RU",
          "age": 33,
          "rating": null,
          "mapsPlayed": null,
          "role": "coach",
          "fromAt": null,
          "toAt": null,
          "isActive": true,
          "tenureKnown": false,
          "tenureUnavailableReason": "source_join_date_unavailable",
          "lastSyncedAt": "2026-10-16T18:53:23.939Z"
        }
      ],
      "rankingHistoryCount": 180,
      "rankingDevelopmentCount": 180,
      "trophiesCount": 12,
      "achievementsCount": 12,
      "newsLinksCount": 10,
      "heavyFieldsOmitted": [
        "rankingHistory",
        "rankingDevelopment"
      ],
      "heavyFieldsAvailableAt": "/api/v1/cs2/teams/spirit",
      "rosterStatus": "complete",
      "noActivePlayers": false,
      "unknownRosterSlots": 0,
      "…": "15 more fields"
    },
    {
      "entityType": "cs2_team",
      "id": "cs2-team-9565",
      "name": "Vitality",
      "slug": "vitality",
      "teamTag": "VITALITY",
      "logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
      "countryName": "Europe",
      "countryCode": null,
      "region": "Europe",
      "worldRanking": 2,
      "lastSyncedAt": "2026-10-16T19:39:26.768Z",
      "lastVerified": "2026-10-16T19:39:26.768Z",
      "confidence": "high",
      "roster": [
        {
          "teamId": "cs2-team-9565",
          "teamName": "Vitality",
          "playerId": "cs2-player-11893",
          "playerNickname": "ZywOo",
          "playerName": "Mathieu Herbaut",
          "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/9a20575a48df13463513233c6314f72c.webp",
          "playerSlug": "zywoo",
          "countryName": "France",
          "countryCode": "FR",
          "age": 25,
          
…

Try the CS2 Teams 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/teams/vitality" \
  -H "x-api-key: YOUR_API_KEY"