Docs/CS2 API/CS2 Odds API

CS2 Odds API

Prediction-market prices for Counter-Strike 2 matches as decimal odds: the series winner and every map, refreshed every minute while a match is live and every 15 minutes before it, plus the full line movement. Each quote says whether its market is open, suspended (a decided map) or closed. Odds are included on Pro and above.

2 endpoints in this section. Authenticate with the x-api-key header; every response is { success, data, meta }. Other sections: Live, Matches, Maps & rounds, Rankings, Teams, Players, Events, Stats & leaderboards, Skins, Transfers, Search & reference.

Match odds

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

Current prediction-market prices for a match as decimal odds per team: the series winner (`market: "h2h"`) and each map (`"map_h2h_1"`, `"map_h2h_2"`, ...). `team1Odds` / `team2Odds` follow the match's `team1` / `team2`. `provider` is the market the price comes from (`polymarket`). **Freshness.** Live matches are refreshed every minute; upcoming matches every 15 minutes. `capturedAt` is the time of the price. **Market status.** `marketStatus` is `open` while the market is trading; `suspended` once its price is near-certain (a decided map), showing the last tradable quote; `closed` when the market is no longer listed. **Pricing.** Decimal odds are 1 / implied probability (2.00 = 50%), with no bookmaker margin added. Only matches the market lists have odds; others return `dataAvailable: false`. **Match id.** Use the `matchId` from `/cs2/live` or `/cs2/matches/upcoming`, or the two team names as `team1-vs-team2` (`/cs2/matches/vitality-vs-mouz/odds`, either order): the live match wins, else the one nearest in time. **Plans.** Odds are included on Pro and above.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.
limitintegerRows to return. Maximum 200; larger values are reduced to 200.

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/odds" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_match_odds",
    "matchId": "cs2-match-2399722",
    "teams": {
      "team1Name": "MOUZ",
      "team2Name": "Liquid"
    },
    "eventName": "PGL Masters Bucharest 2026",
    "dataAvailable": true,
    "odds": [
      {
        "oddsKey": "polymarket:5774511",
        "matchId": "cs2-match-2399722",
        "provider": "polymarket",
        "market": "h2h",
        "team1Odds": 1.18,
        "team2Odds": 6.45,
        "drawOdds": null,
        "marketStatus": "open",
        "capturedAt": "2026-10-16T19:30:10.021Z"
      },
      {
        "oddsKey": "polymarket:5774509",
        "matchId": "cs2-match-2399722",
        "provider": "polymarket",
        "market": "map_h2h_1",
        "team1Odds": 2,
        "team2Odds": 2,
        "drawOdds": null,
        "marketStatus": "open",
        "capturedAt": "2026-10-16T19:30:10.021Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Match odds history

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

Line movement for a match: one row each time a market's price changed, oldest first (opening, pre-match and live prices through to the last tradable quote). Filter one market with `market` (`h2h`, `map_h2h_1`, ...). Same fields as `/cs2/matches/{matchId}/odds`. Odds are included on Pro and above.

Query parameters

ParameterTypeDescription
matchId (path)*stringMatch id, e.g. cs2-match-2398421.
limitintegerRows to return. Maximum 2000; larger values are reduced to 2000.
marketstringOne odds market: h2h (series winner) or map_h2h_1, map_h2h_2, ... (map winner).

Example

bash
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/odds/history" \
  -H "x-api-key: YOUR_API_KEY"

Response

json
{
  "success": true,
  "data": {
    "entityType": "cs2_match_odds_history",
    "matchId": "cs2-match-2399722",
    "teams": {
      "team1Name": "MOUZ",
      "team2Name": "Liquid"
    },
    "eventName": "PGL Masters Bucharest 2026",
    "dataAvailable": true,
    "history": [
      {
        "oddsKey": "polymarket:5774510",
        "matchId": "cs2-match-2399722",
        "provider": "polymarket",
        "market": "map_h2h_2",
        "team1Odds": 1.92,
        "team2Odds": 2.08,
        "capturedAt": "2026-10-16T17:54:35.562Z"
      },
      {
        "oddsKey": "polymarket:5774509",
        "matchId": "cs2-match-2399722",
        "provider": "polymarket",
        "market": "map_h2h_1",
        "team1Odds": 2.04,
        "team2Odds": 1.96,
        "capturedAt": "2026-10-16T17:54:35.562Z"
      }
    ]
  },
  "meta": {
    "count": 2,
    "dataAvailable": true,
    "limit": 2,
    "total": 2,
    "page": 1,
    "totalPages": 1,
    "hasNext": false,
    "hasPrev": false
  }
}

Try the CS2 Odds API

Run a real request with your key, then wire the same call into your app. The free plan includes 500 requests a month.

bash
curl "https://api.citoapi.com/api/v1/cs2/matches/cs2-match-2399722/odds" \
  -H "x-api-key: YOUR_API_KEY"