Cito CS2 API MCP

Live CS2 esports data for AI assistants: Counter-Strike 2 live scores to the round, results, player stats, rankings and skin prices, plus LoL, Dota 2, CoD and UFC. Hosted remote server, free API key.

Hosted MCP Server

npx add-mcp 'https://api.citoapi.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

CS2 API: live scores, player stats & skin prices.

The Counter-Strike 2 API for developers: live matches down to the round, results with every map, per-map player stats, rosters, rankings, and skin prices on 25+ marketplaces. Clean JSON from one key, SDKs for JavaScript and Python, and an MCP server for your agents.

$ curl "https://api.citoapi.com/api/v1/cs2" \ -H "x-api-key: $CITO_API_KEY"

{  "success": true,  "data": {    "entityType": "cs2_api_overview",    "name": "Counter-Strike 2 API",    "status": "available",    "coverage": {      "matches": 15009,      "live": 8,      "upcoming": 51,      "teams": 4500,      "players": 8808,      "events": 1525,      "rosterChanges": 150640    }  }}

Seamless Integration with our MCP Server

Give Claude, Cursor, and ChatGPT the CS2 data. One command writes the MCP config; agents call live scoreboard, team map stat, opening duel, and transfer tools instead of inventing match IDs, and your key stays on your machine.

MCPInstall the Cito MCP server

Cito API

One API for the whole scene

Everything a CS2 app, bot, or dashboard reads, from the round in play to a skin's price on each marketplace, behind one key.

Live to the round

Series score, map in play, round score, round timer, bomb status, and each player's money and equipment.

Every map of every result

Finished matches with the series score and winner, and each map's score, winner, and pick.

Per-map player stats

Kills, deaths, ADR, KAST, and rating for every player on every map, rolled up by career and year.

Teams, rosters, transfers

Current rosters, every past lineup with dates, player moves between teams, and per-map win rates.

World ranking and VRS

The world team ranking and the Valve Regional Standings, with points, movement, and regional tables.

Skin prices

29,078 skins, knives, gloves, stickers, and cases, priced on 25+ marketplaces, with daily history and the week's biggest movers.

CS2 API quickstart: JavaScript, Python, or curl

Get a free API key, install the client for your language, and you are reading live Counter-Strike 2 scores in under a minute. Both clients are open source (MIT), have zero dependencies, and cover every endpoint below.

JavaScript / TypeScript

npm install cs2-api
import { CS2Api } from "cs2-api";

const cs2 = new CS2Api(); // reads process.env.CITO_API_KEY

// every Counter-Strike 2 match being played right now
for (const m of await cs2.live()) {
  console.log(\`${m.team1Name} ${m.team1Score}-${m.team2Score} ${m.team2Name} · ${m.currentMap}\`);
}

const top10 = await cs2.worldRanking({ limit: 10 });
const donk = await cs2.player("donk");
const redline = await cs2.skinPrices("ak-47-redline-field-tested-1ab1a2dc");

Works as ESM or CommonJS, ships TypeScript types. cs2-api on npm

Python

pip install cs2-api-client
from cs2_api import CS2Api

cs2 = CS2Api()  # reads CITO_API_KEY

for m in cs2.live():
    print(f"{m['team1Name']} {m['team1Score']}-{m['team2Score']} {m['team2Name']} · {m['currentMap']}")

top10 = cs2.world_ranking(limit=10)
vitality = cs2.team("vitality")
redline = cs2.skin_prices("ak-47-redline-field-tested-1ab1a2dc")

Standard library only, Python 3. cs2-api-client on PyPI

Any language: plain REST

Every route is a GET that returns JSON. Send your key in the x-api-key header from your server, never from browser code.

curl "https://api.citoapi.com/api/v1/cs2/live" \
  -H "x-api-key: $CITO_API_KEY"

Source, issues, and example bots and overlays: cs2-api on GitHub

What comes back

A real response from /cs2/live, trimmed to one match: the series score is maps won, currentMapScore is the map in play.

{
  "success": true,
  "data": [
    {
      "matchId": "cs2-match-2398731",
      "status": "live",
      "eventName": "ESL Pro League Season 24",
      "bestOf": 3,
      "team1Name": "Vitality",
      "team2Name": "Natus Vincere",
      "score": { "team1": 1, "team2": 1 },
      "currentMap": "de_mirage",
      "currentMapScore": { "team1": 5, "team2": 2 },
      "currentRound": 8
    }
  ]
}

Endpoints you can ship with

Eight groups, 45 endpoints, one key. Pick what you are building; every route returns the same REST JSON.

Live matches

Poll the live list for every match in progress, open one match for its round, timer, bomb and players, or keep an SSE stream open and get each update pushed.

View docs

  • GET /api/v1/cs2/live Matches in progress: series score, map in play, map score, current round.
  • GET /api/v1/cs2/live/{matchId}/state One live match: score, round, round timer, bomb status and players.
  • GET /api/v1/cs2/live/{matchId}/scoreboard Series score, current map and round, and each player's kills, deaths, money and equipment.
  • GET /api/v1/cs2/live/{matchId}/rounds Round-by-round results so far: winner, side and how each round ended.
  • GET /api/v1/cs2/live/stream Server-Sent Events push of every live update. Every plan; counts like polling.
  • GET /api/v1/cs2/live/ws WebSocket with a room per match. Scale and Enterprise.

CS2 skin prices and item data

The same key that reads match data reads the CS2 skin market: every weapon skin, knife, glove, sticker, case and capsule, its current price on more than 25 marketplaces, and its daily price history back to 2020 on long-listed items.

29,078

tradable CS2 items with a price

15,203

weapon skins and agents, every wear

7,337

stickers

4,080

knives

470

gloves

1,544

cases, capsules, graffiti and music kits

Price on every marketplace

/skins/{slug}/prices returns one row per marketplace, cheapest first, with the offer count and a buy link: Steam Community Market, Buff.163, Buff.Market, CSFloat, Skinport, DMarket, CS.MONEY, YouPin898, UUSkins, Waxpeer, Market.CSGO, LIS-SKINS, White.Market, HaloSkins, Avan.Market, C5Game, Ecosteam, SkinFlow, PirateSwap, Skin.place, Mannco.Store and more. Each item carries its market hash name, weapon, rarity, exterior, StatTrak and Souvenir flags, and its image.

Price history and movers

/skins/{slug}/history returns the daily cheapest price with volume (the AK-47 | Redline series starts in March 2020), /skins/{slug}/order-book the sell listings per market, and /skins/trending the biggest gainers and losers from one day to one year.

What it is for

Inventory valuers, trade-up and arbitrage tools, price alerts, Discord bots, and portfolio trackers. It does not read or move Steam inventories: for a user's own inventory, use Steam's inventory endpoints with their consent.

CS2 skin prices API goes deeper on the market endpoints.

GET /api/v1/cs2/skins/ak-47-redline-field-tested-1ab1a2dc/prices

{
  "skin": {
    "marketHashName": "AK-47 | Redline (Field-Tested)",
    "weapon": "AK-47", "rarity": "Classified", "exterior": "Field-Tested"
  },
  "prices": [
    { "providerName": "UUSkins",  "price": 25.02, "offersCount": 10916 },
    { "providerName": "DMarket",  "price": 25.12, "offersCount": 844 },
    { "providerName": "CSFloat",  "price": 25.26, "offersCount": 3610 },
    { "providerName": "Buff.163", "price": 25.98, "offersCount": 8145 },
    { "providerName": "Steam",    "price": 34.88, "offersCount": 1171 },
    "… 22 more marketplaces"
  ]
}

Which CS2 API do you need?

“CS2 API” means five different things depending on what you are building. Here is what each kind of Counter-Strike 2 data is, and where to get it.

You needWhat it isWhere to get it
Pro match and esports dataLive scores to the round, results with every map, player ratings (ADR, KAST, rating), rosters, transfers, tournaments, brackets, the world ranking and VRS.Cito CS2 API. Valve publishes no esports data API, and HLTV has no public API.
Skin prices and market dataWhat an item is worth right now on each marketplace, its history, and which items are moving.Cito CS2 API (25+ marketplaces in one call), or each marketplace's own API one at a time.
Static item catalogNames, images, rarities and collections of every skin, sticker, case and agent, with no prices.Open-source JSON dumps of the game files; Cito's /skins endpoints carry the same catalog fields alongside prices.
Steam accounts and inventoriesA signed-in player's profile, owned items, or trade offers.Valve's Steam Web API, with the player's own key or consent.
In-game state for overlaysYour own client's health, money, round phase and bomb state while you play or spectate.Valve's Game State Integration (GSI), a local config file in the CS2 install.

Is there an official CS2 API?

Valve offers the Steam Web API (accounts, inventories, the Steam market) and Game State Integration (your own game client), but no API for professional matches, player statistics, or prices across third-party marketplaces. That is the gap the Cito CS2 API fills: one REST API and one key for Counter-Strike 2 esports data and skin prices together.

Built for apps that ship

Live scores, results, stats and prices come back as the same clean JSON with stable IDs, so a Discord bot, a stream overlay, a fantasy game, a betting model or an AI agent can join a match to its players, a player to their team, and a team to its ranking without stitching sources together. The free CS2 API key is enough to prototype.

FAQs

Coverage, plans, live data, and the beta

Can't find what you're looking for? Contact our customer support team

Explore the CS2 API

Each page goes deep on one thing developers build with CS2 data.

Read the CS2 docs

Build

Create a free key, call your first CS2 endpoint in a minute, and upgrade when the app is real.

Get a free API key