Esports betting signals.
Mispricing, steam, and arb — one feed.
Why this surface exists
A desk does not poll every book looking for steam by eye. Signals emit when the board crosses a threshold, with KashRock IDs already on the row.
What the record represents
Each signal has kind, sport, kr_match_id, market, edge_pct, detail, and detected_at. detail shape depends on kind.
Core endpoints
GET /v7/{sport}/signals or MCP v7_signals. Use kind= and min_edge= to filter.
| Endpoint | Purpose | Key filters |
|---|---|---|
| GET /v7/{sport}/signals | Signal alerts (Pro+) | kind, match, market, min_edge |
| GET /v7/{sport}/flow | Underlying steam/shift/volume plays | kind=steam|shift|… |
| GET /v7/{sport}/arb | Dedicated arb board with stake split | Quant+ |
| MCP v7_signals | Same feed from Cursor or Claude | sport, kind |
Canonical IDs
- —kr_match_id — fixture the signal belongs to
- —detail.play_id — flow play when kind=steam
- —market — registry market key
Sample payload
Live CS2 steam: Los Ninos map_winner on GG.bet shortening about 35%, edge_pct 3.0, detected just now.
| Field | Example | Used for |
|---|---|---|
| kind | steam | mispricing | steam | arb |
| edge_pct | 3.0 | Signal strength floor |
| kr_match_id | kr_cs2_… | Match join |
| detail.book | ggbet | Book that moved |
| detail.direction | shortening | How the price moved |
| detected_at | ISO time | When the signal fired |
{
"available": true,
"sport": "cs2",
"kind": "steam",
"total": 13,
"signals": [
{
"kind": "steam",
"kr_match_id": "kr_cs2_alka-vs-los-ninos-23-10-2026",
"market": "map_winner",
"edge_pct": 3,
"detail": {
"side": "Los Ninos",
"book": "ggbet",
"direction": "shortening",
"shift_pct": 0.3504
},
"detected_at": "2026-10-23T23:15:54.185611+00:00"
}
]
}Comparing sources
Signals read the same lines and flow workers that power /lines, /flow, and /arb.
| Source | Schema | Best use |
|---|---|---|
| Manual Discord tips | Unstructured | Chat noise |
| Single-book watchers | One venue | Narrow alerts |
| KashRock signals | Normalized kinds + IDs | Agent and webhook ready |
How to use it
A signal is an alert, not a settled bet. Grade outcomes with /results; measure CLV with /clv.
Operational practices
- —Set min_edge so low-noise alerts stay out.
- —Webhook delivery is on Quant — pair with /webhooks.
- —Pro unlocks signals; free Sandbox teaches IDs first.
Quick reference
GET /v7/cs2/signals?kind=steam returns steam alerts with edge_pct and detail. Get your free key.
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.