CS2 Matches API
Schedules, results and everything recorded about a single series: maps played, player stats per map, lineup form, head-to-head history, streams and demo links.
15 endpoints in this section. Authenticate with the x-api-key header; every response is { success, data, meta }. Other sections: Live, Maps & rounds, Rankings, Teams, Players, Events, Stats & leaderboards, Skins, Transfers, Search & reference.
Today's matches
Matches scheduled, live or finished today (UTC).
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventId | string | Filter by eventId. |
| event_id | string | Filter by event_id. |
| fields | string | Comma-separated list of fields to return. |
| from | string | Start of the date range (ISO 8601, UTC). |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
| offset | integer | Rows to skip, for paging. |
| order | string | Filter by order. |
| page | integer | Page number, starting at 1. |
| playerId | string | Player id or slug. |
| player_id | string | Player id or slug. |
| sort | string | Sort order. |
| status | string | Filter by status. |
| summary | boolean | true returns a summary instead of full rows. |
| team | string | Team id or slug. |
| teamId | string | Team id or slug. |
| team_id | string | Team id or slug. |
| to | string | End of the date range (ISO 8601, UTC). |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/today" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2398319",
"eventId": "cs2-event-9410",
"eventName": "CROSSFIRE Season 6",
"eventSlug": "crossfire-season-6",
"stageName": null,
"startsAt": "2026-09-23T23:30:00.000Z",
"endsAt": null,
"bestOf": null,
"status": "upcoming",
"team1Id": "cs2-team-14047",
"team2Id": "cs2-team-13201",
"team1Name": "Fathom",
"team2Name": "F5",
"team1Score": null,
"team2Score": null,
"winnerTeamId": null,
"lastSyncedAt": "2026-09-23T03:05:37.960Z",
"lastVerified": "2026-09-23T03:05:37.960Z",
"confidence": "high",
"event": {
"id": "cs2-event-9410",
"name": "CROSSFIRE Season 6",
"slug": "crossfire-season-6",
"imageUrl": null,
"prizePool": 10000,
"currency": "USD",
"tier": null,
"prestigeScore": null,
"status": "live",
"region": null,
"startsAt": "2026-09-16T00:30:00.000Z",
"endsAt": "2026-10-11T23:59:59.000Z",
"eventId": "cs2-event-9410",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/8cdf74d32db95514d3dc287ea44a5fa4.webp",
"bannerImageUrl": null
},
"team1": {
"id": "cs2-team-14047",
"name": "Fathom",
"slug": "fathom",
"teamTag": "FATHOM",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7b669c0c2e7d42990dffdd61ee1e97f7.webp",
"countryName": null,
"countryCode": null,
"worldRanking": null
},
"team2": {
"id": "cs2-team-13201",
"name": "F5",
"slug": "f5",
"teamTag": "F5",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/d20b8f3544cd148e95f33111fe6b47be.webp",
"countryName": "United States",
"countryCode": "US",
"worldRanking": 213,
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/63afa5f59017a2af260f1b23a3b31ed4.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/63afa5f59017a2af260f1b23a3b31ed4.webp"
},
"maps": [],
"…": "14 more fields"
},
{
"entityType": "cs2_match",
"id": "cs2-match-2398557",
"eventId": "cs2-event-9425",
"eventName": "CCT 2026 South America Series 6",
"eventSlug": "cct-2026-south-america-series-6",
"stageName": null,
"startsAt": "2026-09-23T22:00:00.000Z",
"endsAt": null,
"bestOf": null,
"status": "upcoming",
"team1Id": "cs2-team-11905",
"team2Id": "cs2-team-13978",
"team1Name": "paiN Academy",
"team2Name": "Sementes do Mal",
"team1Score": null,
"team2Score": null,
"winnerTeamId": null,
"lastSyncedAt": "2026-09-23T03:05:37.546Z",
"lastVerified": "2026-09-23T03:05:37.546Z",
"confidence": "high",
"event": {
"id": "cs2-event-9425",
"name": "CCT 2026 South America Series 6",
"slug": "cct-2026-south-america-series-6",
"imageUrl": null,
"prizePool": null,
"currency": null,
"tier": "B",
"prestigeScore": 55,
"status": "live",
"region": null,
"startsAt": "2026-09-22T15:59:32.000Z",
"endsAt": "2026-10-04T23:59:59.000Z",
"eventId": "cs2-event-9425",
"logoUrl": "https://api.citoapi.com/api/v1/public/im
…Past matches
Finished matches, newest first, with date-range filters.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventId | string | Filter by eventId. |
| event_id | string | Filter by event_id. |
| fields | string | Comma-separated list of fields to return. |
| from | string | Start of the date range (ISO 8601, UTC). |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
| offset | integer | Rows to skip, for paging. |
| order | string | Filter by order. |
| page | integer | Page number, starting at 1. |
| playerId | string | Player id or slug. |
| player_id | string | Player id or slug. |
| sort | string | Sort order. |
| status | string | Filter by status. |
| summary | boolean | true returns a summary instead of full rows. |
| team | string | Team id or slug. |
| teamId | string | Team id or slug. |
| team_id | string | Team id or slug. |
| to | string | End of the date range (ISO 8601, UTC). |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/past" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2398526",
"eventId": "cs2-event-9356",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-2",
"stageName": null,
"startsAt": "2026-09-23T02:58:01.000Z",
"endsAt": "2026-09-23T03:00:58.213Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13857",
"team2Id": "cs2-team-12971",
"team1Name": "Iowa Stormboar",
"team2Name": "Wanted Goons",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-13857",
"lastSyncedAt": "2026-09-23T03:06:07.518Z",
"lastVerified": "2026-09-23T03:06:07.518Z",
"confidence": "high",
"event": {
"id": "cs2-event-9356",
"name": "ESL Challenger League Season 52 North America Cup 2",
"slug": "esl-challenger-league-season-52-north-america-cup-2",
"imageUrl": null,
"prizePool": 17500,
"currency": "USD",
"tier": "A",
"prestigeScore": 80,
"status": "live",
"region": "North America",
"startsAt": "2026-09-23T01:00:00.000Z",
"endsAt": "2026-09-29T23:59:59.000Z",
"eventId": "cs2-event-9356",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/738f1b6567ed5bf2813a2ef99b09ecfd.webp",
"bannerImageUrl": null
},
"team1": {
"id": "cs2-team-13857",
"name": "Iowa Stormboar",
"slug": "iowa-stormboar",
"teamTag": "IS",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c875a66adefc7e50e0b34ba4b97bed5c.webp",
"countryName": "United States",
"countryCode": "US",
"worldRanking": 177
},
"team2": {
"id": "cs2-team-12971",
"name": "Wanted Goons",
"slug": "wanted-goons",
"teamTag": "WG",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/2fd6ff3bc5a226dfa92640ab178d60cb.webp",
"countryName": null,
"countryCode": null,
"worldRanking": 230,
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7ff257ba3339dbf5bd82c1457bcd0e4c.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7ff257ba3339dbf5bd82c1457bcd0e4c.webp"
},
"maps": [
{
"id": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"mapNumber": 1,
"mapName": "Dust2",
"status": "completed",
"team1Score": null,
"team2Score": null,
"team1Halves": [
10,
3
],
"team2Halves": [
2,
0
],
"winnerTeamId": "cs2-team-13857",
"durationRounds": 15,
"lastSyncedAt": "2026-09-23T03:04:18.990Z",
"mapImageUrl": null,
"pickTeamId": null,
"objectiveStats": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"confidence": {
"…": "…"
},
"teamStats": [
"…"
],
"roundEvents": [
"…"
]
},
"resultType": "played",
"resultStatus": "completed",
"isForfeit": false,
"statsEligible": false,
"unavailableR
…Search matches
Find matches by team or event name.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
| q* | string | Search text. |
| query | string | Filter by query. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/search" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2398108",
"eventId": "cs2-event-8057",
"eventName": "StarLadder StarSeries Fall 2026",
"eventSlug": "starladder-starseries-fall-2026",
"stageName": "Grand final",
"startsAt": "2026-09-20T18:49:47.000Z",
"endsAt": null,
"bestOf": 5,
"status": "completed",
"team1Id": "cs2-team-11861",
"team2Id": "cs2-team-9565",
"team1Name": "Aurora",
"team2Name": "Vitality",
"team1Score": 1,
"team2Score": 3,
"winnerTeamId": "cs2-team-9565",
"lastSyncedAt": "2026-09-23T03:07:06.893Z",
"lastVerified": "2026-09-23T03:07:06.893Z",
"confidence": "high",
"event": {
"id": "cs2-event-8057",
"name": "StarLadder StarSeries Fall 2026",
"slug": "starladder-starseries-fall-2026",
"imageUrl": null,
"prizePool": 5000008,
"currency": "USD",
"tier": "A",
"prestigeScore": 75,
"status": "completed",
"region": null,
"startsAt": "2026-09-17T10:00:00.000Z",
"endsAt": "2026-09-20T23:59:59.000Z",
"eventId": "cs2-event-8057",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e41cca58363bb111170d38a8c053e424.webp",
"bannerImageUrl": null
},
"team1": {
"id": "cs2-team-11861",
"name": "Aurora",
"slug": "aurora",
"teamTag": "AURORA",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cf72686d65237eb4fe4365d8070d068.webp",
"countryName": "Türkiye",
"countryCode": "TR",
"worldRanking": 9
},
"team2": {
"id": "cs2-team-9565",
"name": "Vitality",
"slug": "vitality",
"teamTag": "VITALITY",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/0cd34febd1ad61ff888f21b55756003b.webp",
"countryName": "France",
"countryCode": "FR",
"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"
},
"maps": [
{
"id": "cs2-match-2398108-map-1",
"matchId": "cs2-match-2398108",
"mapNumber": 1,
"mapName": "Anubis",
"status": "completed",
"team1Score": null,
"team2Score": null,
"team1Halves": [
3,
1
],
"team2Halves": [
9,
4
],
"winnerTeamId": "cs2-team-9565",
"durationRounds": 17,
"lastSyncedAt": "2026-09-22T19:46:26.632Z",
"mapImageUrl": null,
"pickTeamId": null,
"objectiveStats": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"confidence": {
"…": "…"
},
"teamStats": [
"…"
],
"roundEvents": [
"…"
]
},
"resultType": "played",
"resultStatus": "completed",
"isForfeit": false,
"statsEligible": false,
"unavailableReason": null,
"dataAvailability": {
"playerStats": {
"…": "…"
}
},
…Upcoming matches
Scheduled matches, soonest first. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/upcoming" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2398521",
"eventId": "cs2-event-9356",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-2",
"stageName": "Upper bracket",
"startsAt": "2026-09-23T01:00:00.000Z",
"endsAt": null,
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13574",
"team2Id": "cs2-team-11336",
"team1Name": "Club 333",
"team2Name": "DETONATE",
"team1Score": null,
"team2Score": null,
"winnerTeamId": null,
"liveState": {
"teams": {
"team1Name": "Club 333",
"team2Name": "DETONATE",
"ctTeamName": "CT",
"terroristTeamName": "Terrorist"
},
"source": "live",
"status": "live",
"matchId": "cs2-match-2398521",
"roundEnds": [
{
"winner": "CT",
"eventId": "6a19b74f123044bfcbf42b460d5f21ec",
"payload": {
"…": "…"
},
"winType": "Target_Saved",
"eventType": "RoundEnd",
"observedAt": "2026-09-23T01:46:56.985Z",
"terroristScore": 6,
"webhookEligible": true,
"counterTerroristScore": 9
},
{
"winner": "TERRORIST",
"eventId": "c7f8fba3d7d5b7bbb7f1668449061212",
"payload": {
"…": "…"
},
"winType": "Terrorists_Win",
"eventType": "RoundEnd",
"observedAt": "2026-09-23T01:46:56.985Z",
"terroristScore": 6,
"webhookEligible": true,
"counterTerroristScore": 8
}
],
"bombEvents": [
{
"source": "live",
"eventId": "40d059e2be763195ef839829a670ee76",
"payload": {
"…": "…"
},
"bombSite": "A",
"tPlayers": 5,
"ctPlayers": 2,
"eventType": "BombPlanted",
"observedAt": "2026-09-23T01:46:56.985Z",
"playerName": "THOR",
"playerNick": "THOR",
"webhookEligible": true
},
{
"source": "live",
"eventId": "be03766dd75eeac21efad1573b3ad734",
"payload": {
"…": "…"
},
"bombSite": "A",
"tPlayers": 2,
"ctPlayers": 0,
"eventType": "BombPlanted",
"observedAt": "2026-09-23T01:46:56.985Z",
"playerName": "carn",
"playerNick": "carN",
"webhookEligible": true
}
],
"capturedAt": "2026-09-23T03:13:21.736Z",
"currentMap": "de_nuke",
"team1Score": 1,
"team2Score": 1,
"bombPlanted": false,
"playerStats": [],
"currentRound": 1,
"scoreSummary": null,
"winnerTeamId": null,
"responseCount": 2590,
"eventNamesSeen": [
"Assist",
"BombPlanted"
],
"roundTimeSeconds": null,
"mapImageUrl": null,
"pickTeamId": null,
"objectiveStats": {
"dataAvailable": true,
"unavailableReason": null,
"confidence": {
"plants": "high",
"defuses": "high",
"explosions": "high",
"clutchDefuse": "medium"
…Recent results
Finished matches with final series score and winner, newest first. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/recent" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2398526",
"eventId": "cs2-event-9356",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-2",
"stageName": null,
"startsAt": "2026-09-23T02:58:01.000Z",
"endsAt": "2026-09-23T03:00:58.213Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13857",
"team2Id": "cs2-team-12971",
"team1Name": "Iowa Stormboar",
"team2Name": "Wanted Goons",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-13857",
"lastSyncedAt": "2026-09-23T03:06:07.518Z",
"lastVerified": "2026-09-23T03:06:07.518Z",
"confidence": "high",
"event": {
"id": "cs2-event-9356",
"name": "ESL Challenger League Season 52 North America Cup 2",
"slug": "esl-challenger-league-season-52-north-america-cup-2",
"imageUrl": null,
"prizePool": 17500,
"currency": "USD",
"tier": "A",
"prestigeScore": 80,
"status": "live",
"region": "North America",
"startsAt": "2026-09-23T01:00:00.000Z",
"endsAt": "2026-09-29T23:59:59.000Z",
"eventId": "cs2-event-9356",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/738f1b6567ed5bf2813a2ef99b09ecfd.webp",
"bannerImageUrl": null
},
"team1": {
"id": "cs2-team-13857",
"name": "Iowa Stormboar",
"slug": "iowa-stormboar",
"teamTag": "IS",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c875a66adefc7e50e0b34ba4b97bed5c.webp",
"countryName": "United States",
"countryCode": "US",
"worldRanking": 177
},
"team2": {
"id": "cs2-team-12971",
"name": "Wanted Goons",
"slug": "wanted-goons",
"teamTag": "WG",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/2fd6ff3bc5a226dfa92640ab178d60cb.webp",
"countryName": null,
"countryCode": null,
"worldRanking": 230,
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7ff257ba3339dbf5bd82c1457bcd0e4c.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/7ff257ba3339dbf5bd82c1457bcd0e4c.webp"
},
"maps": [
{
"id": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"mapNumber": 1,
"mapName": "Dust2",
"status": "completed",
"team1Score": null,
"team2Score": null,
"team1Halves": [
10,
3
],
"team2Halves": [
2,
0
],
"winnerTeamId": "cs2-team-13857",
"durationRounds": 15,
"lastSyncedAt": "2026-09-23T03:04:18.990Z",
"mapImageUrl": null,
"pickTeamId": null,
"objectiveStats": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"confidence": {
"…": "…"
},
"teamStats": [
"…"
],
"roundEvents": [
"…"
]
},
"resultType": "played",
"resultStatus": "completed",
"isForfeit": false,
"statsEligible": false,
"unavailableR
…Match streams
Broadcast links for a match, when known.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/streams" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_match_streams",
"matchId": "cs2-match-2398526",
"streams": []
},
"meta": {
"count": 0,
"limit": 0,
"total": 0,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Match head-to-head
Previous meetings between the two teams in this match.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| limit | integer | Rows to return. Maximum 250; larger values are reduced to 250. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/head-to-head" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_team_h2h",
"team": {
"id": "cs2-team-13857",
"name": "Iowa Stormboar"
},
"opponent": {
"id": "cs2-team-12971",
"name": "Wanted Goons"
},
"totalMatches": 2,
"matchRecord": {
"teamWins": 2,
"opponentWins": 0,
"teamWinPercent": 100,
"opponentWinPercent": 0
},
"mapRecord": {
"teamWins": 3,
"opponentWins": 0,
"totalDecidedMaps": 3,
"teamWinPercent": 100,
"opponentWinPercent": 0
},
"mapBreakdown": [
{
"mapName": "Dust2",
"played": 1,
"teamWins": 1,
"opponentWins": 0,
"teamWinPercent": 100,
"opponentWinPercent": 0,
"roundsFor": 13,
"roundsAgainst": 2,
"roundDifferential": 11
},
{
"mapName": "Cache",
"played": 1,
"teamWins": 1,
"opponentWins": 0,
"teamWinPercent": 100,
"opponentWinPercent": 0,
"roundsFor": 16,
"roundsAgainst": 13,
"roundDifferential": 3
}
],
"recent5Matches": [
{
"matchId": "cs2-match-2398526",
"status": "completed",
"startsAt": "2026-09-23T02:58:01.000Z",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"bestOf": null,
"opponentId": "cs2-team-12971",
"opponentName": "Wanted Goons",
"teamScore": 2,
"opponentScore": 0,
"score": "2-0",
"result": "W",
"maps": [
{
"mapId": "cs2-match-2398526-map-1",
"mapNumber": 1,
"mapName": "Dust2",
"status": "completed",
"teamScore": 13,
"opponentScore": 2,
"score": "13-2",
"result": "W",
"winnerTeamId": "cs2-team-13857",
"roundsFor": 13,
"roundsAgainst": 2
},
{
"mapId": "cs2-match-2398526-map-2",
"mapNumber": 2,
"mapName": "Cache",
"status": "completed",
"teamScore": 16,
"opponentScore": 13,
"score": "16-13",
"result": "W",
"winnerTeamId": "cs2-team-13857",
"roundsFor": 16,
"roundsAgainst": 13
}
]
},
{
"matchId": "cs2-match-2397468",
"status": "completed",
"startsAt": "2026-09-05T01:00:00.000Z",
"eventName": "NSTLGA League Season 2",
"bestOf": 1,
"opponentId": "cs2-team-12971",
"opponentName": "Wanted Goons",
"teamScore": 1,
"opponentScore": 0,
"score": "1-0",
"result": "W",
"maps": [
{
"mapId": "cs2-match-2397468-map-1",
"mapNumber": 1,
"mapName": "Mirage",
"status": "completed",
"teamScore": 13,
"opponentScore": 7,
"score": "13-7",
"result": "W",
"winnerTeamId": "cs2-team-13857",
"roundsFor": 13,
"roundsAgainst": 7
}
]
}
],
"matches": [
{
"matchId": "cs2-match-2398526",
"status": "completed",
"startsAt": "2026-09-23T02:58:01.000Z",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"bestOf": null,
"opponentId": "cs2-team-12971",
"opponentName": "Wanted Goons",
"t
…Match demos
Demo availability per map, and whether each demo has been parsed into round data.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| limit | integer | Rows to return. Maximum 100; larger values are reduced to 100. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/demos" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"dataQuality": "unavailable",
"message": "Demo archive availability has not been indexed for this CS2 match yet."
},
"meta": {
"count": 0,
"dataAvailable": false,
"limit": 0,
"total": 0,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Match maps
Maps played or scheduled in a match: map name, score, halves and winner.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/maps" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_map",
"id": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"mapNumber": 1,
"mapName": "Dust2",
"status": "completed",
"team1Score": 13,
"team2Score": 2,
"team1Halves": [
10,
3
],
"team2Halves": [
2,
0
],
"winnerTeamId": "cs2-team-13857",
"durationRounds": 15,
"lastSyncedAt": "2026-09-23T03:04:18.990Z",
"playerStats": [
{
"id": "live-source-match-2398526-map-1-H0NeST",
"mapId": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"playerId": "cs2-player-24045",
"playerName": "H0NeST",
"teamId": "cs2-team-13857",
"teamName": "Iowa Stormboar",
"kills": 16,
"deaths": 9,
"assists": 3,
"plusMinus": 7,
"adr": null,
"kast": null,
"rating": 1.41,
"ratingVersion": "source_rating_3_0",
"headshots": 11,
"headshotPercent": null,
"firstKills": 1,
"firstDeaths": 1,
"source": "live",
"lastSyncedAt": "2026-09-23T02:57:57.779Z",
"mapNameCanonical": null,
"imageUrl": null,
"mapImageUrl": null,
"…": "7 more fields"
},
{
"id": "live-source-match-2398526-map-1-Johan",
"mapId": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"playerId": "cs2-player-24467",
"playerName": "Johan",
"teamId": "cs2-team-12971",
"teamName": "Wanted Goons",
"kills": 3,
"deaths": 14,
"assists": 2,
"plusMinus": -11,
"adr": null,
"kast": null,
"rating": 0.41,
"ratingVersion": "source_rating_3_0",
"headshots": 2,
"headshotPercent": null,
"firstKills": 1,
"firstDeaths": 2,
"source": "live",
"lastSyncedAt": "2026-09-23T02:57:58.661Z",
"mapNameCanonical": null,
"imageUrl": null,
"mapImageUrl": null,
"…": "7 more fields"
}
],
"bombEvents": [],
"bombStats": [],
"weaponAggregates": [],
"mapImageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/maps/dust2.png",
"pickTeamId": "cs2-team-12971",
"objectiveStats": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"confidence": {
"plants": "high",
"defuses": "high",
"explosions": "high",
"clutchDefuse": "medium"
},
"teamStats": [],
"roundEvents": []
},
"availableSubresources": [
"player_stats"
],
"unavailableSubresources": [
"objective_stats"
],
"unavailableFields": {},
"dataQuality": "partial",
"…": "12 more fields"
},
{
"entityType": "cs2_map",
"id": "cs2-match-2398526-map-2",
"matchId": "cs2-match-2398526",
"mapNumber": 2,
"mapName": "Cache",
"status": "completed",
"team1Score": 16,
"team2Score": 13,
"team1Halves": [
5,
7
],
"team2Halves": [
7,
5
],
"winnerTeamId": null,
"durationRounds": null,
"lastSyncedAt": "2026-09-23T03:04:28.968Z",
"playerStats": [
{
…Match games
The match's maps as games, each with the `gameId` used by `/cs2/games/{gameId}`.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/games" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"id": "cs2-match-2398526-map-1",
"entityType": "cs2_game",
"matchId": "cs2-match-2398526",
"mapNumber": 1,
"map": "Dust2",
"pickTeamId": null,
"winnerTeamId": "cs2-team-13857",
"score": {
"team1": 13,
"team2": 2
},
"halfScores": {
"team1": [
10,
3
],
"team2": [
2,
0
]
},
"team1Halves": [
10,
3
],
"team2Halves": [
2,
0
],
"overtime": null,
"durationRounds": 15,
"duration": {
"rounds": 15,
"source": "stored"
},
"status": "completed",
"resultType": "played",
"resultStatus": "completed",
"isForfeit": false,
"statsEligible": true,
"unavailableReason": null,
"playerStatsAvailable": true,
"playerStats": [
{
"playerId": "cs2-player-24045",
"playerName": "H0NeST",
"teamId": "cs2-team-13857",
"teamName": "Iowa Stormboar",
"kills": 16,
"deaths": 9,
"assists": 3,
"plusMinus": 7,
"adr": null,
"kast": null,
"rating": 1.41,
"ratingVersion": "source_rating_3_0",
"headshots": 11,
"headshotPercent": null,
"openingKills": 1,
"openingDeaths": 1,
"rating3Profile": {
"rating3": null,
"rating3Available": false,
"subratings": {
"…": "…"
},
"openingDuels": {
"…": "…"
},
"unavailableSubratings": [
"…"
],
"rating2": 1.41
},
"source": "live",
"lastSyncedAt": "2026-09-23T02:57:57.779Z"
},
{
"playerId": "cs2-player-24467",
"playerName": "Johan",
"teamId": "cs2-team-12971",
"teamName": "Wanted Goons",
"kills": 3,
"deaths": 14,
"assists": 2,
"plusMinus": -11,
"adr": null,
"kast": null,
"rating": 0.41,
"ratingVersion": "source_rating_3_0",
"headshots": 2,
"headshotPercent": null,
"openingKills": 1,
"openingDeaths": 2,
"rating3Profile": {
"rating3": null,
"rating3Available": false,
"subratings": {
"…": "…"
},
"openingDuels": {
"…": "…"
},
"unavailableSubratings": [
"…"
],
"rating2": 0.41
},
"source": "live",
"lastSyncedAt": "2026-09-23T02:57:58.661Z"
}
],
"roundsAvailable": false,
"objectiveStats": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"confidence": {
"plants": "high",
"defuses": "high",
"explosions": "high",
"clutchDefuse": "medium"
},
"teamStats": [],
"roundEvents": []
},
"…": "4 more fields"
},
{
"id": "cs2-match-2398526-map-2",
"entityType": "cs2_game",
"matchId": "cs2-match-2398526",
"mapNumber": 2,
"map": "Cache",
"pickTeamId": null,
"winnerTeamId": null,
"score": {
"team1": 16,
"team2": 13
},
…Match player stats
Per-player stats for each map of a match: kills, deaths, ADR, KAST and rating. These routes are equivalent; use whichever reads best.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/player-stats" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_player_stat",
"id": "live-source-match-2398526-map-1-H0NeST",
"mapId": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"playerId": "cs2-player-24045",
"playerName": "H0NeST",
"teamId": "cs2-team-13857",
"teamName": "Iowa Stormboar",
"kills": 16,
"deaths": 9,
"assists": 3,
"plusMinus": 7,
"adr": null,
"kast": null,
"rating": 1.41,
"ratingVersion": "source_rating_3_0",
"headshots": 11,
"headshotPercent": null,
"firstKills": 1,
"firstDeaths": 1,
"source": "live",
"lastSyncedAt": "2026-09-23T02:57:57.779Z",
"player": {
"id": "cs2-player-24045",
"nickname": "H0NeST",
"slug": "h0nest",
"realName": "Nazar Stefinko",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f2972c1aaaea60879f3c33ed6058b227.webp",
"countryName": "Ukraine",
"countryCode": "UA",
"age": 18,
"rating": 1.26,
"mapsPlayed": 44,
"careerStats": {
"rating": 1.31,
"window": "past_3_months",
"opening": null,
"sniping": null,
"trading": null,
"utility": null,
"entrying": null,
"clutching": null,
"firepower": null,
"mapsPlayed": 50,
"prizeMoney": 3100,
"careerRating": 1.31,
"windowRating": null,
"missingFields": [
"age"
],
"profileStatus": "partial",
"lastKnownRating": 1.31,
"lastActiveTournament": "LiveFISSURE Playground 3",
"profileImageStatus": "success",
"profileImageClaimedAt": "2026-06-26T02:34:40.140807+02:00"
},
"currentTeamId": "cs2-team-13857",
"status": "inactive",
"primaryRole": "entry",
"roleConfidence": "medium",
"statusUpdatedAt": "2026-07-05T00:40:56.174Z",
"lastSyncedAt": "2026-09-23T03:04:06.671Z",
"lastVerified": "2026-09-23T03:04:06.671Z"
},
"team": {
"id": "cs2-team-13857",
"name": "Iowa Stormboar",
"slug": "iowa-stormboar",
"teamTag": "IS",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/c875a66adefc7e50e0b34ba4b97bed5c.webp",
"countryName": "United States",
"countryCode": "US",
"region": "Americas",
"worldRanking": 177,
"lastSyncedAt": "2026-09-23T03:09:17.179Z",
"lastVerified": "2026-09-23T03:09:17.179Z",
"confidence": "high"
},
"…": "18 more fields"
},
{
"entityType": "cs2_player_stat",
"id": "live-source-match-2398526-map-1-Scorchyy",
"mapId": "cs2-match-2398526-map-1",
"matchId": "cs2-match-2398526",
"playerId": "cs2-player-24528",
"playerName": "Scorchyy",
"teamId": "cs2-team-13857",
"teamName": "Iowa Stormboar",
"kills": 12,
"deaths": 6,
"assists": 1,
"plusMinus": 6,
"adr": null,
"kast": null,
"rating": 1.46,
"ratingVersion": "source_rating_3_0",
"headshots": 4,
"headshotPercent": null,
"firstKills": 3,
"firstDeaths": 1,
"source": "live",
"lastSyncedAt": "2026-09-23T02:57:57.477Z",
"player": {
"id": "cs2-player-24528",
"nickname": "Scorchyy",
"slug": "scorchyy",
"rea
…Match lineup stats
Each team's lineup for the match with recent form stats.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| windowDays | integer | Look-back window in days. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/lineup-stats" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_match_lineup_stats",
"matchId": "cs2-match-2398526",
"windowDays": 90,
"dataAvailable": true,
"teams": [
{
"teamId": "cs2-team-13857",
"players": [
{
"playerId": "cs2-player-24045",
"teamId": "cs2-team-13857",
"nickname": "H0NeST",
"name": "Nazar Stefinko",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f2972c1aaaea60879f3c33ed6058b227.webp",
"slug": "h0nest",
"countryName": "Ukraine",
"countryCode": "UA",
"role": "entry",
"windowDays": 90,
"dataAvailable": true,
"maps": 42,
"matches": 20,
"rating": 1.21,
"adr": 95.7,
"kast": 0.758,
"kdRatio": 1.14,
"kills": 762,
"deaths": 666,
"assists": 169,
"unavailableSubratings": [
"…"
]
},
{
"playerId": "cs2-player-23690",
"teamId": "cs2-team-13857",
"nickname": "TyRa",
"name": "Ty Aron",
"imageUrl": null,
"slug": "tyra",
"countryName": "United States",
"countryCode": "US",
"role": "entry",
"windowDays": 90,
"dataAvailable": true,
"maps": 33,
"matches": 16,
"rating": 1,
"adr": 77.4,
"kast": 0.574,
"kdRatio": 0.89,
"kills": 456,
"deaths": 515,
"assists": 117,
"unavailableSubratings": [
"…"
]
}
]
},
{
"teamId": "cs2-team-12971",
"players": [
{
"playerId": "cs2-player-24664",
"teamId": "cs2-team-12971",
"nickname": "killerPandas",
"name": "Dylan Pellegrino",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f610dd85b90e96df36b58b51a2587384.png",
"slug": "killerpandas",
"countryName": "United States",
"countryCode": "US",
"role": "AWPer",
"windowDays": 90,
"dataAvailable": true,
"maps": 16,
"matches": 8,
"rating": 1,
"adr": 73.1,
"kast": 0.669,
"kdRatio": 0.97,
"kills": 232,
"deaths": 238,
"assists": 29,
"unavailableSubratings": [
"…"
]
},
{
"playerId": "cs2-player-26098",
"teamId": "cs2-team-12971",
"nickname": "hibui",
"name": "Hunter Conklin",
"imageUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/e529872541a36b595ef27153a38c8dd1.webp",
"slug": "hibui",
"countryName": "United States",
"countryCode": "US",
"role": "support",
"windowDays": 90,
"dataAvailable": true,
"maps": 18,
"matches": 9,
"rating": 0.95,
"adr": 65.6,
"kast": 0.679,
"kdRatio": 0.87,
"kills": 221,
"deaths": 255,
"assists": 51,
"unavailableSubratings": [
"…"
]
}
]
}
],
…Match details
One match: event, teams, series score, maps, veto and which sub-resources have data.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_match",
"id": "cs2-match-2398526",
"eventId": "cs2-event-9356",
"eventName": "ESL Challenger League Season 52 North America Cup 2",
"eventSlug": "esl-challenger-league-season-52-north-america-cup-2",
"stageName": "Upper bracket",
"startsAt": "2026-09-23T02:58:01.000Z",
"endsAt": "2026-09-23T03:00:58.213Z",
"bestOf": 3,
"status": "completed",
"team1Id": "cs2-team-13857",
"team2Id": "cs2-team-12971",
"team1Name": "Iowa Stormboar",
"team2Name": "Wanted Goons",
"team1Score": 2,
"team2Score": 0,
"winnerTeamId": "cs2-team-13857",
"liveState": {
"teams": {
"team1Name": "Iowa Stormboar",
"team2Name": "Wanted Goons",
"ctTeamName": "Wanted Goons",
"terroristTeamName": "Iowa Stormboar"
},
"source": "live",
"status": "live",
"matchId": "cs2-match-2398526",
"roundEnds": [
{
"winner": "TERRORIST",
"eventId": "645db6f393fca49e22e4bf48eb2f213d",
"payload": {
"winner": "TERRORIST",
"winType": "Terrorists_Win",
"terroristScore": 16,
"counterTerroristScore": 13
},
"winType": "Terrorists_Win",
"eventType": "RoundEnd",
"observedAt": "2026-09-23T02:59:52.534Z",
"terroristScore": 16,
"webhookEligible": true,
"counterTerroristScore": 13
},
{
"winner": "TERRORIST",
"eventId": "9165facec222a504457850548c7e5020",
"payload": {
"winner": "TERRORIST",
"winType": "Terrorists_Win",
"terroristScore": 15,
"counterTerroristScore": 13
},
"winType": "Terrorists_Win",
"eventType": "RoundEnd",
"observedAt": "2026-09-23T02:59:52.535Z",
"terroristScore": 15,
"webhookEligible": true,
"counterTerroristScore": 13
}
],
"bombEvents": [
{
"source": "live",
"eventId": "3d6e19c0feb325ab753bc9cefe47430a",
"payload": {
"bombSite": "A",
"tPlayers": 2,
"ctPlayers": 1,
"playerName": "TyRa",
"playerNick": "TyRa"
},
"bombSite": "A",
"tPlayers": 2,
"ctPlayers": 1,
"eventType": "BombPlanted",
"observedAt": "2026-09-23T02:59:52.534Z",
"playerName": "TyRa",
"playerNick": "TyRa",
"webhookEligible": true
},
{
"source": "live",
"eventId": "d5e85dd74809ea07557b244c6ab64254",
"payload": {
"bombSite": "B",
"tPlayers": 4,
"ctPlayers": 3,
"playerName": "Valter0k",
"playerNick": "Valter0k"
},
"bombSite": "B",
"tPlayers": 4,
"ctPlayers": 3,
"eventType": "BombPlanted",
"observedAt": "2026-09-23T02:59:52.535Z",
"playerName": "Valter0k",
"playerNick": "Valter0k",
"webhookEligible": true
}
],
"capturedAt": "2026-09-23T02:59:52.535Z",
"currentMap": "de_cache",
"team1Score": 16,
"team2Score": 13,
"bombPlanted": false,
"playerStats": [
{
"hp": 0,
"adr": 94.03448275862068,
"name": "H0NeST",
"nick": "H0NeST",
…List matches
Matches with filters for status, team, event and date range.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| eventId | string | Filter by eventId. |
| event_id | string | Filter by event_id. |
| fields | string | Comma-separated list of fields to return. |
| from | string | Start of the date range (ISO 8601, UTC). |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
| offset | integer | Rows to skip, for paging. |
| order | string | Filter by order. |
| page | integer | Page number, starting at 1. |
| playerId | string | Player id or slug. |
| player_id | string | Player id or slug. |
| sort | string | Sort order. |
| status | string | Filter by status. |
| summary | boolean | true returns a summary instead of full rows. |
| team | string | Team id or slug. |
| teamId | string | Team id or slug. |
| team_id | string | Team id or slug. |
| to | string | End of the date range (ISO 8601, UTC). |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": [
{
"entityType": "cs2_match",
"id": "cs2-match-2397941",
"eventId": "cs2-event-9256",
"eventName": "Stake Ranked Episode",
"eventSlug": "stake-ranked-episode-4",
"stageName": null,
"startsAt": "2026-10-01T17:30:00.000Z",
"endsAt": null,
"bestOf": 3,
"status": "upcoming",
"team1Id": "cs2-team-6667",
"team2Id": "cs2-team-7969",
"team1Name": "FaZe",
"team2Name": "Nemiga",
"team1Score": null,
"team2Score": null,
"winnerTeamId": null,
"lastSyncedAt": "2026-09-23T03:06:07.226Z",
"lastVerified": "2026-09-23T03:06:07.226Z",
"confidence": "high",
"event": {
"id": "cs2-event-9256",
"name": "Stake Ranked Episode",
"slug": "stake-ranked-episode-4",
"imageUrl": null,
"prizePool": 100000,
"currency": "USD",
"tier": "B",
"prestigeScore": 55,
"status": "upcoming",
"region": null,
"startsAt": "2026-10-01T00:00:00.000Z",
"endsAt": "2026-10-04T23:59:59.000Z",
"eventId": "cs2-event-9256",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/21396af31d05530bf62f7baa70ee6f59.webp",
"bannerImageUrl": null
},
"team1": {
"id": "cs2-team-6667",
"name": "FaZe",
"slug": "faze",
"teamTag": "FAZE",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/2c2c7af6d0a6aad17cd9e46ce44fd133.webp",
"countryName": "Slovakia",
"countryCode": "SK",
"worldRanking": 13,
"alternateLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/2653bc97908a106127134d6d94d50157.webp",
"darkUiLogoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/2653bc97908a106127134d6d94d50157.webp"
},
"team2": {
"id": "cs2-team-7969",
"name": "Nemiga",
"slug": "nemiga",
"teamTag": "NEMIGA",
"logoUrl": "https://api.citoapi.com/api/v1/public/images/cs2/logos/f2950ddfe847711229d534feda9e6c0a.webp",
"countryName": "Russia",
"countryCode": "RU",
"worldRanking": 36
},
"maps": [
{
"id": "cs2-match-2397941-map-1",
"matchId": "cs2-match-2397941",
"mapNumber": 1,
"mapName": "TBA",
"status": "upcoming",
"team1Score": null,
"team2Score": null,
"team1Halves": null,
"team2Halves": null,
"winnerTeamId": null,
"durationRounds": null,
"lastSyncedAt": "2026-09-18T05:59:15.176Z",
"mapImageUrl": null,
"pickTeamId": null,
"objectiveStats": {
"dataAvailable": false,
"unavailableReason": "not_yet_indexed",
"confidence": {
"…": "…"
},
"teamStats": [
"…"
],
"roundEvents": [
"…"
]
},
"resultType": "not_played",
"resultStatus": "upcoming",
"isForfeit": false,
"statsEligible": false,
"unavailableReason": "not_played",
"dataAvailability": {
"playerStats": {
"…": "…"
}
}
},
{
"id": "cs2-match-2397941-map-2",
"matchId": "cs2-match-2397941",
"mapNumber": 2,
"mapName": "TBA",
…Head-to-head pairs
Team pairs that have played each other, for building head-to-head pages.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Maximum 500; larger values are reduced to 500. |
| minMeetings | string | Filter by minMeetings. |
| min_meetings | string | Filter by min_meetings. |
| windowDays | integer | Look-back window in days. |
| window_days | integer | Look-back window in days. |
Example
curl "https://api.citoapi.com/api/v1/cs2/h2h/pairs" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"entityType": "cs2_h2h_pair",
"pairs": [
{
"teamA": {
"id": "cs2-team-4494",
"name": "MOUZ",
"slug": "mouz"
},
"teamB": {
"id": "cs2-team-9565",
"name": "Vitality",
"slug": "vitality"
},
"meetings": 17,
"lastMeetingAt": "2026-09-05T16:45:00.000Z"
},
{
"teamA": {
"id": "cs2-team-8113",
"name": "Sharks",
"slug": "team-8113"
},
"teamB": {
"id": "cs2-team-9996",
"name": "9z",
"slug": "9z"
},
"meetings": 17,
"lastMeetingAt": "2026-05-27T16:45:00.000Z"
}
],
"dataAvailable": true
},
"meta": {
"count": 2,
"limit": 2,
"minMeetings": 2,
"windowDays": 730,
"dataAvailable": true,
"total": 2,
"page": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}Try the CS2 Matches API
Run a real request with your key, then wire the same call into your app. The free plan includes 500 requests a month.
curl "https://api.citoapi.com/api/v1/cs2/matches/results?limit=5" \
-H "x-api-key: YOUR_API_KEY"