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, Odds, 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": "0feb9b7a-60f4-479c-a3f0-804391c3c619",
        "changeType": "join",
        "teamId": "cs2-team-5991",
        "fromTeamId": null,
        "toTeamId": "cs2-team-5991",
        "teamName": "Envy",
        "playerId": "cs2-player-18731",
        "playerName": "wasiNk",
        "roleBefore": null,
        "roleAfter": "coach",
        "effectiveAt": "2026-10-16T16:15:18.545Z",
        "detectedAt": "2026-10-16T16:15:18.547Z",
        "confidence": "medium"
      },
      {
        "changeId": "ca6dcd4e-7c54-4a48-954a-e19f9e08e28f",
        "changeType": "coach",
        "teamId": "cs2-team-4914",
        "fromTeamId": "cs2-team-4914",
        "toTeamId": null,
        "teamName": "3DMAX",
        "playerId": "cs2-player-18731",
        "playerName": "wasink",
        "roleBefore": "coach",
        "roleAfter": null,
        "effectiveAt": "2026-10-16T16:07:06.043Z",
        "detectedAt": "2026-10-16T16:07:06.046Z",
        "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": "profile-history:2026-10-31:source-player-26034:source-team-13924:none:left",
        "playerId": "cs2-player-26034",
        "playerName": "s0ft",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-13924",
        "fromTeamName": "Black Phoenix",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f3f2106dff0485d9592549612446e98e.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": null,
        "transferDate": "2026-10-31T12:00:00.000Z",
        "joinDate": null,
        "leaveDate": "2026-10-31T12:00:00.000Z",
        "detectedAt": "2026-10-15T19:05:15.739Z"
      },
      {
        "transferKey": "profile-history:2026-10-31:source-player-26432:source-team-13726:none:left",
        "playerId": "cs2-player-26432",
        "playerName": "tato",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-13726",
        "fromTeamName": "METANOIA Wolves",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/965155cff62ce9ac5394a849b0397b9e.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": null,
        "transferDate": "2026-10-31T12:00:00.000Z",
        "joinDate": null,
        "leaveDate": "2026-10-31T12:00:00.000Z",
        "detectedAt": "2026-10-15T03:33:41.257Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "total": 48203,
    "page": 1,
    "limit": 2,
    "dataAvailable": true,
    "totalPages": 24102,
    "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": "profile-history:2026-10-31:source-player-26034:source-team-13924:none:left",
        "playerId": "cs2-player-26034",
        "playerName": "s0ft",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-13924",
        "fromTeamName": "Black Phoenix",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f3f2106dff0485d9592549612446e98e.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": null,
        "transferDate": "2026-10-31T12:00:00.000Z",
        "joinDate": null,
        "leaveDate": "2026-10-31T12:00:00.000Z",
        "detectedAt": "2026-10-15T19:05:15.739Z"
      },
      {
        "transferKey": "profile-history:2026-10-31:source-player-26432:source-team-13726:none:left",
        "playerId": "cs2-player-26432",
        "playerName": "tato",
        "playerImageUrl": null,
        "fromTeamId": "cs2-team-13726",
        "fromTeamName": "METANOIA Wolves",
        "fromTeamLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/965155cff62ce9ac5394a849b0397b9e.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": null,
        "transferDate": "2026-10-31T12:00:00.000Z",
        "joinDate": null,
        "leaveDate": "2026-10-31T12:00:00.000Z",
        "detectedAt": "2026-10-15T03:33:41.257Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "total": 48203,
    "page": 1,
    "limit": 2,
    "dataAvailable": true,
    "totalPages": 24102,
    "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"