Quickstart
Make your first request in about five minutes. You need a key from any plan and a tool that can call a URL.
- 1
Get a key
Buy a plan on the pricing page. Your key arrives right after payment and stays in your account, where you can copy or rotate it. Keys start with
sk_live_.Call the API from your server, not from the browser. A key in front-end code can be read by anyone who opens the page. - 2
Make your first request
Ask for today's live soccer matches. Every request is a
GETtohttps://api.sportstatsapi.com/api/v1with your key in theAuthorizationheader.curl "https://api.sportstatsapi.com/api/v1/soccer/matches/live" \ -H "Authorization: Bearer $SPORTSTATS_KEY"const res = await fetch( "https://api.sportstatsapi.com/api/v1/soccer/matches/live", { headers: { Authorization: `Bearer ${process.env.SPORTSTATS_KEY}` } } ); const { data } = await res.json();import os, requests res = requests.get( "https://api.sportstatsapi.com/api/v1/soccer/matches/live", headers={"Authorization": f"Bearer {os.environ['SPORTSTATS_KEY']}"}, ) data = res.json()["data"]$ch = curl_init("https://api.sportstatsapi.com/api/v1/soccer/matches/live"); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer " . getenv("SPORTSTATS_KEY")]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = json_decode(curl_exec($ch), true)["data"]; - 3
Read the response
Results are in
data. Dates and kick-off times are in UTC, and every sport uses the same shape, so the code you write for soccer works for hockey too.Field What it holds statusNSbefore kick-off, the minute while live (52),HT, thenFTstart_date,start_timeKick-off in UTC home_team,away_teamTeam id, name and current score eventsGoals, cards and substitutions with the minute 200 OK: a real match, shortened{ "success": true, "data": [ { "league_code": "l6l", "league_name": "Slovenia: 2. Snl", "status": "52", "start_date": "2026-10-06", "start_time": "14:00", "home_team": { "name": "Bilje", "score": 1 }, "away_team": { "name": "Jadran Dekani", "score": 0 }, "events": [ "..." ] } ] } - 4