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
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
| playerId | string | Player id or slug. |
| teamId | string | Team 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
| Parameter | Type | Description |
|---|---|---|
| after | string | Only rows after this time (ISO 8601). |
| before | string | Only rows before this time (ISO 8601). |
| from_team | string | Filter by from_team. |
| include_computed | string | Filter by include_computed. |
| include_undated | string | Filter by include_undated. |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
| page | integer | Page number, starting at 1. |
| player | string | Player id or slug. |
| player_id | string | Player id or slug. |
| sort | string | Sort order. |
| status | string | Filter by status. |
| team | string | Team id or slug. |
| team_id | string | Team id or slug. |
| to_team | string | Filter 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
| Parameter | Type | Description |
|---|---|---|
| after | string | Only rows after this time (ISO 8601). |
| before | string | Only rows before this time (ISO 8601). |
| from_team | string | Filter by from_team. |
| include_computed | string | Filter by include_computed. |
| include_undated | string | Filter by include_undated. |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
| page | integer | Page number, starting at 1. |
| player | string | Player id or slug. |
| player_id | string | Player id or slug. |
| status | string | Filter by status. |
| team | string | Team id or slug. |
| team_id | string | Team id or slug. |
| to_team | string | Filter 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"