CS2 odds API

Counter-Strike 2 prices in one fixture shape, from match result to individual maps. Esports is included on every plan at no extra cost.

Use cs2 to request Counter-Strike 2 fixtures. Each fixture carries its tournament, with a best_of field when the series format is known and the books agree.

Request upcoming fixtures with /odds and in-play prices with /odds/live. Live odds follow your plan's in-play access. Availability varies by fixture and bookmaker.

curl -H "X-API-Key: $ODDSLINK_KEY" \
  "https://oddslink.app/v1/sports/cs2/odds?tournament=example_cup&markets=h2h,maps_handicap,maps_total,rounds_handicap,rounds_total&periods=full,map1"
[
  {
    "id": "cs2:exampleaway-examplehome:2026-10-28",
    "sport_key": "cs2",
    "sport_title": "CS2",
    "commence_time": "2026-10-28T15:00:00.000Z",
    "is_live": false,
    "status": "scheduled",
    "home_team": "Example Home",
    "away_team": "Example Away",
    "tournament": {
      "key": "example_cup",
      "title": "Example Cup"
    },
    "best_of": 3,
    "bookmakers": [
      {
        "key": "example",
        "title": "Example bookmaker",
        "last_update": "2026-10-28T12:00:00.000Z",
        "markets": [
          {
            "key": "h2h",
            "last_update": "2026-10-28T12:00:00.000Z",
            "outcomes": [
              {
                "name": "Example Away",
                "price": -110
              },
              {
                "name": "Example Home",
                "price": -110
              }
            ]
          },
          {
            "key": "maps_handicap",
            "last_update": "2026-10-28T12:00:00.000Z",
            "outcomes": [
              {
                "name": "Example Away",
                "price": -110,
                "point": -1.5,
                "main": true
              },
              {
                "name": "Example Home",
                "price": -110,
                "point": 1.5,
                "main": true
              }
            ]
          },
          {
            "key": "maps_total",
            "last_update": "2026-10-28T12:00:00.000Z",
            "outcomes": [
              {
                "name": "Over",
                "price": -110,
                "point": 2.5,
                "main": true
              },
              {
                "name": "Under",
                "price": -110,
                "point": 2.5,
                "main": true
              }
            ]
          },
          {
            "key": "h2h",
            "period": "map1",
            "last_update": "2026-10-28T12:00:00.000Z",
            "outcomes": [
              {
                "name": "Example Away",
                "price": -110
              },
              {
                "name": "Example Home",
                "price": -110
              }
            ]
          },
          {
            "key": "rounds_handicap",
            "period": "map1",
            "last_update": "2026-10-28T12:00:00.000Z",
            "outcomes": [
              {
                "name": "Example Away",
                "price": -110,
                "point": -2.5,
                "main": true
              },
              {
                "name": "Example Home",
                "price": -110,
                "point": 2.5,
                "main": true
              }
            ]
          },
          {
            "key": "rounds_total",
            "period": "map1",
            "last_update": "2026-10-28T12:00:00.000Z",
            "outcomes": [
              {
                "name": "Over",
                "price": -110,
                "point": 22.5,
                "main": true
              },
              {
                "name": "Under",
                "price": -110,
                "point": 22.5,
                "main": true
              }
            ]
          }
        ]
      }
    ],
    "unmatched_bookmakers": []
  }
]

Illustrative CS2 request and response. Teams, tournament, bookmaker and prices are examples, not measured coverage.

More than the main line

Match and map results

Use h2h for two-way results. A BO2 result with a 1-1 Draw uses the separate h2h_3_way market.

Map-count lines

maps_handicap and maps_total say exactly what the line measures.

Per-map rounds

Select map1 through map5 separately from rounds_handicap and rounds_total.

One tournament

Read the fixture's tournament.key and pass it as tournament= to narrow your next request.

Markets

CS2 markets and periods
MarketPeriods
h2h: match or map resultFull match; map1 through map5
h2h_3_way: BO2 result including DrawFull match
maps_handicap: map-count handicapFull match
maps_total: total mapsFull match
rounds_handicap: rounds handicapmap1 through map5
rounds_total: total roundsmap1 through map5

Books for CS2

Book availability varies by fixture. See the esports guide for request examples.

Every book on every plan

Monthly plans, request allowances and features
PlanPer monthRequests a monthIn-playHistory
Free$01,000NoNo
Starter$2420,000NoNo
Scale$99500,000Yes2 years
Business$1995,000,000YesAll of it

Compare every plan

Questions

Does esports cost extra?

No. All four games are included on every plan. In-play access and history follow the plan's existing entitlements.

Is the series format always present?

No. best_of is present only when known and the books agree. An absent field does not mean zero.

Are player props included?

Player props are a later step. These markets cover teams, matches and maps.

How far back does history go?

Recording starts with esports coverage. Earlier prices are not backfilled; history access follows your plan.

Build with CS2 odds