🎮 CS2 API Documentation
Complete reference for the CS2 API at csgo.bzzoiro.com. Free, no rate limits, no credit card.
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 URL | https://csgo.bzzoiro.com/api/ |
| Format | JSON |
| Auth | Token-based (see below) |
| Methods | GET only (read-only API) |
| Price | Free |
Every API request requires a token. Get yours by registering a free account on sports.bzzoiro.com.
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/
401 Unauthorized.
All list endpoints return paginated results with 50 items per page.
{
"count": 85,
"next": "https://csgo.bzzoiro.com/api/matches/?page=2",
"previous": null,
"results": [ ... ]
}
| Field | Type | Description |
|---|---|---|
count | integer | Total number of results |
next | string | null | URL to the next page |
previous | string | null | URL to the previous page |
results | array | Array of objects for the current page |
Use ?page=N to navigate pages.
| Code | Meaning | Example |
|---|---|---|
401 | Unauthorized | Missing or invalid token |
404 | Not Found | Invalid endpoint or object ID |
500 | Server Error | Unexpected server issue |
Endpoints
Returns CS2 tournaments. Cached 5 min.
Returns CS2 teams. 400+ teams. Cached 5 min.
Query parameters
| Param | Type | Required | Description |
|---|---|---|---|
search | string | No | Search by name |
country | string | No | Filter by country code |
Returns CS2 player profiles. Cached 5 min.
Query parameters
| Param | Type | Required | Description |
|---|---|---|---|
team | integer | No | Filter by team id |
search | string | No | Search by nickname |
Returns CS2 matches with map results. Defaults to next 7 days. Cached 2 min.
Query parameters
| Param | Type | Required | Description |
|---|---|---|---|
date_from | date | No | Start date (YYYY-MM-DD) |
date_to | date | No | End date (YYYY-MM-DD) |
tournament | integer | No | Filter by tournament id |
team | integer | No | Filter by team id |
status | string | No | notstarted, inprogress, finished |
Key response fields
| Field | Type | Description |
|---|---|---|
home_team / away_team | object | Nested team objects |
home_score / away_score | integer | Maps won |
best_of | integer | Bo1, Bo3, Bo5 |
maps | array | Per-map results [{map_name, home_score, away_score, halves}] |
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
| Field | Type | Description |
|---|---|---|
home_team / away_team | object | Nested team objects |
home_score / away_score | integer | Maps won |
best_of | integer | Bo1, Bo3, Bo5 |
maps | array | Per-map results including current map in progress |
Returns ML predictions for CS2 matches. Defaults to upcoming. Cached 2 min.
Query parameters
| Param | Type | Required | Description |
|---|---|---|---|
upcoming | boolean | No | Default true. Set false for past. |
date_from | date | No | Start date (YYYY-MM-DD) |
date_to | date | No | End date (YYYY-MM-DD) |
Key response fields
| Field | Type | Description |
|---|---|---|
home_win_prob / away_win_prob | float | Win probability (0-1) |
predicted_winner | string | home or away |
confidence | float | Model confidence |
Guides
- Register: Create a free account at sports.bzzoiro.com/register/
- Get your token: After registering you'll find your API token on your dashboard. The same token works across all platforms.
- Make a request:
curl -H "Authorization: Token YOUR_API_KEY" https://csgo.bzzoiro.com/api/matches/ - Explore: Use the endpoints above to fetch teams, players, matches, live scores, and predictions.
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