Glossary
API terms defined as they are used here, with pointers to the deeper explainers.
Definitions as this API uses them. For the concepts themselves — the maths and the CS2 domain — the marketing site's glossary and learn sections go deeper.
API terms
Envelope — the {data, meta} wrapper on every response.
Details.
Cursor — an opaque forward pagination token from meta.next_cursor. Encodes a position within
one specific ordering; never construct one. Details.
Slug — a lowercase hyphenated identifier (natus-vincere), usable anywhere a path id is
expected on teams, players and tournaments.
Expansion — ?include=teams,tournament,odds on match detail, embedding related resources so one
request replaces four.
Ticket — a 60-second credential from POST /v1/{game}/ws-token used to open a WebSocket, so the
raw key never reaches a browser.
Quota vs rate limit — the quota is your monthly request allowance (hard cap); the rate limit is short-term throughput (a token bucket). Independent. Details.
Odds terms
eo_market — the served market line: a de-vigged aggregate of several bookmakers and
exchanges, published only when at least two contributed. How it's computed.
eo_model — our own forecast. Not served until it clears its accuracy gate.
Details.
De-vig — removing a bookmaker's margin so implied probabilities sum to 1 rather than more. Why our lines sum to ~1.0. Longer explainer: /learn/devig-fair-odds.
book_count — how many independent contributors priced an eo_market line. Never below 2.
Decimal odds — total return per unit staked. Implied probability is 1 / price. The only format
served.
Closing line (is_closing) — the last price captured before scheduled_at. The standard
benchmark for evaluating a forecast.
Brier score — mean squared error of forecast probabilities. Lower is better; 0.25 is the coin-flip baseline for a two-way market.
CS2 terms
ADR — average damage per round. Explainer.
KAST — share of rounds with a kill, assist, survival or trade. Units differ by endpoint: a 0–1 fraction on a player stat line, a 0–5 count on a round row. Explainer.
Rating — our own computed player rating. Not a third party's; don't compare absolute values across sources.
Opening duel (first_kills/first_deaths) — the round's first kill. Across a round's two team
rows these sum to 0 or 1.
Trade — a kill avenging a teammate who has just died.
Eco / force buy — rounds bought below a full buy. Identified by a negative economy_level,
which is a signed tier, not a missing value.
Explainer.
Veto — the pick/ban sequence. The leftover map is a decider and has no acting team.
Glicko-2 — the rating system behind team ratings. The leaderboard sorts on
rating − 2 × rd, discounting by uncertainty. Details.
Known limitations
What the API doesn't do today, stated plainly so you find out before you build.
Mint a short-lived WebSocket ticket POST
Exchanges the caller's API key for a short-lived (60s) signed ticket used to open the WebSocket at `wss://api.esportsodds.gg/v1/ws?token=...`. Keeps the raw key off the wire and out of the browser — browsers can't set headers on a `WebSocket`, which is why tickets exist. Minting is authenticated, rate-limited and metered like any REST call. This is the only part of the WebSocket surface expressible in OpenAPI: the socket itself (`/v1/ws`) is a persistent connection with its own message protocol, so it is documented as prose instead — see **[Live data & WebSocket](/docs/live-data)** for the handshake, the message envelope, subscribing, sequence numbers, reconnection and the connection cap. Read that page before building against this endpoint; a ticket on its own does nothing.