Esports line gap checker.
Same prop. Different DFS lines.

Betr posts 20.5. PrizePicks posts 24.5. Underdog posts 25.5. That five-kill spread is the product — not a model projection. The checker joins the same player, event, and market across DFS books and returns line_min, line_max, and line_gap in one row.

Why book-vs-book gaps matter

DFS apps do not publish the same number for the same player. A five-kill gap on maps 1–2 is a shopping problem, not a model problem — you need every book's line on one row before tip-off.

Practical rule: gaps are book-vs-book spreads, not model edges. line_gap = line_max − line_min.

What a gap row is

Each gap row is one player, one event, one market, with every DFS book that posted a line. Softest line is line_min, hardest is line_max, and the spread is line_gap.

Checker endpoint

Call GET /v7/{sport}/props?view=gaps or the get_gaps MCP tool. Hobby and above.

EndpointPurposeKey filters
GET /v7/{sport}/props?view=gapsDFS book-vs-book line spreads (Hobby+)min_gap, player, market, book, limit
GET /v7/{sport}/propsFull live board per bookbook=prizepicks|underdog|…
MCP get_gapsSame surface from Cursor or ClaudeHobby+

Identity and join keys

  • —player_id — kr_pl_* so renames do not break the join
  • —stat_type — map scope is part of the key
  • —propId per book — bind the offer you actually take

A live CS2 gap

Live CS2 board: Mercury maps 1–2 kills — Betr 20.5 through Underdog 25.5, a 5.0 gap across five DFS books.

FieldExampleUsed for
line_gap5.0line_max − line_min across DFS books
line_min / line_max20.5 / 25.5Softest and hardest posted lines
books[]betr…underdogOne entry per book, sorted by line
stat_typeCS2_KILLS_MAPS_1_2Exact market — map1 ≠ maps 1–2
gap_idgap_9106dc5a5adbStable hash of sport|event|player|stat
GET /v7/cs2/props?view=gaps&min_gap=0.5&limit=1
{
  "source": "kashrock",
  "sport": "cs2",
  "min_gap": 0.5,
  "total": 154,
  "returned": 1,
  "gaps": [
    {
      "gap_id": "gap_9106dc5a5adb",
      "player_id": "kr_pl_be615ee3ec83",
      "player_name": "Mercury",
      "team": "TyLoo",
      "opponent": "FUT Esports",
      "stat_type": "CS2_KILLS_MAPS_1_2",
      "market": "kills",
      "line": 24.5,
      "line_min": 20.5,
      "line_max": 25.5,
      "line_gap": 5,
      "book_count": 5,
      "books": [
        {
          "book": "betr",
          "line": 20.5,
          "propId": "kr_prop_3cfad033d531"
        },
        {
          "book": "boom",
          "line": 24.5,
          "propId": "kr_prop_0e2d140cc478"
        },
        {
          "book": "pick6",
          "line": 24.5,
          "propId": "kr_prop_ffcb4b236613"
        },
        {
          "book": "prizepicks",
          "line": 24.5,
          "propId": "kr_prop_195304f116d9"
        },
        {
          "book": "underdog",
          "line": 25.5,
          "propId": "kr_prop_969ab9d4e34e"
        }
      ]
    }
  ]
}

Which books count

PrizePicks, Underdog, Betr, Sleeper, Boom, Pick6, ParlayPlay, and the other DFS venues on the board. Sportsbook moneylines are not this product — use the odds API for those.

SourceSchemaBest use
Manual line shoppingSlow, easy to miss a bookOne-off checks
Single-book scrapeOne venue, breaks oftenPersonal alerts
KashRock gapsJoined rows, same IDs as propsBoard-wide shopping at scale

Using gaps responsibly

A gap is a shopping signal before the match. After settlement, grade the offer you took with the prop grader — do not treat line_gap as a guaranteed edge.

Operational practices

  • —Filter min_gap so tiny noise stays out of alerts.
  • —Always store propId per book when you take a side.
  • —Sandbox learns the schema on CS2; live gaps need Hobby+.

Quick reference

GET /v7/cs2/props?view=gaps returns line_gap rows. Get your free key on Sandbox, then upgrade for live gaps.

If you need a normalized feed instead of another UI wrapper, the esports api exposes live boards, schedules, and history on one schema — with the IDs and outcome patterns that keep backtests and grading honest. Start free on Sandbox, or see published pricing.

Frequently asked questions

What is an esports line gap checker?

A tool that finds the same player prop priced differently across DFS books and returns the spread as line_min, line_max, and line_gap. KashRock serves it at GET /v7/{sport}/props?view=gaps.

Is there a free key?

Yes. Sandbox is $0 for CS2 props and match discovery so you can learn the schema. Live gap rows need Hobby and up ($29.99).

Is this the same as the line gaps API?

Same data. This page is the free-tool landing; the API reference lives at /esports-line-gaps-api.