CS2 data reference

Team records — form, head-to-head, maps, playstyle

The four derived team endpoints and what each is actually measuring.

Four endpoints summarise a team's history. All are derived from completed matches, so a team with little history returns thin results rather than an error.

Recent form

GET /v1/{game}/teams/{id}/form — recent completed results, newest first, from the subject team's perspective. Default 10, max 50; not paginated.

Each row: match_id, opponent_id, won, score_for, score_against, scheduled_at. The scores are maps won, not rounds, and are null where the series score wasn't recorded.

Head-to-head

GET /v1/{game}/teams/{id}/h2h?opponent=<id-or-slug>opponent is required.

curl -H "Authorization: Bearer $ESPORTSODDS_API_KEY" \
  "https://api.esportsodds.gg/v1/cs2/teams/natus-vincere/h2h?opponent=faze"

Returns team_wins, opponent_wins, total. Only matches with a settled winner are counted, so team_wins + opponent_wins == total exactly — there is no draw bucket.

total is the number to sanity-check first: a 3–1 record over 4 meetings is close to no evidence.

Per-map record

GET /v1/{game}/teams/{id}/maps — one row per map the team has a completed result on: map_name, played, wins.

Raw counts, deliberately — the win rate is wins / played, left for you to compute so the model stays a fact rather than a formatted ratio. Guard small played values: 3–0 on a map is not a 100% map.

Ordered by win rate descending, then by matches played.

Playstyle profile

GET /v1/{game}/teams/{id}/round-stats — a single object of percentages aggregated over the team's rounds:

Prop

Type

Every percentage is 0–100, and null when the denominator is empty — a team with no recorded eco rounds has eco_win_pct: null, not 0.

An unknown team id returns rounds: 0 with every percentage nullnot a 404. If you need to know a team exists, fetch it directly.

Units, one more time

These are the only team fields expressed as 0–100 percentages. Player KAST is a 0–1 fraction and round KAST is a 0–5 count. When in doubt, check the field's own description in the reference.

On this page