🎮 CS2 API Documentation

Complete reference for the CS2 API at csgo.bzzoiro.com. Free, no rate limits, no credit card.

Overview

The CS2 API provides read-only access to Counter-Strike data including tournaments, teams, players, matches with per-map results, live scores, and ML predictions. 400+ teams and 2,800+ matches. All responses are JSON.

Base URLhttps://csgo.bzzoiro.com/api/
FormatJSON
AuthToken-based (see below)
MethodsGET only (read-only API)
PriceFree
Authentication

Every API request requires a token. Get yours by registering a free account on sports.bzzoiro.com.

Note: Your API key from sports.bzzoiro.com works here too. One account, all platforms.

Include the token in the Authorization header:

Authorization: Token YOUR_API_KEY

Example:

curl -H "Authorization: Token abc123def456" https://csgo.bzzoiro.com/api/tournaments/
Unauthenticated requests return 401 Unauthorized.
Error Responses
CodeMeaningExample
401UnauthorizedMissing or invalid token
404Not FoundInvalid endpoint or object ID
500Server ErrorUnexpected server issue

Endpoints

GET/api/tournaments/

Returns CS2 tournaments. Cached 5 min.

GET/api/teams/

Returns CS2 teams. 400+ teams. Cached 5 min.

Query parameters
ParamTypeRequiredDescription
searchstringNoSearch by name
countrystringNoFilter by country code
GET/api/players/

Returns CS2 player profiles. Cached 5 min.

Query parameters
ParamTypeRequiredDescription
teamintegerNoFilter by team id
searchstringNoSearch by nickname
GET/api/matches/

Returns CS2 matches with map results. Defaults to next 7 days. Cached 2 min.

Query parameters
ParamTypeRequiredDescription
date_fromdateNoStart date (YYYY-MM-DD)
date_todateNoEnd date (YYYY-MM-DD)
tournamentintegerNoFilter by tournament id
teamintegerNoFilter by team id
statusstringNonotstarted, inprogress, finished
Key response fields
FieldTypeDescription
home_team / away_teamobjectNested team objects
home_score / away_scoreintegerMaps won
best_ofintegerBo1, Bo3, Bo5
mapsarrayPer-map results [{map_name, home_score, away_score, halves}]
GET/api/live/

Returns only live CS2 matches with real-time scores and current map progress. Cached 30 sec.

Query parameters

None. Returns all currently live matches.

Key response fields
FieldTypeDescription
home_team / away_teamobjectNested team objects
home_score / away_scoreintegerMaps won
best_ofintegerBo1, Bo3, Bo5
mapsarrayPer-map results including current map in progress
GET/api/predictions/

Returns ML predictions for CS2 matches. Defaults to upcoming. Cached 2 min.

Query parameters
ParamTypeRequiredDescription
upcomingbooleanNoDefault true. Set false for past.
date_fromdateNoStart date (YYYY-MM-DD)
date_todateNoEnd date (YYYY-MM-DD)
Key response fields
FieldTypeDescription
home_win_prob / away_win_probfloatWin probability (0-1)
predicted_winnerstringhome or away
confidencefloatModel confidence

Guides

Quick Start
  1. Register: Create a free account at sports.bzzoiro.com/register/
  2. Get your token: After registering you'll find your API token on your dashboard. The same token works across all platforms.
  3. Make a request:
    curl -H "Authorization: Token YOUR_API_KEY" https://csgo.bzzoiro.com/api/matches/
  4. Explore: Use the endpoints above to fetch teams, players, matches, live scores, and predictions.
Python Example
import requests

API_TOKEN = "YOUR_API_KEY"
BASE_URL = "https://csgo.bzzoiro.com/api"
headers = {"Authorization": f"Token {API_TOKEN}"}

# Get upcoming predictions
resp = requests.get(f"{BASE_URL}/predictions/", headers=headers)
data = resp.json()

for pred in data["results"]:
    match = pred["match"]
    print(f"{match['home_team']['name']} vs {match['away_team']['name']}")
    print(f"  Winner: {pred['predicted_winner']} "
          f"(Home: {pred['home_win_prob']:.2f} "
          f"Away: {pred['away_win_prob']:.2f})")
    print(f"  Confidence: {pred['confidence']:.2f}")
    print()

# Get upcoming matches with map details
matches = requests.get(
    f"{BASE_URL}/matches/?status=notstarted",
    headers=headers
).json()
for match in matches["results"]:
    print(f"{match['home_team']['name']} vs {match['away_team']['name']}")
    print(f"  Best of {match['best_of']}")
    print()

# Get live matches
live = requests.get(f"{BASE_URL}/live/", headers=headers).json()
for match in live["results"]:
    print(f"LIVE {match['home_team']['name']} {match['home_score']}-"
          f"{match['away_score']} {match['away_team']['name']}")
    for m in match.get("maps", []):
        print(f"  {m['map_name']}: {m['home_score']}-{m['away_score']}")

100% free · Unlimited requests · No credit card required

Get Your Free API Key