BetaRead the CS2 API docs

CS2 odds API: match and map odds, with history.

Match winner and map winner odds for upcoming and live CS2 matches: decimal price, implied probability, liquidity, volume, bid/ask spread and market status. Every price change since the market opened is kept, and the odds ride along on the match list with include=odds.

  • Match & map winner
  • 41,339 price snapshots
  • Every 15 min, 1 min live
GET /cs2/matches/cs2-match-2399888/odds200 OK
$ curl "https://api.citoapi.com/api/v1/cs2/matches/cs2-match-2399888/odds" \ -H "x-api-key: $CITO_API_KEY"
{  "success": true,  "data": {    "entityType": "cs2_match_odds",    "matchId": "cs2-match-2399888",    "teams": {      "team1Name": "Ground Zero",      "team2Name": "Off Chops"    },    "odds": [      {        "provider": "polymarket",        "market": "h2h",        "team1Odds": 4.35,        "team2Odds": 1.3,        "team1ImpliedProb": 0.2299,        "team2ImpliedProb": 0.7692,        "liquidityUsd": 7371.64,        "volumeUsd": 2062.17,        "bestBid": 0.2,        "bestAsk": 0.26,        "spread": 0.06,        "marketStatus": "open",        "capturedAt": "2026-10-25T19:30:16.049Z"      },      ...    ]  }}

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
Claude
Cursor
OpenAI
Python
Cito API
Next.js
Discord
Slack
GitHub

What every odds row carries

The same fields for the match market and each map market, on the odds endpoint and on include=odds. Odds share a key with the rest of the Counter-Strike 2 API: live scores, results, player stats and rankings.

Match and map markets

h2h is the match winner; map_h2h_1, map_h2h_2 and up are the winner of each map in the series.

Price and probability

Decimal odds for both teams and the implied probability behind each price.

Liquidity and spread

Liquidity, total and 24-hour volume, best bid, best ask and the spread, so you can tell a deep market from a thin one.

Market status

open, suspended or closed, so a stale price never reads as a live one.

Full price history

/odds/history returns each captured price change for the match and every map, oldest first.

Fresh while it matters

Prices refresh every 15 minutes, and every minute while the match is live. capturedAt stamps each row.

Endpoints you can ship with

Open the odds group: current prices, their history, and the match list with odds attached.

Odds & models

Match and map winner prices with implied probability, liquidity and spread, every price change since the market opened, and the team form, map stats and head-to-head a model needs next to them.

View docs
  • GET/api/v1/cs2/matches/upcoming?include=odds

    Upcoming matches with each one's current market prices attached.

  • GET/api/v1/cs2/matches/{matchId}/odds

    Match and map winner odds: decimal price, implied probability, liquidity, spread, status.

  • GET/api/v1/cs2/matches/{matchId}/odds/history

    Every captured price change for the match and each map, oldest first.

  • GET/api/v1/cs2/teams/{teamIdOrSlug}/form

    A team's recent results and win rate.

  • GET/api/v1/cs2/teams/{teamIdOrSlug}/map-stats

    Win rate and matches played on each map.

  • GET/api/v1/cs2/h2h/{teamIdOrSlug}/{opponentIdOrSlug}

    Head-to-head record and the meetings behind it.

FAQs

Markets, fields, freshness, coverage, and plans

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

Read the odds docs

Track line movement

Create a free key, call the odds for tonight's matches, and see every price change since the market opened.