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
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
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| limit | integer | Rows to return. Maximum 200; larger values are reduced to 200. |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/odds" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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
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
| Parameter | Type | Description |
|---|---|---|
| matchId (path)* | string | Match id, e.g. cs2-match-2398421. |
| limit | integer | Rows to return. Maximum 2000; larger values are reduced to 2000. |
| market | string | One odds market: h2h (series winner) or map_h2h_1, map_h2h_2, ... (map winner). |
Example
curl "https://api.citoapi.com/api/v1/cs2/matches/MATCH_ID/odds/history" \
-H "x-api-key: YOUR_API_KEY"Response
{
"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.
curl "https://api.citoapi.com/api/v1/cs2/matches/cs2-match-2399722/odds" \
-H "x-api-key: YOUR_API_KEY"