CS2 API errors, explained and fixed.
Each page below takes one error message CS2 developers search for, explains what it means and why it happens, and gives a fix with complete code. Most Steam-side errors go away entirely once pro match data comes from a CS2 API instead.
- 10 error references
- Code you can paste
- 500 free requests / month
{ "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 } } ... ]}Which error are you seeing?
Errors from api.steampowered.com (403, 429, empty results, no match history) come from Valve's Steam Web API, which was never built for esports data. Errors with a code like INVALID_API_KEY come from the CS2 API. Demo and share code errors come from your own parsing code.
| Message or status | Comes from | Page |
|---|---|---|
| 401 MISSING_API_KEY / INVALID_API_KEY | CS2 API | Invalid API key (401) |
| Blocked by CORS policy | Your browser | CORS error on browser requests |
| WebSocket closed during a match | Network or client | WebSocket disconnects mid-match |
| 429 Too Many Requests | Steam Web API | Steam API 429 Too Many Requests |
| Over 100,000 calls in a day | Steam Web API | Steam Web API rate limit exceeded |
| 403 Forbidden | Steam Web API | Steam API 403 Forbidden |
| "n/a" or no match details | Steam Web API | Steam Web API empty match data |
| No GetMatchHistory for CS2 | Steam Web API | CS2 match history not found |
| Invalid share code | Your decoder | CS2 share code decode failed |
| UnknownFile / Source1DemoError | Your demo parser | CS2 demo parse failed |
Every page in CS2 API errors
- Invalid API key (401)MISSING_API_KEY and INVALID_API_KEY: the header, the key and the fix.
- CORS error on browser requestsWhy the browser blocks the call, and the small proxy that fixes it.
- WebSocket disconnects mid-matchHeartbeats, reconnect with backoff, and state back on resubscribe.
- Steam Web API rate limit exceededThe daily call limit on a Steam key and what to do when you hit it.
- Steam API 429 Too Many RequestsThrottled by Steam: backoff that works and how to stop triggering it.
- Steam API 403 ForbiddenBad key, wrong auth code or a private profile: find which one.
- Steam Web API empty match dataWhy Steam returns no CS2 match details, and where match data lives.
- CS2 match history not foundThere is no Steam match history endpoint for CS2. What to call instead.
- CS2 share code decode failedThe share code alphabet, the decode algorithm and the usual mistakes.
- CS2 demo parse failedWrong format, a compressed file, or a parser behind the latest patch.
Frequently asked questions
Something missing? Email support@citoapi.com.
Why do Steam Web API calls fail for CS2 match data?
The Steam Web API has no endpoints for professional CS2 matches, scores or player stats. Its CS2 interfaces cover share codes for your own games, servers and items, so most CS2 data errors trace back to asking Steam for data it does not have.
Where do I report a CS2 API error that is not listed?
Email support@citoapi.com with the request path and the full JSON error body. Every CS2 API error response includes a code, a message and a docs link.
Fix it at the source
- CS2 API documentationAuth, the response envelope, errors, rate limits and every endpoint.
- CS2 API tutorialsStep-by-step guides with complete, runnable code.
- Steam CS2 APIWhat Valve's Steam Web API covers for CS2, and the match-data gap.
- How to get CS2 match dataResults, maps and player lines for any pro match in three requests.
Build CS2 live score apps
Free is for building and testing. Paid plans add commercial use, real-time live data and the full archive.