Skip to main content
GET
/
cs2
/
v1
/
matches
/
{match_id}
/
prematch
Single-request bundle for the match-preview UI
curl --request GET \
  --url https://ticktock.bet/cs2/v1/matches/{match_id}/prematch \
  --header 'X-API-Key: <api-key>'
{
  "data": {
    "id": "52ef0d9c-7c1f-4c4e-9b3a-4a5e2f8b1c10",
    "team_a": "Sashi",
    "team_b": "OG",
    "team_a_logo": "https://images.ticktock.bet/teams/sashi.png",
    "team_b_logo": "https://images.ticktock.bet/teams/og.png",
    "event": "ESL Pro League S20",
    "bo_type": "bo3",
    "status": "live",
    "scheduled_at": "2026-05-10T17:00:00+00:00",
    "score_a": 1,
    "score_b": 0,
    "map_name": "de_mirage"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.ticktock.bet/llms.txt

Use this file to discover all available pages before exploring further.

What it returns

Eight blocks in one round-trip — saves you stitching /matches/{id}, /teams/{id}, /players/{id}, /teams/{id}/h2h/{opp}, /maps, and the recent-form lookup yourself.

team_a / team_b

HltvTeam profile — hltv_id, name, logo_url, country_code, world_ranking, valve_ranking, weeks_in_top30, region, is_active. Falls back to the names/logos on the match record when no HLTV row exists.

veto + picked_maps

Raw veto JSON (every pick/ban/decider in order) and a deduped list of just the picked map names — what the series will actually be played on.

global_map_stats

Per-map analytics for picked maps from the global HLTV dataset: CT/T win %, pistol %, round-2 conversion, post-first-kill conversion, total maps in dataset, scraped_at. Falls back to the full dataset if no veto yet.

team_a_map_stats / team_b_map_stats

Per-team TeamMapStats rows for each picked map plus the "all" aggregate. Same shape as Get Team’s map_stats — wins/losses, K/D, rating, CT/T splits, pistol %, opening-kill leaders, pick/ban %.

team_a_roster_stats / team_b_roster_stats

Per-player PlayerMapStats for each roster member of the corresponding team, scoped to the picked maps. Each entry has the player’s identity (nickname, country, age, avatar, dominant role) and the full per-map stats array (rating/K/D/HS%/ADR/KAST/clutch/multikill — same shape as Get Player’s map_stats).

h2h

Same payload as Team H2H: summary, aggregated, recent_fixtures. null if either team has no hltv_id.

team_a_recent_form / team_b_recent_form

Last 5 finished matches per team in compact form (opponent, score, won, event, finished_at).

Required scope

  • Minimum: cs2:matches:detail

Query

ParamDefaultDescription
time_filter3mWindow for team_*_map_stats and team_*_roster_stats. Accepts 3m, 6m, 1y, all.

Example

curl -H "X-API-Key: $TT_KEY" \
  "https://ticktock.bet/cs2/v1/matches/52ef…/prematch?time_filter=6m"

Use cases

  • Match-preview screen — render the entire pre-match UI from one request.
  • Pre-match modelling — feed team_*_map_stats + team_*_roster_stats + h2h.aggregated + global_map_stats straight into your features.
  • Player-prop pricingteam_*_roster_stats carries every per-side and per-map metric you need.

Authorizations

X-API-Key
string
header
required

Tenant API key issued during onboarding

Path Parameters

match_id
string<uuid>
required

Query Parameters

time_filter
string
default:3m

Window for team/player map_stats: 3m, 6m, 1y, all.

Response

Successful Response

The response is of type Response Get Match Prematch Cs2 V1 Matches Match Id Prematch Get · object.

Last modified on May 10, 2026