EsportsOdds
// real api demo

The CS2 odds API, real and in the open

This page calls https://api.esportsodds.gg the same way your own integration would — real Counter-Strike 2 match scores, stats, and our de-vigged market odds line, rendered straight from the public REST and WebSocket endpoints. No mock data. Our proprietary model line is coming soon, once it clears validation.

cs2 · match winner · market line
Connecting
  • FLY vs Kaleido
    Live0 : 02 books
    1.03
    FLY · 96.7%
    30.30
    Kaleido · 3.3%
  • NEXVOID vs CW
    Live0 : 02 books
    1.80
    NEXVOID · 55.6%
    2.25
    CW · 44.4%
  • DEPO vs LVG
    Live0 : 02 books
    1.53
    DEPO · 65.4%
    2.89
    LVG · 34.6%
  • G2 vs AST
    Scheduled0 : 0
    G2
    AST
  • PRV vs TYLOO
    Scheduled0 : 0
    PRV
    TYLOO
Responsethe response's data array
cs2.matches.json
// the request the server above makes
GET https://api.esportsodds.gg/v1/cs2/matches?status=live
// apiKey is attached server-side — it never reaches the browser

[
  {
    "id": "01a062d4-178e-7848-bffd-f37c54a983b4",
    "game_id": "019f23d1-fb5b-7d24-935d-e4d68f6f565a",
    "tournament_id": "01a03008-60f2-759f-9545-d228109ab7ae",
    "team_a_id": "019f23d1-fb5c-7250-aa50-395431eb9b0a",
    "team_b_id": "019f2858-e256-7ca8-9cd9-872498a2924d",
    "format": "bo3",
    "status": "live",
    "stage": "Intel Extreme Masters Beijing 2026: Asian Qualifier Playoffs",
    "scheduled_at": "2026-09-03T06:10:00Z",
    "started_at": "2026-09-03T05:58:38.251318Z",
    "ended_at": null,
    "score_a": 0,
    "score_b": 0,
    "winner_team_id": null,
    "live_state": {
      "match_id": "01a062d4-178e-7848-bffd-f37c54a983b4",
      "map_number": 1,
      "map_name": "cache",
      "round_score_a": 10,
      "round_score_b": 5,
      "rounds_played": 16,
      "map_score_a": 0,
      "map_score_b": 0,
      "observed_at": "2026-09-03T06:45:02.346262Z"
    },
    "created_at": "2026-09-02T15:54:48.933806Z",
    "updated_at": "2026-09-03T06:38:28.534903Z",
    "team_a_name": "FlyQuest",
    "team_a_short": "FLY",
    "team_b_name": "Kaleido",
    "team_b_short": null,
    "tournament_name": "Intel Extreme Masters Beijing 2026: Asian Qualifier",
    "tournament_tier": "B",
    "data_available": {
      "maps": false,
      "stats": false,
      "vetoes": false,
      "rounds": false,
      "depth": false,
      "odds": true
    }
  },
  {
    "id": "01a062b4-297f-7a7f-aae5-55fc894f43d7",
    "game_id": "019f23d1-fb5b-7d24-935d-e4d68f6f565a",
    "tournament_id": "01a05441-550c-7aa9-8972-1f600b65f08c",
    "team_a_id": "019f2858-e256-769b-93b7-9c66d4b9d114",
    "team_b_id": "019f2858-e255-73a2-b911-f3ed07f3e920",
    "format": "bo3",
    "status": "live",
    "stage": "FISSURE Playground 3 Asia Closed Qualifier Playoffs",
    "scheduled_at": "2026-09-03T06:10:00Z",
    "started_at": "2026-09-03T05:58:38.251318Z",
    "ended_at": null,
    "score_a": 0,
    "score_b": 0,
    "winner_team_id": null,
    "live_state": {
      "match_id": "01a062b4-297f-7a7f-aae5-55fc894f43d7",
      "map_number": 1,
      "map_name": "de_nuke",
      "round_score_a": null,
      "round_score_b": null,
      "rounds_played": null,
      "map_score_a": null,
      "map_score_b": null,
      "observed_at": "2026-09-03T06:37:56.600247Z"
    },
    "created_at": "2026-09-02T15:19:53.989746Z",
    "updated_at": "2026-09-03T06:38:28.534903Z",
    "team_a_name": "NEXVOID",
    "team_a_short": null,
    "team_b_name": "Chinggis Warriors",
    "team_b_short": "CW",
    "tournament_name": "FISSURE Playground 3 Asia Closed Qualifier",
    "tournament_tier": "C",
    "data_available": {
      "maps": false,
      "stats": false,
      "vetoes": false,
      "rounds": false,
      "depth": false,
      "odds": true
    }
  },
  {
    "id": "01a06262-efe2-77e5-bcf1-02ce9d23b8b9",
    "game_id": "019f23d1-fb5b-7d24-935d-e4d68f6f565a",
    "tournament_id": "01a03008-60f2-759f-9545-d228109ab7ae",
    "team_a_id": "019f23d2-5a34-7047-aa82-46dc685bae93",
    "team_b_id": "019f23d2-5a33-7f01-87cb-120cccc7cf88",
    "format": "bo3",
    "status": "live",
    "stage": "Intel Extreme Masters Beijing 2026: Asian Qualifier Playoffs",
    "scheduled_at": "2026-09-03T06:00:00Z",
    "started_at": "2026-09-03T05:58:38.251318Z",
    "ended_at": null,
    "score_a": 0,
    "score_b": 0,
    "winner_team_id": null,
    "live_state": {
      "match_id": "01a06262-efe2-77e5-bcf1-02ce9d23b8b9",
      "map_number": 1,
      "map_name": "ancient",
      "round_score_a": 10,
      "round_score_b": 7,
      "rounds_played": 18,
      "map_score_a": 0,
      "map_score_b": 0,
      "observed_at": "2026-09-03T06:45:02.346262Z"
    },
    "created_at": "2026-09-02T13:51:12.630926Z",
    "updated_at": "2026-09-03T06:38:28.534903Z",
    "team_a_name": "DEPO",
    "team_a_short": null,
    "team_b_name": "Lynn Vision",
    "team_b_short": "LVG",
    "tournament_name": "Intel Extreme Masters Beijing 2026: Asian Qualifier",
    "tournament_tier": "B",
    "data_available": {
      "maps": false,
      "stats": false,
      "vetoes": false,
      "rounds": false,
      "depth": false,
      "odds": true
    }
  },
  {
    "id": "01a051b6-8969-7f84-8c0c-f417fb75d547",
    "game_id": "019f23d1-fb5b-7d24-935d-e4d68f6f565a",
    "tournament_id": "01a0427c-c839-7017-ad80-31e74e9e31e7",
    "team_a_id": "019f23d1-fb5c-7860-9324-a31e3bbd5c67",
    "team_b_id": "019f23d1-fb5c-7811-be30-254d41322053",
    "format": "bo3",
    "status": "scheduled",
    "stage": "FISSURE Playground 3 Group A",
    "scheduled_at": "2026-09-08T10:30:00Z",
    "started_at": null,
    "ended_at": null,
    "score_a": 0,
    "score_b": 0,
    "winner_team_id": null,
    "live_state": null,
    "created_at": "2026-08-30T08:09:18.029835Z",
    "updated_at": "2026-09-03T06:38:28.534903Z",
    "team_a_name": "G2",
    "team_a_short": "G2",
    "team_b_name": "Astralis",
    "team_b_short": "AST",
    "tournament_name": "FISSURE Playground 3",
    "tournament_tier": "S",
    "data_available": {
      "maps": false,
      "stats": false,
      "vetoes": false,
      "rounds": false,
      "depth": false,
      "odds": false
    }
  },
  {
    "id": "01a051b6-8969-76d8-a9ee-4e1a530c5f94",
    "game_id": "019f23d1-fb5b-7d24-935d-e4d68f6f565a",
    "tournament_id": "01a0427c-c839-7017-ad80-31e74e9e31e7",
    "team_a_id": "019f23d1-fb5b-7ea3-b633-bea71926e9a4",
    "team_b_id": "019f23d2-5a33-7227-9c3f-d38f590d2c27",
    "format": "bo3",
    "status": "scheduled",
    "stage": "FISSURE Playground 3 Group B",
    "scheduled_at": "2026-09-08T10:30:00Z",
    "started_at": null,
    "ended_at": null,
    "score_a": 0,
    "score_b": 0,
    "winner_team_id": null,
    "live_state": null,
    "created_at": "2026-08-30T08:09:18.029835Z",
    "updated_at": "2026-09-03T06:38:28.534903Z",
    "team_a_name": "PARIVISION",
    "team_a_short": "PRV",
    "team_b_name": "TYLOO",
    "team_b_short": "TYLOO",
    "tournament_name": "FISSURE Playground 3",
    "tournament_tier": "S",
    "data_available": {
      "maps": false,
      "stats": false,
      "vetoes": false,
      "rounds": false,
      "depth": false,
      "odds": false
    }
  }
]

Odds shown are our de-vigged market line (decimal) — derived from multiple bookmakers and exchanges, never republished from any single book. Our proprietary model line is coming soon, once it clears validation.