Docs/CS2 API/CS2 Transfers API

CS2 Transfers API

Roster moves across the scene, filterable by player, team, status and date range.

3 endpoints in this section. Authenticate with the x-api-key header; every response is { success, data, meta }. Other sections: Live, Matches, Maps & rounds, Rankings, Teams, Players, Events, Stats & leaderboards, Skins, Search & reference.

Recent roster changes

GET/api/v1/cs2/roster-changes/recent

Players joining and leaving teams, newest first. Filter with `teamId` or `playerId`.

Query parameters

ParameterTypeDescription
limitintegerRows to return. Maximum 200; larger values are reduced to 200.
playerIdstringPlayer id or slug.
teamIdstringTeam id or slug.

Example

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

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_roster_changes",
    "dataAvailable": true,
    "changes": [
      {
        "changeId": "f4a51ba2-9a2a-4e0c-9fe7-9da6ef3b663c",
        "changeType": "leave",
        "teamId": "cs2-team-11838",
        "fromTeamId": "cs2-team-11838",
        "toTeamId": null,
        "teamName": "Partizan",
        "playerId": "cs2-player-25471",
        "playerName": "rajkeza",
        "roleBefore": null,
        "roleAfter": null,
        "effectiveAt": "2026-09-15T22:00:00.000Z",
        "detectedAt": "2026-09-22T20:00:10.568Z",
        "confidence": "medium"
      },
      {
        "changeId": "fe45f322-e64c-4b1e-9f35-ef517f4a827f",
        "changeType": "leave",
        "teamId": "cs2-team-11838",
        "fromTeamId": "cs2-team-11838",
        "toTeamId": null,
        "teamName": "Partizan",
        "playerId": "cs2-player-4476",
        "playerName": "BAXACHA",
        "roleBefore": "coach",
        "roleAfter": null,
        "effectiveAt": "2026-09-21T22:00:00.000Z",
        "detectedAt": "2026-09-22T20:00:07.032Z",
        "confidence": "medium"
      }
    ]
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Recent transfers

GET/api/v1/cs2/transfers/recent

Player moves between teams, newest first.

Query parameters

ParameterTypeDescription
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.
sortstringSort order.
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/transfers/recent" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_player_transfers",
    "dataAvailable": true,
    "transfers": [
      {
        "transferKey": "source-transfer:2026-09-21:4476:11838:none:left:6d47eb95dc",
        "playerId": "cs2-player-4476",
        "playerName": "BAXACHA",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-11838",
        "fromTeamName": "Partizan",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/448e59bfe484b2c37a485c66408b9079.webp",
        "fromTeamAlternateLogoUrl": null,
        "fromTeamDarkUiLogoUrl": null,
        "fromTeamIsNoTeam": false,
        "toTeamId": "no-team",
        "toTeamName": "No team",
        "toTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/noteam.png",
        "toTeamAlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/noteam.png",
        "toTeamDarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/noteam.png",
        "toTeamIsNoTeam": true,
        "status": "left",
        "role": "coach",
        "transferDate": "2026-09-21T22:00:00.000Z",
        "joinDate": null,
        "leaveDate": "2026-09-21T22:00:00.000Z",
        "detectedAt": "2026-09-22T20:00:06.346Z"
      },
      {
        "transferKey": "source-transfer:2026-09-21:18545:13486:12878:unknown:eb757cb310",
        "playerId": "cs2-player-18545",
        "playerName": "asap",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/de0f55ab3f608f1b241f21c0db647a08.webp",
        "fromTeamId": "cs2-team-13486",
        "fromTeamName": "THUNDER dOWNUNDER",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b4c915e53b28f03de6595dd0195a7745.webp",
        "fromTeamAlternateLogoUrl": null,
        "fromTeamDarkUiLogoUrl": null,
        "fromTeamIsNoTeam": false,
        "toTeamId": "cs2-team-12878",
        "toTeamName": "BC.Game",
        "toTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/281b61f68eb0586d9f0b0e2635426924.webp",
        "toTeamAlternateLogoUrl": null,
        "toTeamDarkUiLogoUrl": null,
        "toTeamIsNoTeam": false,
        "status": "unknown",
        "role": null,
        "transferDate": "2026-09-21T22:00:00.000Z",
        "joinDate": "2026-09-21T22:00:00.000Z",
        "leaveDate": null,
        "detectedAt": "2026-09-22T19:30:03.976Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "total": 47086,
    "page": 1,
    "limit": 2,
    "dataAvailable": true,
    "totalPages": 23543,
    "hasNext": true,
    "hasPrev": false
  }
}

Transfers

GET/api/v1/cs2/transfers

Player transfers with filters for team, player and date range.

Query parameters

ParameterTypeDescription
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/transfers" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_player_transfers",
    "dataAvailable": true,
    "transfers": [
      {
        "transferKey": "source-transfer:2026-09-21:4476:11838:none:left:6d47eb95dc",
        "playerId": "cs2-player-4476",
        "playerName": "BAXACHA",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-11838",
        "fromTeamName": "Partizan",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/448e59bfe484b2c37a485c66408b9079.webp",
        "fromTeamAlternateLogoUrl": null,
        "fromTeamDarkUiLogoUrl": null,
        "fromTeamIsNoTeam": false,
        "toTeamId": "no-team",
        "toTeamName": "No team",
        "toTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/noteam.png",
        "toTeamAlternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/noteam.png",
        "toTeamDarkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/noteam.png",
        "toTeamIsNoTeam": true,
        "status": "left",
        "role": "coach",
        "transferDate": "2026-09-21T22:00:00.000Z",
        "joinDate": null,
        "leaveDate": "2026-09-21T22:00:00.000Z",
        "detectedAt": "2026-09-22T20:00:06.346Z"
      },
      {
        "transferKey": "source-transfer:2026-09-21:18545:13486:12878:unknown:eb757cb310",
        "playerId": "cs2-player-18545",
        "playerName": "asap",
        "playerImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/de0f55ab3f608f1b241f21c0db647a08.webp",
        "fromTeamId": "cs2-team-13486",
        "fromTeamName": "THUNDER dOWNUNDER",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/b4c915e53b28f03de6595dd0195a7745.webp",
        "fromTeamAlternateLogoUrl": null,
        "fromTeamDarkUiLogoUrl": null,
        "fromTeamIsNoTeam": false,
        "toTeamId": "cs2-team-12878",
        "toTeamName": "BC.Game",
        "toTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/281b61f68eb0586d9f0b0e2635426924.webp",
        "toTeamAlternateLogoUrl": null,
        "toTeamDarkUiLogoUrl": null,
        "toTeamIsNoTeam": false,
        "status": "unknown",
        "role": null,
        "transferDate": "2026-09-21T22:00:00.000Z",
        "joinDate": "2026-09-21T22:00:00.000Z",
        "leaveDate": null,
        "detectedAt": "2026-09-22T19:30:03.976Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "total": 47086,
    "page": 1,
    "limit": 2,
    "dataAvailable": true,
    "totalPages": 23543,
    "hasNext": true,
    "hasPrev": false
  }
}

Try the CS2 Transfers 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/transfers/recent?limit=10" \
  -H "x-api-key: YOUR_API_KEY"