Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Sports Data API page →
Media, Film & Knowledge

Sports Data API & Scraper

The Sports Data API returns live scores, fixtures and standings as clean JSON.

50 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary scores endpoint returns events with teams, score, status and competition, and you can pull fixtures, standings, a team, its roster, a match summary and odds. It is built for sports apps, betting tools and fan products that need live sports data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

Sports Data league keys by sport, and the sport value each one needs

Every league action takes two parameters together: sport and league. The leagues action returned exactly 30 league keys on 2026-08-27, listed below with the sport value they pair with. Passing a league on its own fails, even for an unambiguous key like mlb, so the pairing matters more than it looks.

sportLeague keys returned by the leagues actionCount
soccereng.1, eng.2, esp.1, ita.1, ger.1, fra.1, ned.1, por.1, usa.1, mex.1, bra.1, uefa.champions, uefa.europa, fifa.world14
cricketipl, bbl, sheffield-shield, county-championship, cricket-world-cup5
basketballnba, wnba, ncaam, ncaaw4
baseballmlb, college-baseball2
footballnfl, ncaaf2
tennisatp, wta2
hockeynhl1

Measured 2026-08-27. league also accepts a raw ESPN segment that is not in this list, in which case sport is what tells the API where to look. A soccer season year is the year the season starts: season=2025 returned the completed 2025-2026 Premier League table with 38 games played, while fixtures dated August 2026 came back under season 2026.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/sports-data/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "Arsenal",
    "type": "team"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "sports-data",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 288.5,
    "record_count": 1,
    "bytes": 17171,
    "cache_hit": false,
    "completeness_pct": 100,
    "source": "espn",
    "engine": "sports-data"
  },
  "data": {
    "type": "team",
    "query": "Arsenal",
    "results": [
      {
        "source_id": "133604",
        "name": "Arsenal",
        "league": "English Premier League",
        "sport": "Soccer",
        "country": "England",
        "formed_year": "1892",
        "stadium": "Emirates Stadium",
        "badge": "https://r2.thesportsdb.com/images/media/team/badge/uyhbfe[redacted-phone].png",
        "website": "www.arsenal.com"
      }
    ],
    "count": 1
  }
}
Actions

What the Sports Data API does

ActionDescriptionConcrete use caseKey params
scoresLive and final scores for a league — pass a date (YYYYMMDD) or range to get scores for any day; omit it for today/in-play games.Content platforms call scores to get live and final scores for a league.sport, league, date, dates
fixturesUpcoming fixtures and the match schedule for a league, by date or date range (same event shape as scores).Research tools call fixtures to get upcoming fixtures and the match schedule for a league, by date or date range (same event shap….sport, league, date, dates
standingsFull league table / standings with wins, losses, points and per-team stats (soccer leagues accept a season year).Community analysts call standings to get full league table / standings with wins, losses, points and per-team stats (soccer leagues ac….sport, league, season
teamEvery team in a league, or one team's detail (record, next game, logo) when you pass a team_id.Media monitors call team to get every team in a league, or one team's detail (record, next game, logo) when you pass a team_id..sport, league, team_id
rosterA team's full roster / squad with jersey, position, age, height, weight and nationality for each player.Content platforms call roster to get a team's full roster / squad with jersey, position, age, height, weight and nationality for e….sport, league, team_id
summaryFull match summary: boxscore, per-player stats, lineups, play-by-play count, head-to-head, win probability and odds.Research tools call summary to get full match summary.sport, league, event_id
oddsBetting odds (moneyline, spread, over/under) — for one game by event_id, or every scheduled game in the league that has odds.Community analysts call odds to get betting odds (moneyline, spread, over/under).sport, league, event_id, dates
newsLatest news headlines and articles for a league.Media monitors call news to get latest news headlines and articles for a league..sport, league
searchLook up a team or player by name across all sports (returns ids, badges, league, country) — start here when you only have a name.Content platforms call search to look up a team or player by name across all sports (returns ids, badges, league, country).query, type
injuriesCurrent injury report for a league, grouped by team, with each player's status and detail.Research tools call injuries to get current injury report for a league, grouped by team, with each player's status and detail..sport, league
team_scheduleOne team's full season schedule and results (every game the team plays, unlike league-wide fixtures).Community analysts call team_schedule to get one team's full season schedule and results (every game the team plays, unlike league-wide fi….sport, league, team_id, season
conferencesA league's conference / division structure (the directory of groups and sub-groups, e.g. college conferences).Media monitors call conferences to get a league's conference / division structure (the directory of groups and sub-groups, e.g.sport, league
leaguesDirectory of every supported league/competition (key, name, sport) — call this first to discover the league keys the other actions take.Content platforms call leagues to get directory of every supported league/competition (key, name, sport).sport
entity_searchsearch players/teams/tournaments/managers/referees → SofaScore idsResearch tools call entity_search to search players/teams/tournaments/managers/referees → SofaScore ids.query
live_eventsall in-play events for a sportCommunity analysts call live_events to get all in-play events for a sport.sport
scheduled_eventsall scheduled events for a sport on a dateMedia monitors call scheduled_events to get all scheduled events for a sport on a date.sport, date
tournament_seasonsEvery season available for a competition (season id + year) — use the id to scope season-specific calls.Content platforms call tournament_seasons to get every season available for a competition (season id + year).league
match_statisticsdetailed match stats (possession/shots/xG)Research tools call match_statistics to get detailed match stats (possession/shots/xG).event_id
match_lineupslineups + per-player ratings & statsCommunity analysts call match_lineups to get lineups + per-player ratings & stats.event_id
match_momentumattack-momentum graphMedia monitors call match_momentum to get attack-momentum graph.event_id
match_incidentsgoal/card/sub timelineContent platforms call match_incidents to get goal/card/sub timeline.event_id
match_best_playersbest player per teamResearch tools call match_best_players to get best player per team.event_id
match_h2hhead-to-head duel recordCommunity analysts call match_h2h to get head-to-head duel record.event_id
match_managersboth managers for a matchMedia monitors call match_managers to get both managers for a match.event_id
match_oddsmulti-market odds for a matchContent platforms call match_odds to get multi-market odds for a match.event_id
match_player_heatmapa player's touch heatmap in a matchResearch tools call match_player_heatmap to get a player's touch heatmap in a match.event_id, player_id
match_player_shotmapa player's shotmap in a matchCommunity analysts call match_player_shotmap to get a player's shotmap in a match.event_id, player_id
match_average_positionsaverage player positions on the pitchMedia monitors call match_average_positions to get average player positions on the pitch.event_id
playerPlayer profile: current team, position, market value, preferred foot, height, date of birth and contract — by SofaScore player id.Content platforms call player to get player profile.player_id
player_season_statsplayer's season statistics in a leagueResearch tools call player_season_stats to get player's season statistics in a league.player_id, league, season, type
player_heatmapplayer's season heatmapCommunity analysts call player_heatmap to get player's season heatmap.player_id, league, season
player_attributesplayer attribute radar (att/tech/tac/def/cre)Media monitors call player_attributes to get player attribute radar (att/tech/tac/def/cre).player_id
player_transfersA player's full transfer history (from/to club, fee, date) by SofaScore player id.Content platforms call player_transfers to get a player's full transfer history (from/to club, fee, date) by SofaScore player id..player_id
player_recentplayer's recent matchesResearch tools call player_recent to get player's recent matches.player_id
team_detailsTeam profile: manager, venue, founding year and recent pregame form — by SofaScore team id.Community analysts call team_details to get team profile.team_id
team_squadA club's full current squad (every player with id, position, value) by SofaScore team id.Media monitors call team_squad to get a club's full current squad (every player with id, position, value) by SofaScore team id..team_id
team_transfersA club's transfers in and out (player, club, fee, date) by SofaScore team id.Content platforms call team_transfers to get a club's transfers in and out (player, club, fee, date) by SofaScore team id..team_id
team_season_statsteam's season statistics in a leagueResearch tools call team_season_stats to get team's season statistics in a league.team_id, league, season, type
team_formteam recent form + next/prev eventCommunity analysts call team_form to get team recent form + next/prev event.team_id
team_goal_distributionsgoals scored/conceded by match periodMedia monitors call team_goal_distributions to get goals scored/conceded by match period.team_id, league, season
season_standingsSofaScore league table for a competition (overall / home / away splits) with goals for/against and goal difference.Content platforms call season_standings to get sofaScore league table for a competition (overall / home / away splits) with goals for/agains….league, season, type
season_top_playersseason leaders by categoryResearch tools call season_top_players to get season leaders by category.league, season, type
season_top_teamsseason top teams by categoryCommunity analysts call season_top_teams to get season top teams by category.league, season, type
team_of_weekteam of the week (round or rounds list)Media monitors call team_of_week to get team of the week (round or rounds list).league, season, round_id
power_rankingsseason power rankingsContent platforms call power_rankings to get season power rankings.league, season, round_id
cup_treeknockout bracket / cup treeResearch tools call cup_tree to get knockout bracket / cup tree.league, season
tournament_detailsCompetition metadata: country, tier, and the clubs with the most titles — by league key.Community analysts call tournament_details to get competition metadata.league
managerManager profile and full club-by-club career history (matches, wins, points) by SofaScore manager id.Media monitors call manager to get manager profile and full club-by-club career history (matches, wins, points) by SofaScore man….manager_id
refereereferee details + per-tournament statsContent platforms call referee to get referee details + per-tournament stats.referee_id
rankingsWorld rankings — FIFA men's football, or ATP / WTA tennis (set type; defaults to FIFA).Research tools call rankings to get world rankings.type
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/sports-data/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"Arsenal","type":"team"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.sports-data.search with {"query":"Arsenal","type":"team"}.
Use cases

Who uses this API and why

  • Sports apps call scores and standings to show live results and league tables.
  • Betting tools use odds and fixtures to price and schedule markets.
  • Fan products use team and roster to build club and player pages.
FAQ

Questions developers ask before integrating

Why does {"league": "mlb"} fail when mlb only exists in one sport?

Because sport is validated before any league lookup happens. Sending only {"league": "mlb"} returns MISSING_PARAM with the message "missing: sport"; sending {"sport": "baseball", "league": "mlb"} returns the scoreboard. This applies to every league-scoped action: scores, fixtures, standings, team, roster, odds, news, injuries, team_schedule and conferences. The leagues action is the exception, since it works with no parameters and tells you which sport goes with which key.

How do I tell whether a game has started? The score is already 0.

Read status.state, not the score. Before kickoff both teams come back with score "0" and winner false, not null. A Premier League fixture on 2026-08-29 returned exactly that hours before it started. The tells are status.state "pre", status.period null, and an empty statistics object. Once the game is live, state flips to "in" and statistics fills up; when it ends, state is "post" and completed is true.

What do status.detail, clock and period contain for each sport?

They are sport-shaped, not normalized. A finished Premier League game returned detail "FT", clock "90'+6'" and period 2, the half. A live MLB game returned detail "Top 8th", clock "0:00" and period 8, the inning, since baseball has no game clock and clock is a placeholder there. An unplayed game puts the human kickoff time in detail, for example "Sat, August 29th at 7:30 AM EDT". Treat detail as display text and state as the machine field.

Why is odds null on some events and populated on others?

Odds only exist while a line is open. On 2026-08-27 every completed Premier League game from the previous weekend returned odds: null, while an upcoming fixture returned {provider: "DraftKings", details: "LIV -195", over_under: 2.5} inside the same events[] shape. If you need odds across a slate, call the odds action without an event_id. It lists every scheduled game in the league that currently has a line, instead of making you filter nulls out of the scoreboard.

What season year do I pass for a soccer league?

The year the season starts. season=2025 on eng.1 returned the finished 2025-2026 Premier League table: 20 rows, group "English Premier League 2025-2026", every team on 38 games played, Arsenal first on 85 points. Fixtures played in August 2026 belong to the next season and come back with season 2026. Omit season and you get the current one. NBA standings ignore the field and returned 30 rows with no season in the payload.

Where do event_id and team_id come from, and are they stable?

They are ESPN numeric ids returned as strings, and they are stable identifiers you can store. Any scores, fixtures or team_schedule row carries an event_id, 401879322 for Man United at Hull City on 2026-08-22, and that feeds the summary and odds actions. teams[].team_id from the team action feeds roster and team_schedule: Hull City is 306, Manchester United 360, Liverpool 364 and Arsenal 359 in eng.1. Ids are scoped per sport, so a soccer team_id will not resolve under basketball.

How do I request a date range instead of today?

date takes ESPN's YYYYMMDD format, and a range is two of them joined by a hyphen: "20260822-20260826" returned the nine Premier League games played across that window. Omit date entirely and you get today plus anything in play. The parameter is aliased as dates, and an unparseable value is ignored rather than rejected, so a malformed date silently gives you today's card. Check meta.record_count if a range comes back smaller than you expected.

What is the Sports Data API?

Sports Data API is a ReefAPI endpoint group for scores, schedules, teams and standings. It returns live JSON through POST requests under /sports-data/v1.

Is the Sports Data API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Sports Data calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Sports Data login or account?

No login to Sports Data is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Sports Data data?

The page example is captured from a live scores call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Sports Data API use?

Sports Data actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Sports Data from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call sports-data actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Sports Data API a Sports Data scraper?

It is the managed alternative to a DIY Sports Data scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same scores, schedules, teams and standings back as clean JSON.

docs / sports-data

Sports Data

Scores, schedules, teams and standings.

base /sports-data/v150 endpoints
post/sports-data/v1/scores1 credit

Live and final scores for a league — pass a date (YYYYMMDD) or range to get scores for any day; omit it for today/in-play games.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
dateoptionalDate filter, ESPN format YYYYMMDD (or a range 'YYYYMMDD-YYYYMMDD'). Omit for today / live.
Try in playground →
post/sports-data/v1/fixtures1 credit

Upcoming fixtures and the match schedule for a league, by date or date range (same event shape as scores).

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
dateoptionalDate filter, ESPN format YYYYMMDD (or a range 'YYYYMMDD-YYYYMMDD'). Omit for today / live.
Try in playground →
post/sports-data/v1/standings1 credit

Full league table / standings with wins, losses, points and per-team stats (soccer leagues accept a season year).

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
Try in playground →
post/sports-data/v1/team1 credit

Every team in a league, or one team's detail (record, next game, logo) when you pass a team_id.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
team_idoptionalESPN team id — get it from the `team` action's teams[].team_id for the same sport/league (e.g. 13 = NBA Denver Nuggets).
Try in playground →
post/sports-data/v1/roster1 credit

A team's full roster / squad with jersey, position, age, height, weight and nationality for each player.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
team_idrequiredESPN team id — get it from the `team` action's teams[].team_id for the same sport/league (e.g. 13 = NBA Denver Nuggets).
Try in playground →
post/sports-data/v1/summary2 credits

Full match summary: boxscore, per-player stats, lineups, play-by-play count, head-to-head, win probability and odds.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/odds1 credit

Betting odds (moneyline, spread, over/under) — for one game by event_id, or every scheduled game in the league that has odds.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
event_idoptionalOptional ESPN event id: returns the closing line for that one game; omit to list every scheduled game that currently has odds.
dateoptionalDate filter, ESPN format YYYYMMDD (or a range 'YYYYMMDD-YYYYMMDD'). Omit for today / live.
Try in playground →
post/sports-data/v1/news1 credit

Latest news headlines and articles for a league.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
Try in playground →
post/sports-data/v1/injuries1 credit

Current injury report for a league, grouped by team, with each player's status and detail.

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
Try in playground →
post/sports-data/v1/team_schedule1 credit

One team's full season schedule and results (every game the team plays, unlike league-wide fixtures).

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
team_idrequiredESPN team id — get it from the `team` action's teams[].team_id for the same sport/league (e.g. 13 = NBA Denver Nuggets).
seasonoptionalSeason year (soccer standings need it; default current season).
Try in playground →
post/sports-data/v1/conferences1 credit

A league's conference / division structure (the directory of groups and sub-groups, e.g. college conferences).

ParameterAllowed / rangeDescription
sportrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
leaguerequirednba · wnba · ncaam · ncaaw · nfl · ncaaf · mlb · college-baseball · nhl · atp · wta · eng.1 · eng.2 · esp.1 · ita.1 · ger.1 · fra.1 · ned.1 · por.1 · usa.1 · mex.1 · bra.1 · uefa.champions · uefa.europa · fifa.world · ipl · bbl · sheffield-shield · county-championship · cricket-world-cupLeague key (e.g. nba, nfl, mlb, nhl, eng.1, esp.1, ita.1, ger.1, fra.1, uefa.champions, usa.1) or a raw ESPN segment ('bra.1') / cricket series id. SofaScore actions also accept a numeric tournament id.
Try in playground →
post/sports-data/v1/leaguesfree

Directory of every supported league/competition (key, name, sport) — call this first to discover the league keys the other actions take.

ParameterAllowed / rangeDescription
sportoptionalbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
Try in playground →
post/sports-data/v1/live_events1 credit

all in-play events for a sport

ParameterAllowed / rangeDescription
sport = footballrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
Try in playground →
post/sports-data/v1/scheduled_events1 credit

all scheduled events for a sport on a date

ParameterAllowed / rangeDescription
sport = footballrequiredbaseball · basketball · cricket · football · hockey · soccer · tennisSport family (ESPN path). Required with a raw league segment; a known league key (e.g. 'nba') can resolve the sport on its own.
daterequiredDate filter, ESPN format YYYYMMDD (or a range 'YYYYMMDD-YYYYMMDD'). Omit for today / live.
Try in playground →
post/sports-data/v1/tournament_seasonsfree

Every season available for a competition (season id + year) — use the id to scope season-specific calls.

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
Try in playground →
post/sports-data/v1/match_statistics2 credits

detailed match stats (possession/shots/xG)

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_lineups2 credits

lineups + per-player ratings & stats

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_momentum1 credit

attack-momentum graph

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_incidents1 credit

goal/card/sub timeline

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_best_players1 credit

best player per team

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_h2h1 credit

head-to-head duel record

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_managers1 credit

both managers for a match

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_odds2 credits

multi-market odds for a match

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/match_player_heatmap1 credit

a player's touch heatmap in a match

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
Try in playground →
post/sports-data/v1/match_player_shotmap1 credit

a player's shotmap in a match

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
Try in playground →
post/sports-data/v1/match_average_positions1 credit

average player positions on the pitch

ParameterAllowed / rangeDescription
event_idrequiredESPN event/game id — take it from the `event_id` of any scores, fixtures or team_schedule result for the same sport/league.
Try in playground →
post/sports-data/v1/player1 credit

Player profile: current team, position, market value, preferred foot, height, date of birth and contract — by SofaScore player id.

ParameterAllowed / rangeDescription
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
Try in playground →
post/sports-data/v1/player_season_stats2 credits

player's season statistics in a league

ParameterAllowed / rangeDescription
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
type = overalloptionaloverall · home · awayStat split. Other SofaScore split keys are accepted but a wrong one 404s.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/player_heatmap1 credit

player's season heatmap

ParameterAllowed / rangeDescription
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/player_attributes1 credit

player attribute radar (att/tech/tac/def/cre)

ParameterAllowed / rangeDescription
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
Try in playground →
post/sports-data/v1/player_transfers1 credit

A player's full transfer history (from/to club, fee, date) by SofaScore player id.

ParameterAllowed / rangeDescription
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
Try in playground →
post/sports-data/v1/player_recent1 credit

player's recent matches

ParameterAllowed / rangeDescription
player_idrequiredSofaScore player id (e.g. 839956 = Erling Haaland). Resolve unknown players from a SofaScore player URL or a team_squad result.
Try in playground →
post/sports-data/v1/team_details1 credit

Team profile: manager, venue, founding year and recent pregame form — by SofaScore team id.

ParameterAllowed / rangeDescription
team_idrequiredSofaScore team id (NOT the ESPN id) — e.g. 17 = Manchester City, 42 = Arsenal. Resolve unknown teams via a SofaScore team URL.
Try in playground →
post/sports-data/v1/team_squad1 credit

A club's full current squad (every player with id, position, value) by SofaScore team id.

ParameterAllowed / rangeDescription
team_idrequiredSofaScore team id (NOT the ESPN id) — e.g. 17 = Manchester City, 42 = Arsenal. Resolve unknown teams via a SofaScore team URL.
Try in playground →
post/sports-data/v1/team_transfers1 credit

A club's transfers in and out (player, club, fee, date) by SofaScore team id.

ParameterAllowed / rangeDescription
team_idrequiredSofaScore team id (NOT the ESPN id) — e.g. 17 = Manchester City, 42 = Arsenal. Resolve unknown teams via a SofaScore team URL.
Try in playground →
post/sports-data/v1/team_season_stats2 credits

team's season statistics in a league

ParameterAllowed / rangeDescription
team_idrequiredSofaScore team id (NOT the ESPN id) — e.g. 17 = Manchester City, 42 = Arsenal. Resolve unknown teams via a SofaScore team URL.
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
type = overalloptionaloverall · home · awayStat split. Other SofaScore split keys are accepted but a wrong one 404s.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/team_form1 credit

team recent form + next/prev event

ParameterAllowed / rangeDescription
team_idrequiredSofaScore team id (NOT the ESPN id) — e.g. 17 = Manchester City, 42 = Arsenal. Resolve unknown teams via a SofaScore team URL.
Try in playground →
post/sports-data/v1/team_goal_distributions1 credit

goals scored/conceded by match period

ParameterAllowed / rangeDescription
team_idrequiredSofaScore team id (NOT the ESPN id) — e.g. 17 = Manchester City, 42 = Arsenal. Resolve unknown teams via a SofaScore team URL.
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/season_standings2 credits

SofaScore league table for a competition (overall / home / away splits) with goals for/against and goal difference.

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
type = totaloptionaltotal · home · awayWhich standings table to return.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/season_top_players2 credits

season leaders by category

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
type = overalloptionaloverall · home · awaySplit for the season leaders.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/season_top_teams2 credits

season top teams by category

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
type = overalloptionaloverall · home · awaySplit for the season leaders.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/team_of_week2 credits

team of the week (round or rounds list)

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
round_idoptionalSpecific round id; omit to list the available rounds.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/power_rankings2 credits

season power rankings

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
round_idoptionalSpecific round id; omit to list the available rounds.
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/cup_tree2 credits

knockout bracket / cup tree

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
seasonoptionalSeason year (soccer standings need it; default current season).
season_idoptionalExplicit SofaScore season id (skips season resolution).
Try in playground →
post/sports-data/v1/tournament_details1 credit

Competition metadata: country, tier, and the clubs with the most titles — by league key.

ParameterAllowed / rangeDescription
leaguerequiredLeague key (e.g. 'eng.1', 'nba'), a raw name to search, or a SofaScore numeric unique-tournament id.
Try in playground →
post/sports-data/v1/manager1 credit

Manager profile and full club-by-club career history (matches, wins, points) by SofaScore manager id.

ParameterAllowed / rangeDescription
manager_idrequiredSofaScore manager id (from entity_search).
Try in playground →
post/sports-data/v1/referee1 credit

referee details + per-tournament stats

ParameterAllowed / rangeDescription
referee_idrequiredSofaScore referee id (from entity_search).
Try in playground →
post/sports-data/v1/rankings1 credit

World rankings — FIFA men's football, or ATP / WTA tennis (set type; defaults to FIFA).

ParameterAllowed / rangeDescription
type = fifaoptionalfifa · atp · wtaWhich world ranking to return. Closed set: fifa, atp, wta (a wrong value returns INVALID_PARAM).
Try in playground →