A plain REST API that returns JSON over HTTPS. Your developers get a step-by-step guide, a full reference and copy-paste examples, so the integration fits into an afternoon.
const res = await fetch( "https://api.sportstatsapi.com/api/v1/soccer/matches/live", { headers: { Authorization: "Bearer sk_live_…" } } ); const { data } = await res.json();
import requests res = requests.get( "https://api.sportstatsapi.com/api/v1/soccer/matches/live", headers={"Authorization": "Bearer sk_live_…"}, ) data = res.json()["data"]
// WordPress: wp_remote_get $res = wp_remote_get( 'https://api.sportstatsapi.com/api/v1/soccer/matches/live', [ 'headers' => [ 'Authorization' => 'Bearer sk_live_…' ] ] ); $data = json_decode( wp_remote_retrieve_body( $res ), true )['data'];
req, _ := http.NewRequest("GET", "https://api.sportstatsapi.com/api/v1/soccer/matches/live", nil) req.Header.Set("Authorization", "Bearer sk_live_…") res, err := http.DefaultClient.Do(req)
{
"success": true,
"data": [{
"league_name": "Slovenia: 2. Snl",
"status": "52", "start_time": "14:00",
"home_team": { "name": "Bilje", "score": 1 },
"away_team": { "name": "Jadran Dekani", "score": 0 },
"events": [{ "@type": "goal", "@minute": "9" }]
}]
}
No SDK to install and no approval to wait for. If your team can call a URL, they can use SportStatsAPI.
Your access key arrives right after payment and lives in your account, where you can rotate it at any time.
Authorization: Bearer sk_live_…
Ask for today's matches in your sport. Every response is JSON with the same shape across all eight sports.
GET /api/v1/soccer/matches
Use the fields to build your own views, or drop in the ready sentences from Insights. Add a language with one parameter.
GET …/matches/{id}/briefing?lang=de
The main areas of the API at a glance. The reference in the docs lists every field and parameter.
GET /api/v1/{sport}/leaguesEvery competition of a sport with its id and name; the coverage page shows how much data each has.
GET /api/v1/{sport}/matchesMatches by date, date range or competition, from the schedule to the final score.
GET /api/v1/{sport}/matches/liveScores, minute and key events for every match in play, updated as it happens.
GET /api/v1/{sport}/leagues/{id}/standingsLeague tables with position, played, won, lost and points, updated after every match.
GET /api/v1/soccer/matches/{id}/statsTeam statistics and line-ups, where the competition provides them.
GET /api/v1/{sport}/teams/{id}Team profiles and squads; players at /players/{id}.
GET /api/v1/{sport}/matches/{id}/briefingThe match briefing as structured facts and ready sentences, in five languages.
GET /api/v1/{sport}/factsWhat changed: runs, comebacks and table moves, newest first.
{sport} is soccer, basketball, tennis, handball, volleyball, hockey, baseball or american-football. The full reference lists every field and parameter.
Connect your chatbot or assistant to the same data through our endpoint for AI agents, so its answers come from real results instead of guesses.
Point any assistant that supports tools at mcp.sportstatsapi.com and it can look up fixtures, scores, tables and facts on its own.
AI agents can pay for each request in USDC as they go, with no subscription and no key to manage.
Works with Claude and other assistants that support tool use, out of the box.
The short answers. The docs have the long ones.
REST over HTTPS, JSON responses, the same shape for every sport. Dates and times are in UTC.
One header: Authorization: Bearer …. Rotate your key from your account at any time.
Add lang=de, es, it or fr to any request for names and Insights sentences in that language. English is the default.
Your account shows requests per day and per key, so you can see how your product uses the data.
A public status page shows live service health. Email support is included with every plan.
Pick a plan, pay online, and forward the key with a link to the docs. That is everything your team needs to get started.