ErrorCS2 API errors

CS2 match history not found: what to call instead.

The Steam Web API has no match history endpoint for CS2; GetMatchHistory exists only for Dota 2. For your own games, Steam offers a share-code walk that needs your game authentication code. For professional match history, use a CS2 API's team and player match endpoints.

  • No CS2 GetMatchHistory
  • Own games: share codes
  • Pro games: CS2 API
GET /cs2/matches/results?limit=2200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/matches/results?limit=2" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": [    {      "id": "cs2-match-2398974",      "eventName": "ROG JOURNEY Autumn 2026",      "bestOf": 3,      "team1Name": "Ninjas in Pyjamas",      "team2Name": "Eternal Fire",      "score": { "team1": 2, "team2": 0 }    },    {      "id": "cs2-match-2398896",      "eventName": "FOX Legacy Season 1",      "bestOf": 3,      "team1Name": "SAW",      "team2Name": "Lazer Cats",      "score": { "team1": 2, "team2": 0 }    }    ...  ]}

The error

What you see
GET https://api.steampowered.com/ICSGOPlayers_730/GetMatchHistory/v1/
404 Not Found

Why is there no CS2 match history endpoint?

In Valve's catalogue of Steam Web API methods, GetMatchHistory exists only under the Dota 2 interfaces (IDOTA2Match_570). CS2 never got an equivalent, so any URL that guesses one returns 404.

How do I get my own CS2 match history?

Call ICSGOPlayers_730/GetNextMatchSharingCode with your Steam ID, your game authentication code (steamidkey, created in Steam's help pages) and the share code of one known match. It returns the next code; repeat until it returns n/a. Each code then has to be decoded and its demo downloaded for stats.

Python: walk your share codes
import requests

def share_codes(key, steamid, auth_code, known_code):
    url = "https://api.steampowered.com/ICSGOPlayers_730/GetNextMatchSharingCode/v1/"
    code = known_code
    while True:
        r = requests.get(url, params={"key": key, "steamid": steamid,
                                      "steamidkey": auth_code, "knowncode": code}, timeout=10)
        if r.status_code == 202:          # some clients see this for "no newer match"
            return
        r.raise_for_status()
        nxt = r.json()["result"]["nextcode"]
        if nxt == "n/a":
            return
        yield nxt
        code = nxt

How does the CS2 API make this error impossible?

Professional matches are not in Steam at all, so a 404 on a guessed Steam URL is the end of that road. The CS2 API keeps them indexed by team, player and tournament: the history is one request, with scores, events and maps.

Python: a team's and a player's recent matches
import os, requests

H = {"x-api-key": os.environ["CITO_API_KEY"]}
API = "https://api.citoapi.com/api/v1/cs2"

team = requests.get(f"{API}/teams/vitality/results", headers=H, params={"limit": 10}).json()["data"]
player = requests.get(f"{API}/players/zywoo/matches", headers=H, params={"limit": 10}).json()["data"]
for m in team:
    print(m["startsAt"][:10], m["team1Name"], m["team1Score"], "-", m["team2Score"], m["team2Name"])
Latest finished matches from GET /cs2/matches/results. Fetched from the production CS2 API on 3 Oct 2026, 19:54 UTC.
MatchScoreEventFormat
Ninjas in Pyjamas vs Eternal Fire2–0ROG JOURNEY Autumn 2026Bo3
SAW vs Lazer Cats2–0FOX Legacy Season 1Bo3
Lavked vs Nexus0–2CCT 2026 Europe Series 10Bo3
FURIA vs BETBOOM2–0ESL Pro League Season 24Bo3
Wildcard vs INFINITE0–2FOX Legacy Season 1Bo3
Astralis vs fnatic2–0Stake Ranked Episode 4Bo3
G2 vs Natus Vincere0–2ESL Pro League Season 24Bo3
Mira vs Bounty Hunters0–2CCT 2026 South America Series 6Bo3
MOUZ vs M802–0ESL Pro League Season 24Bo3
Luminosity vs Nemiga0–2Stake Ranked Episode 4Bo3

Frequently asked questions

Something missing? Email support@citoapi.com.

Does the Steam API have CS2 match history?

No. GetMatchHistory exists only for Dota 2. CS2 has GetNextMatchSharingCode, which returns your own share codes one at a time.

What is a CS2 game authentication code?

A code you create in Steam's help pages that lets an app read your match share codes through GetNextMatchSharingCode. Treat it like a password.

Where do I get pro CS2 match history?

From a CS2 esports API. The CS2 API returns history per team (/cs2/teams/{slug}/results), per player (/cs2/players/{slug}/matches) and per tournament.

See pricing

Build CS2 live score apps

Free is for building and testing. Paid plans add commercial use, real-time live data and the full archive.