GET/sofascore/categoriesapiKey1 credit/request
Returns every category (country or region, such as England or International) SofaScore lists for a sport, with id, name, slug, flag, optional two-letter code, and priority, highest priority first. Use a category `id` with category-tournaments (its competitions) and with scheduled-events (its fixtures on a date). The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, and `waterpolo`. Slugs are not unique across categories, so identify a category by `id`.
Required: sport (24 allowed values: american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo).
Sampled 14 Oct 2026: 299 items. Filled in every item: id, name, slug, flag, priority. Not in every item: alpha2 (275). In the sample: priority: 0 to 20, median 0; name: “World” and 297 other values; flag: “international” and 237 other values; alpha2: “EN” and 219 other values.
Open in Playground
GET/sofascore/category-tournamentsapiKey1 credit/request
Returns the competitions (unique tournaments) inside one category, most followed first. Each `id` is the competition id the tournament-seasons, standings, tournament-rounds, and round-events endpoints take. Get the category `id` from the categories endpoint. An empty `tournaments` list is a valid response: some categories exist without any competitions. Returns 404 for an unknown category id.
Required: id.
Sampled 14 Oct 2026: 20 items. Filled in every item: id, name, slug, category_id, category_name, user_count. In the sample: user_count: 20 to 1,205,580, median 7,031; name: “Premier League” and 19 other values.
Open in Playground
GET/sofascore/draft-picksapiKey2 credits/request
Returns one round of a league draft: each pick with the overall and in-round number, the drafting team, and the drafted prospect (name, position, college or club, top-prospect flag and the player id when SofaScore has one), plus the teams that hold no pick in that round. The `league` enum accepts `nba` (rounds 1 and 2) and `nfl` (rounds 1 to 7); other rounds return 400. Get `year` from the draft endpoint's `draft.year` and `previous_draft.year`; SofaScore keeps only recent drafts, so an older year returns 404. Returns 404 when SofaScore has no picks for that year and round.
Required: league (2 allowed values: nba, nfl), year, round.
Sampled 14 Oct 2026: 30 items. Filled in every item: pick_in_round, overall_pick, round, team, prospect. In the sample: pick_in_round: 1 to 30, median 15; overall_pick: 1 to 30, median 15.
Open in Playground
GET/sofascore/draftapiKey1 credit/request
Returns the draft attached to a league season: the upcoming or just-held `draft` and the `previous_draft`, each with its year, start and end time, status, the draft `rounds` (the valid `round` values for draft-picks) and whether the lottery is complete. The `league` enum accepts `nba` and `nfl`. Get `season` from tournament-seasons (NBA competition id 132, NFL 9464). A season without a draft, or a season id that does not belong to the league, returns 404. A season whose draft is not scheduled yet returns only `previous_draft`.
Required: league (2 allowed values: nba, nfl), season.
Sampled 14 Oct 2026: 21 fields returned with a value. In the sample: draft.start_timestamp: 2026-06-23; season: 80,229; league: “nba”; has_lottery_draw: true; draft.rounds: 2 entries; lottery_year: 2,026; prospects_year: 2,026; draft.year: 2,026.
Open in Playground
GET/sofascore/esports-gameapiKey1 credit/request
Returns one resource of one esports game from SofaScore, chosen with `part`: `statistics` (team totals such as kills, towers and barracks for Dota 2, gold and drakes for League of Legends), `lineups` (every player with hero or champion and per-player statistics such as net worth, gold or ADR), `bans` (banned heroes or champions per side) and `rounds` (Counter-Strike round history with outcome, winner and side per round, including overtime). Only the requested block is returned. Get the game id from sofascore-event-esports-games. Statistics and bans exist for Dota 2 and League of Legends only (404 for Counter-Strike), rounds fill for Counter-Strike only (an empty list otherwise) and lineups work for all three. Returns 404 when SofaScore has no such data for the game.
Required: id, part (4 allowed values: statistics, lineups, bans, rounds).
Sampled 14 Oct 2026: 5 items. Filled in every item: player, character, statistics.
Open in Playground
GET/sofascore/event-at-bat-pitchesapiKey1 credit/request
Returns every pitch of one baseball at-bat from SofaScore, in pitch order: the ball-strike-out count, outcome code, pitch type and name, speed in kilometres per hour, zone, plate location, strike-zone bounds, batter and pitcher hand, the score, and for balls put in play the hit type, trajectory, hardness and location plus runner movements and fielder credits. Get the at-bat id (`at_bat_id`) from sofascore-event-at-bats for the same event. Returns 404 when SofaScore has no pitches for that at-bat, which includes an at-bat id that does not belong to the event.
Required: id, at_bat_id.
Sampled 14 Oct 2026: 7 items. Filled in every item: id, sequence, inning, inning_half, type, outcome, status, start_time and 28 more. Not in every item: hit_type (1), hit_trajectory (1), hit_hardness (1), hit_location (1). In the sample: start_time: 2026-10-06; outcome: bB (3), kKL (2), kF (1) and 1 more; sequence: 3 to 9, median 6; hit_type: “GB”; at_bat_over: true in 1 of 7; end_time: 2026-10-06; balls: 0 to 3, median 2; strikes: 1 to 2, median 2.
Open in Playground
GET/sofascore/event-at-batsapiKey2 credits/request
Returns a baseball match's at-bat timeline from SofaScore, in play order: for each plate appearance the inning and half (`top` or `bottom`), pitcher, hitter, their teams, when it ended and the home and away win probabilities before and after it. Use an at-bat `id` with sofascore-event-at-bat-pitches to read its pitches. Returns 404 when SofaScore has no at-bat data for the match, which includes matches that have not started and sports other than baseball.
Required: id.
Sampled 14 Oct 2026: 73 items. Filled in every item: id, inning, inning_half, pitcher, pitcher_team, hitter, hitter_team, end_timestamp and 5 more. In the sample: end_timestamp: 2026-10-06 to 2026-10-07; inning_half: top (39), bottom (34); inning: 1 to 9, median 5; end_time: 2026-10-06 to 2026-10-07; home_win_probability_start: 3.5 to 51.9, median 14.4; away_win_probability_start: 48.1 to 96.5, median 85.6; home_win_probability: 0 to 51.9, median 14; away_win_probability: 48.1 to 100, median 86.
Open in Playground
GET/sofascore/event-average-positionsapiKey1 credit/request
Returns every player's average position on the pitch during a football match (`average_x` and `average_y` on SofaScore's 0-100 pitch scale, plus the number of touches behind it) for the home and away sides, and the substitutions with their minute. Returns 404 when SofaScore has no positional data for the match, which includes unstarted matches and sports other than football.
Required: id.
Sampled 14 Oct 2026: 14 items. Filled in every item: player, average_x, average_y, points_count. In the sample: points_count: 10 to 91, median 42.
Open in Playground
GET/sofascore/event-baseball-top-performersapiKey1 credit/request
Returns a baseball match's top performers from SofaScore: each pitcher or batter (`role`) with a rating, their team and a snake_case map of the statistics that earned the mention (for example pitching strike outs, batting home runs and runs batted in). Returns 404 when SofaScore has no top performers for the match, which includes matches that have not started and sports other than baseball.
Required: id.
Sampled 14 Oct 2026: 3 items. Filled in every item: role, rating, player, team, statistics. In the sample: rating: 0.23 to 0.5, median 0.23; role: “pitcher” and 1 other value.
Open in Playground
GET/sofascore/event-best-playersapiKey1 credit/request
Returns a match's best-rated players per side, the overall top-rated list, and the player of the match (each with team and value) from SofaScore. Covers football (value is the match rating, label `rating`) and ice hockey (label `pts`, value the points scored; a goalkeeper with no points has no numeric `value` and carries SofaScore's dash in `value_text`). The basketball, baseball and tennis matches checked returned no summary. Returns 404 when SofaScore has no best-players summary for the match, which includes matches that have not started, sports without one and fixtures without rated players.
Required: id.
Sampled 14 Oct 2026: 10 items. Filled in every item: player, team, label, value. In the sample: value: 6.9 to 9.8, median 7.8.
Open in Playground
GET/sofascore/event-commentsapiKey2 credits/request
Returns a match's text commentary (minute, type, text, and the players involved, plus the running score on scoring lines) from SofaScore, newest first. Works for football and basketball matches that have commentary. An empty `comments` list is a valid response (a live match with no lines yet). Returns 404 when SofaScore has no commentary for the match, which includes matches that have not started.
Required: id.
Sampled 14 Oct 2026: 114 items. Filled in every item: id, type, text. Not in every item: period (113), minute (111), is_home (107), player (107), player_in (5), player_out (5), home_score (8), away_score (8) and 1 more. In the sample: minute: 1 to 94, median 52; is_home: true in 52 of 107; home_score: 1 to 5, median 2; away_score: 0 to 3, median 2.
Open in Playground
GET/sofascore/event-esports-gamesapiKey1 credit/request
Returns the games (maps) of an esports match from SofaScore: each game's id, status, start time, length in seconds, winner, score per side (kills for Dota 2 and League of Legends, rounds with half and overtime split for Counter-Strike), the map for Counter-Strike, and whether complete statistics exist. Use a game `id` with sofascore-esports-game to read its statistics, lineups, bans or rounds. Returns 404 when SofaScore has no games for the event, which includes sports other than esports.
Required: id.
Sampled 14 Oct 2026: 2 items. Filled in every item: id, status, start_timestamp, start_time, length_seconds, winner_code, home_score, away_score and 2 more. In the sample: start_timestamp: 2026-10-06; length_seconds: 2,015 to 2,543, median 2,015; has_complete_statistics: true in 2 of 2; start_time: 2026-10-06.
Open in Playground
GET/sofascore/event-graphapiKey1 credit/request
Returns a match's momentum graph as minute and value points (positive values favour the home side) plus period length information, from SofaScore. Covers football, ice hockey and basketball. An empty `points` list is a valid response (a live match that has just started). Returns 404 when SofaScore has no momentum graph for the match, which includes matches that have not started and sports without one such as tennis and baseball.
Required: id.
Sampled 14 Oct 2026: 92 items. Filled in every item: minute, value. In the sample: minute: 1 to 90.5, median 45.5; value: -85 to 81, median 2.
Open in Playground
GET/sofascore/event-h2hapiKey2 credits/request
Returns the historical head-to-head win/draw record between a match's two teams (and managers, when available) from SofaScore.
Required: id.
Sampled 14 Oct 2026: 7 fields returned with a value. In the sample: team_duel.home_wins: 8; team_duel.away_wins: 2; team_duel.draws: 0; manager_duel.home_wins: 3; manager_duel.away_wins: 1; manager_duel.draws: 0.
Open in Playground
GET/sofascore/event-highlightsapiKey1 credit/request
Returns the highlight videos attached to a match: title, subtitle (for example `Full Highlights`), video `url`, thumbnail, the publish time, whether it is the key highlight, and the countries it is restricted to when SofaScore limits it. `media_type_code` is SofaScore's own numeric code and is returned untranslated. Returns 404 when the match has no highlight videos, which includes matches that have not finished.
Required: id.
Sampled 14 Oct 2026: 2 items. Filled in every item: id, title, subtitle, url, thumbnail_url, media_type_code, key_highlight, livestream and 2 more. Not in every item: for_countries (1). In the sample: created_timestamp: 2026-09-20; title: “Man City 5 - 3 Sunderland”; url: youtube.com; livestream: true in 0 of 2; for_countries: median 6 entries; subtitle: “Full Highlights”; thumbnail_url: i.ytimg.com; created_at: 2026-09-20.
Open in Playground
GET/sofascore/event-incidentsapiKey1 credit/request
Returns one match's goal, card, substitution, and period timeline from SofaScore. An empty `incidents` list is a valid response before kickoff.
Required: id.
Sampled 14 Oct 2026: 22 items. Filled in every item: type, time. Not in every item: added_time (4), home_score (8), away_score (5), text (2), is_home (10), player (9), player_in (9), player_out (9) and 2 more. In the sample: type: substitution (9), goal (6), card (3) and 2 more; time: 14 to 90, median 72; text: “FT” and 1 other value; is_home: true in 10 of 10; added_time: 1 to 999, median 4; home_score: 1 to 4, median 2; away_score: 1 to 2, median 2; player: “Mohamed Salah” and 7 other values.
Open in Playground
GET/sofascore/event-inningsapiKey2 credits/request
Returns a cricket match's innings scorecards from SofaScore. Each innings has the batting and bowling teams, runs, wickets, overs in cricket notation (18.4 is 18 overs and 4 balls), extras (wides, no balls, byes, leg byes, penalty), every batter's line (runs, balls, fours, sixes, dismissal with the bowler and fielder, fall-of-wicket score and over), every bowler's figures (overs, maidens, runs, wickets, wides, no balls), the partnerships and a derived fall-of-wickets list. Works for T20, one-day and Test matches (a Test lists up to four innings). Returns 404 when SofaScore has no innings data for the match, which includes matches that have not started and sports other than cricket.
Required: id.
Sampled 14 Oct 2026: 2 items. Filled in every item: id, number, batting_team, bowling_team, runs, wickets, overs, extras and 4 more. In the sample: number: 1 to 2, median 1; batting: median 12 entries; runs: 155 to 161, median 155; wickets: 5 to 8, median 5; overs: 18 to 20, median 18; bowling: median 5 entries; partnerships: median 6 entries; fall_of_wickets: median 5 entries.
Open in Playground
GET/sofascore/event-lineupsapiKey2 credits/request
Returns one match's starting XI and substitutes per side, with formation. Returns 404 when SofaScore has no lineups for the match. A missing-lineup result may be reused for up to two minutes before checking again.
Required: id.
Sampled 14 Oct 2026: 20 items. Filled in every item: player, jersey_number, position. Not in every item: substitute (9). In the sample: position: M (9), D (6), F (3) and 1 more; jersey_number: 1 to 73, median 11; substitute: true in 9 of 9.
Open in Playground
GET/sofascore/event-managersapiKey1 credit/request
Returns the two managers (coaches) of a match with their SofaScore ids, names and slugs. The manager `id` works with the manager and manager-events endpoints. Returns 404 when SofaScore lists no managers for the match, which includes tennis matches.
Required: id.
Sampled 14 Oct 2026: 9 fields returned with a value. In the sample: home.name: “Enzo Maresca”; home.short_name: “E. Maresca”; away.name: “Régis Le Bris”; away.short_name: “R. L. Bris”.
Open in Playground
GET/sofascore/event-oddsapiKey2 credits/request
Returns one match's betting markets and choices. Returns 404 when SofaScore has no odds for the match.
Required: id.
Sampled 14 Oct 2026: 18 items. Filled in every item: name, group, period, choices. In the sample: period: Full-time (17), 1st half (1); name: “Full time” and 9 other values; choices: median 2 entries; group: “1X2” and 8 other values.
Open in Playground
GET/sofascore/event-player-heatmapapiKey1 credit/request
Returns one player's touch locations in a football match as `points`, each an `x` and `y` on SofaScore's 0-100 pitch scale. Get `player_id` from event-lineups. Returns 404 when SofaScore has no heatmap for that player in that match, which includes players who did not play, unstarted matches and sports other than football.
Required: id, player_id.
Sampled 14 Oct 2026: 35 items. Filled in every item: x, y.
Open in Playground
GET/sofascore/event-player-statisticsapiKey1 credit/request
Returns one player's statistics inside one football match (minutes, rating, passes, duels, shots, expected goals, and more) as a snake_case metric map. The set of metrics depends on the player's position, so absent metrics are omitted rather than zero. Get `player_id` from event-lineups. Returns 404 when SofaScore has no statistics for that player in that match.
Required: id, player_id.
Sampled 14 Oct 2026: 14 fields returned with a value. In the sample: player.jersey_number: 9; player.name: “Erling Haaland”; player.short_name: “E. Haaland”; player.position: “F”; team.name: “Manchester City”; team.short_name: “Man City”; position: “F”.
Open in Playground
GET/sofascore/event-point-by-pointapiKey2 credits/request
Returns a racket-sport match's point-by-point timeline, with sets and games in play order. Tennis sets list games and each game lists every point with the running score (`0`, `15`, `30`, `40`, `A`, or a plain count in a tie-break), the server, the game winner, a `description` of `ace` or `double_fault` where SofaScore flags it, and break point (`break_point`) or set or match point (`set_or_match_point`) markers per player. Table tennis and badminton sets list their points directly. The ace flag is a lower bound of the match's real ace count. Darts matches are not covered. Returns 404 when SofaScore has no point-by-point data for the match, which includes matches that have not started and sports without it.
Required: id.
Sampled 14 Oct 2026: 3 items. Filled in every item: set, games. In the sample: set: 1 to 3, median 2; games: median 10 entries.
Open in Playground
GET/sofascore/event-pregame-formapiKey1 credit/request
Returns each side's form going into a match: league position, points (football) or win-loss record (basketball) in `value` with the `label` that names it, the average player rating where SofaScore has one, and the recent results (`W`, `D`, `L`) in the order SofaScore returns them. Covers football and basketball; returns 404 when SofaScore has no pre-game form for the match, which includes tennis matches.
Required: id.
Sampled 14 Oct 2026: 10 fields returned with a value. In the sample: home.position: 1; label: “Pts”; home.form: 4 entries; home.value: 12; home.avg_rating: 7.91; away.position: 15; away.value: 4; away.avg_rating: 7.13.
Open in Playground
GET/sofascore/event-shotmapapiKey2 credits/request
Returns every shot in a football or ice hockey match. Football shots carry the shooter, side, outcome (`shot_type`), situation, body part, expected goals (xG and xGOT), minute, and pitch and goal-mouth coordinates. Ice hockey shots carry the shooter, team, side, shot technique (`shot_type`, for example `wrist`), `outcome` (`made`, `saved`, `missed` or `blocked`), `strength` (`even`, `powerplay` or `shorthanded`), period and period clock, rink `coordinates` and, for most shots, `xg`. An empty `shots` list is a valid response (a live match with no shots yet). Returns 404 when SofaScore has no shot map for the match, which includes matches that have not started, basketball and other sports without one, and fixtures without expected-goals coverage.
Required: id.
Sampled 14 Oct 2026: 33 items. Filled in every item: id, player, goalkeeper, is_home, shot_type, situation, body_part, goal_mouth_location and 8 more. Not in every item: added_time (4), block_coordinates (16), goal_type (8). In the sample: shot_type: miss (10), block (8), goal (8) and 2 more; xg: 0.02 to 0.97, median 0.08; goal_mouth_location: “low-centre” and 9 other values; is_home: true in 16 of 33; situation: assisted (16), corner (7), set-piece (4) and 4 more; body_part: right-foot (15), left-foot (13), head (5); xgot: 0 to 1, median 0; minute: 6 to 90, median 59.
Open in Playground
GET/sofascore/event-statisticsapiKey2 credits/request
Returns one match's statistics (possession, shots, passes, and more, grouped and split by period). Returns 404 when SofaScore has no tracked statistics for the match.
Required: id.
Sampled 14 Oct 2026: 3 items. Filled in every item: period, groups. In the sample: period: “ALL” and 2 other values; groups: median 7 entries.
Open in Playground
GET/sofascore/event-team-heatmapapiKey1 credit/request
Returns one team's touch locations in a football match as `player_points` (outfield players) and `goalkeeper_points`, each point an `x` and `y` on SofaScore's 0-100 pitch scale. `team_id` must be the home or away team of the event; get both ids from the event endpoint. Returns 404 when SofaScore has no heatmap for that team in that match, which includes teams that did not play it, unstarted matches and sports other than football.
Required: id, team_id.
Sampled 14 Oct 2026: 722 items. Not in every item: x (500), y (500).
Open in Playground
GET/sofascore/event-team-streaksapiKey1 credit/request
Returns a match's team streaks and trends: `general` statements about each side's recent matches (for example `Wins` 6 or `No goals conceded` 4) and `head2head` statements about their meetings. Each item names the streak, a `value` that is either a run length (`6`) or a ratio (`5/5`), the `team` it refers to (`home`, `away` or `both`) and, where SofaScore reports it, whether the streak `continued` into this match. Returns 404 when SofaScore lists no streaks for the match, which includes tennis matches.
Required: id.
Sampled 14 Oct 2026: 6 items. Filled in every item: name, value, team, continued. In the sample: team: home (5), away (1); name: “Wins” and 5 other values; continued: true in 3 of 6; value: “6” and 4 other values.
Open in Playground
GET/sofascore/event-tennis-powerapiKey1 credit/request
Returns a tennis match's per-game momentum series: for each game of each set a `value` (positive favours the home player or team, negative the away side) and whether a break of serve `break_occurred`. An empty `games` list is a valid response (a live match with no completed game yet). Returns 404 when SofaScore has no tennis power data for the match, which includes matches that have not started and sports other than tennis.
Required: id.
Sampled 14 Oct 2026: 30 items. Filled in every item: set, game, value, break_occurred. In the sample: set: 1 to 3, median 2; break_occurred: true in 3 of 30; game: 1 to 13, median 5; value: -82.98 to 65, median -19.66.
Open in Playground
GET/sofascore/event-tv-channelsapiKey2 credits/request
Returns where a match is broadcast. `available_countries` lists every country that has a broadcast with its channel ids; those country codes are the valid values for `country`. With `country` set (a two-letter ISO 3166-1 alpha-2 code such as `GB`, any case) the response also resolves that country's `channels` to names, using one extra upstream call. A well-formed country code the match is not broadcast in returns 404, and so does a match with no broadcast information.
Required: id. Optional: country.
Sampled 14 Oct 2026: 136 items. Filled in every item: country, channel_ids.
Open in Playground
GET/sofascore/event-votesapiKey1 credit/request
Returns a match's community vote tallies: the match result vote (`match_result` with `home`, `away`, `total` and `draw`, where `draw` is absent for two-way sports such as basketball and tennis), both teams to score, which team scores first and who should have won (when SofaScore has opened that vote). A block that holds no votes is omitted. Returns 404 when SofaScore has no votes for the match.
Required: id.
Sampled 14 Oct 2026: 10 fields returned with a value. In the sample: match_result.home: 52,785; match_result.draw: 3,713; match_result.away: 2,503; match_result.total: 59,001; both_teams_to_score.yes: 5,882; both_teams_to_score.no: 4,381; first_to_score.home: 8,908; first_to_score.no_goal: 159.
Open in Playground
GET/sofascore/eventapiKey1 credit/request
Returns one SofaScore match by event id: home and away teams and scores, status, start time, tournament, attendance and winner code, plus venue and referee when SofaScore has them. An unknown or malformed id surfaces as an upstream error.
Required: id.
Sampled 14 Oct 2026: 14 fields returned with a value. In the sample: event.start_timestamp: 2025-08-15; event.attendance: 60,315; event.start_time: 2025-08-15.
Open in Playground
GET/sofascore/live-eventsapiKey1 credit/request
Returns currently live events for a sport. The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, and `waterpolo`; the sports endpoint lists them. An empty `events` list is a valid response when nothing is live right now.
Required: sport (24 allowed values: american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo).
Sampled 14 Oct 2026: 87 items. Filled in every item: id, slug, start_timestamp, start_time, status, tournament, home_team, away_team and 2 more. In the sample: start_timestamp: 2026-10-13; start_time: 2026-10-13.
Open in Playground
GET/sofascore/manager-eventsapiKey1 credit/request
Returns a page of the matches a manager (coach) has recently taken charge of, newest first, across all clubs they managed. Only past matches are available; SofaScore publishes no upcoming list for managers. Returns 404 for a page past the end of the manager's history.
Required: id. Optional: page.
Sampled 14 Oct 2026: 30 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 3 more. In the sample: start_timestamp: 2025-09-30 to 2026-10-11; start_time: 2025-09-30 to 2026-10-11.
Open in Playground
GET/sofascore/managerapiKey1 credit/request
Returns a manager's (coach's) profile (nationality, birth date, preferred formation, current team and teams, and the career win/draw/loss and goals record). Get a manager id from sofascore-search results of type `manager`.
Required: id.
Sampled 14 Oct 2026: 1 item. Filled in every item: id, name, short_name, slug. In the sample: name: “Manchester City”; short_name: “Man City”.
Open in Playground
GET/sofascore/mma-cardapiKey2 credits/request
Returns the bouts of one MMA fight card, main event first, narrowed with `part` to `all` bouts, the `maincard`, the `prelims` or the `earlyprelims`. Each bout has the fighters (country, nickname, ranking where 0 is the champion, record), weight class, scheduled rounds, status, and for finished bouts the winner, win type, final round and fight time. Get `org_id` and `card_id` from sofascore-mma-schedule. Returns 404 when the card is unknown or has no bouts in that segment (for example a card without early prelims).
Required: org_id, card_id, part (4 allowed values: all, maincard, prelims, earlyprelims).
Sampled 14 Oct 2026: 5 items. Filled in every item: id, slug, card_id, card_name, order, fight_type, weight_class, win_type and 10 more. In the sample: start_timestamp: 2026-10-04; win_type: UD (2), TKO (2), KO (1); order: 10 to 14, median 12; weight_class: “fly” and 4 other values; final_round: 1 to 5, median 1; scheduled_rounds: 3 to 5, median 3; time_played_seconds: 129 to 1,500, median 248; start_time: 2026-10-04.
Open in Playground
GET/sofascore/mma-scheduleapiKey1 credit/request
Returns the main event of every fight card an MMA organisation holds in one calendar month, with the card id and name, fighters (country, nickname, ranking where 0 is the champion, record), weight class, scheduled rounds, status, and for finished fights the winner, win type and final round. Find organisation ids (UFC 19906, PFL 19910, ONE 20269, Rizin 19905, Fight Nation Championship 20463, KSW 19946, OKTAGON 20258, Absolute Championship Akhmat 20254, Cage Warriors 19909, Dana White's Contender Series 20264, Brave CF 20267, Jungle Fight 20253) with sofascore-categories (sport `mma`) and sofascore-category-tournaments (category 1708). Use the `card_id` with sofascore-mma-card to read every bout. Returns 404 when the organisation has no card in that month or the id is not an MMA organisation.
Required: org_id, month.
Sampled 14 Oct 2026: 4 items. Filled in every item: id, slug, card_id, card_name, order, fight_type, weight_class, win_type and 10 more. In the sample: start_timestamp: 2025-10-05 to 2025-10-25; order: 13 to 14, median 13; card_name: “UFC 320: Ankalaev vs. Pereira 2” and 3 other values; weight_class: “lightheavy” and 3 other values; win_type: “TKO” and 2 other values; final_round: 1 to 4, median 1; scheduled_rounds: 3 to 5, median 3; time_played_seconds: 82 to 1,200, median 278.
Open in Playground
GET/sofascore/odds-droppingapiKey2 credits/request
Returns SofaScore's dropping odds list for a sport: about twenty upcoming events whose odds moved most, each as the usual event summary plus the `choice_name` and `percentage` SofaScore reports for the move (returned as supplied) and the market with opening and current prices (`change` is 1 above the opening price, -1 below it, 0 unchanged). The `sport` enum accepts `all` and the SofaScore sport keys; it defaults to `all`. A sport with no qualifying events at the moment (for example esports when probed) returns 404.
Optional: sport (25 allowed values: all, american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo).
Sampled 14 Oct 2026: 20 items. Filled in every item: id, slug, start_timestamp, start_time, status, tournament, home_team, away_team and 4 more. In the sample: start_timestamp: 2026-10-13 to 2026-10-14; sport: football (11), handball (3), tennis (2) and 3 more; choice_name: 1 to 2, median 1; start_time: 2026-10-13 to 2026-10-14; percentage: 17.65 to 60.78, median 22.6.
Open in Playground
GET/sofascore/odds-winningapiKey2 credits/request
Returns SofaScore's winning odds list for a sport: about twenty upcoming events whose favourite SofaScore highlights, each as the usual event summary plus `winning_odds` (fractional), the `expected` and `actual` percentages SofaScore reports for it (returned as supplied) and the full-time market with opening and current prices (`change` is 1 above the opening price, -1 below it, 0 unchanged). The `sport` enum accepts `all` and the SofaScore sport keys; it defaults to `all`. A sport with no qualifying events at the moment (for example baseball, cricket and esports when probed) returns 404.
Optional: sport (25 allowed values: all, american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo).
Sampled 14 Oct 2026: 20 items. Filled in every item: id, slug, start_timestamp, start_time, status, tournament, home_team, away_team and 5 more. In the sample: start_timestamp: 2026-10-13 to 2026-10-14; sport: football (10), tennis (6), basketball (2) and 1 more; expected: 31 to 97, median 49; winning_odds: “3/4” and 17 other values; start_time: 2026-10-13 to 2026-10-14; actual: 1 to 60, median 13.
Open in Playground
GET/sofascore/player-attributesapiKey2 credits/request
Returns a football player's attribute scores (0 to 100) for the current year and up to three earlier years (`year_shift` 0 to 3), the average scores for the player's position, and the player's characteristics: playing positions plus strengths and weaknesses, each with SofaScore's numeric `code`, a `key` and `name` such as finishing or aerial duels, and a `rank`. Outfield players carry attacking, technical, tactical, defending and creativity scores; goalkeepers carry saves, anticipation, ball_distribution, aerial and tactical. Combines two SofaScore requests. Returns 404 for players without attribute overviews, which includes non-football players.
Required: id.
Sampled 14 Oct 2026: 4 items. Filled in every item: year_shift, position, attributes. In the sample: year_shift: 0 to 3, median 1.
Open in Playground
GET/sofascore/player-eventsapiKey1 credit/request
Returns one page (30 matches) of a player's matches, each with the player's own numbers merged in: `statistics` (football: rating and minutes_played; basketball: points, rebounds, assists and more), `incident_counts` (goals, assists, yellow and red cards, penalty goals), `on_bench` for an unused substitute and `played_for_team_id` (club or national team). Page 0 is the most recent window and can include upcoming fixtures (status type `notstarted`); matches inside a page run oldest first. Follow `has_next_page` for older pages; a page past the end returns 404.
Required: id. Optional: page.
Sampled 14 Oct 2026: 30 items. Filled in every item: event, played_for_team_id. Not in every item: statistics (25), incident_counts (18), on_bench (2). In the sample: on_bench: true in 2 of 2.
Open in Playground
GET/sofascore/player-last-year-summaryapiKey1 credit/request
Returns a player's form timeline over roughly the last year: `summary` entries, each with a `type`, a date and (where it applies) a competition. `event` is a rated match (the rating is in `value` as published and as a number in `rating`, the competition in `tournament_id`); `injury` is an injury period whose `value` is an opaque number; `missing` is a match the player missed; `transfer` is a transfer date. `tournaments` describes the competitions referenced. An empty `summary` is a valid response for a player with no rated appearance in the period.
Required: id.
Sampled 14 Oct 2026: 61 items. Filled in every item: type, timestamp, date, value, rating, tournament_id. In the sample: timestamp: 2025-11-02 to 2026-10-11; value: 6 to 9.5, median 7; date: 2025-11-02 to 2026-10-11; rating: 6 to 9.5, median 7.
Open in Playground
GET/sofascore/player-national-team-statisticsapiKey1 credit/request
Returns a player's national team record: for each national team the appearances, goals and debut date. An empty `teams` list is a valid response for a player who never played internationally.
Required: id.
Sampled 14 Oct 2026: 1 item. Filled in every item: team, appearances, goals, debut_timestamp, debut_date. In the sample: debut_timestamp: 2019-09-05; debut_date: 2019-09-05.
Open in Playground
GET/sofascore/player-penalty-historyapiKey2 credits/request
Returns the penalties a player has taken, newest first: the totals (`attempts`, `scored`) and, per penalty, the outcome (`goal`, `miss`, `post` or `save`), the zone of the goal (for example `low-right`, `high-left`, `close-high`), the x and y position in the goal mouth on SofaScore's 0 to 100 scale, the expected-goals value when available and the match. Returns 404 for players with no recorded penalties, such as most goalkeepers and defenders.
Required: id.
Sampled 14 Oct 2026: 61 items. Filled in every item: id, outcome, zone, x, y, event. Not in every item: xg (33). In the sample: outcome: goal (52), save (5), post (3) and 1 more; zone: “low-right” and 8 other values.
Open in Playground
GET/sofascore/player-ratingsapiKey2 credits/request
Returns a player's rating in every match of one competition season, newest first, with the opponent, home or away and the match. The `type` enum accepts `overall`, `home`, `away`, `regular_season` and `playoffs` and defaults to `overall`; football seasons answer `overall` and NBA seasons answer `regular_season` and `playoffs` (the types a season offers are listed by player-statistics-seasons). Returns 404 when SofaScore has no ratings of that type for the combination.
Required: id, tournament_id, season. Optional: type (5 allowed values: overall, home, away, regular_season, playoffs).
Sampled 14 Oct 2026: 35 items. Filled in every item: event_id, start_timestamp, start_time, rating, is_home, opponent, event. In the sample: start_timestamp: 2025-08-16 to 2026-05-19; rating: 6 to 9.4, median 7; is_home: true in 17 of 35; start_time: 2025-08-16 to 2026-05-19.
Open in Playground
GET/sofascore/player-season-heatmapapiKey2 credits/request
Returns a football player's aggregated touch locations over one competition season: `points` with an `x`, `y` and touch `count` on SofaScore's 0-100 pitch scale, the number of `matches` behind it and the matched `events`. Get `tournament_id` and `season` from player-statistics-seasons. The response is large for a full league season. Returns 404 when SofaScore has no heatmap for that player, competition and season, which includes sports other than football and seasons the player did not play.
Required: id, tournament_id, season.
Sampled 14 Oct 2026: 35 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 3 more. In the sample: start_timestamp: 2025-08-16 to 2026-05-19; start_time: 2025-08-16 to 2026-05-19.
Open in Playground
GET/sofascore/player-season-statisticsapiKey1 credit/request
Returns a player's statistics for one competition season (appearances, rating, goals, assists, passing, duels, and more) as a snake_case metric map, plus the team and a rating breakdown when available. The `type` enum accepts `overall`, `home`, `away`, `regular_season`, and `playoffs` and defaults to `overall`; only the types listed for that season by player-statistics-seasons exist (football players have `overall`, `home`, `away`; basketball, ice hockey and baseball players have `regular_season` and `playoffs`). Returns 404 when SofaScore has no statistics of that type for the combination.
Required: id, tournament_id, season. Optional: type (5 allowed values: overall, home, away, regular_season, playoffs).
Sampled 14 Oct 2026: 13 fields returned with a value. In the sample: season: 76,986; type: “overall”; team.name: “Manchester City”; team.short_name: “Man City”; rating_breakdown.defensive_value: 0.08; rating_breakdown.dribble_value: 0.23; rating_breakdown.pass_value: -0.09; rating_breakdown.shot_value: 0.13.
Open in Playground
GET/sofascore/player-statistical-rankingsapiKey1 credit/request
Returns where a football player ranks against every other player of the competition season for about 78 statistics (goals, assists, rating, expected goals, passes, duels, distance covered and more): the `value`, the `rank` (tied values share a rank), the number of ranked players (`count`) and the tie-broken `order`. Statistics are snake_case and sorted alphabetically. The `type` enum accepts only `overall`, which is also the default; the other statistics views answer 404. Returns 404 for players without a ranking in that season, which includes basketball players.
Required: id, season. Optional: type (overall).
Sampled 14 Oct 2026: 78 items. Filled in every item: statistic, value, rank, count, order. In the sample: value: 0 to 38,793.41, median 25; statistic: “accurate_crosses” and 77 other values; rank: 1 to 470, median 67; count: 280 to 537, median 537; order: 1 to 470, median 102.
Open in Playground
GET/sofascore/player-statistics-seasonsapiKey1 credit/request
Lists the competitions and seasons a player has statistics for, with the statistics `types` available for each season. Use a returned competition id (`unique_tournament_id`), season `id` and one of its `types` with player-season-statistics. The `types` values are `overall`, `home`, `away`, `regular_season`, and `playoffs`. Returns 404 for players with no tracked statistics (for example tennis players).
Required: id.
Sampled 14 Oct 2026: 19 items. Filled in every item: unique_tournament_id, name, slug, category, seasons. In the sample: category: Europe (7), England (3), World (3) and 3 more; name: “UEFA Champions League” and 18 other values; seasons: median 2 entries.
Open in Playground
GET/sofascore/player-tournamentsapiKey1 credit/request
Lists every competition a player has played in, with id, name, slug, category, sport and gender. It includes competitions without season statistics (cups, friendlies, all-star games) that player-statistics-seasons leaves out. Returns 404 when SofaScore has no competitions for the player.
Required: id.
Sampled 14 Oct 2026: 24 items. Filled in every item: id, name, slug, category, sport, gender. In the sample: category: Europe (7), World (5), England (4) and 3 more; name: “Premier League” and 23 other values.
Open in Playground
GET/sofascore/player-transfersapiKey1 credit/request
Returns a player's transfer history (clubs moved from and to, date, fee, and SofaScore's numeric transfer type code), newest first. An empty `transfers` list is a valid response for a player who has never moved clubs. Returns 404 when SofaScore has no transfer record for the player (seen for ice hockey and baseball players). The `type_code` values are SofaScore's own opaque codes and are not translated.
Required: id.
Sampled 14 Oct 2026: 5 items. Filled in every item: id, player, to_team, from_team_name, to_team_name, type_code, transfer_date, transfer_timestamp and 3 more. Not in every item: from_team (4). In the sample: transfer_date: 2015-09-08 to 2022-07-01; fee: 0 to 60,000,000, median 8,000,000; from_team_name: “Borussia Dortmund” and 4 other values; to_team_name: “Manchester City” and 4 other values; transfer_timestamp: 2015-09-08 to 2022-07-01; fee_description: “60M €” and 4 other values.
Open in Playground
GET/sofascore/playerapiKey1 credit/request
Returns one SofaScore player by numeric `id`: name, short name, position, jersey number, date of birth, height, preferred foot, country, market value and currency, and the current team. `deceased` is `true` for historical players. An unknown or malformed id returns an upstream error.
Required: id.
Sampled 14 Oct 2026: 13 fields returned with a value. In the sample: player.date_of_birth: 2000-02-29; player.jersey_number: 9; player.name: “Ferran Torres”; player.short_name: “F. Torres”; player.position: “F”; player.country: “Spain”; player.preferred_foot: “Right”; player.market_value: 59,000,000.
Open in Playground
GET/sofascore/ranking-typesapiKey1 credit/request
Lists every ranking available from the sofascore rankings endpoint: the numeric `type` id, a descriptive name, the sport, the gender and the kind of entity that is ranked (`team`, `player` or `unique_tournament`). Covers 32 rankings across football (league coefficients, FIFA national teams, club coefficients), rugby, tennis (ATP and WTA official and live rankings, UTR), padel and MMA (UFC and Fight Nation Championship divisions). The catalogue is a fixed list and costs no upstream request.
Takes no parameters.
Sampled 14 Oct 2026: 32 items. Filled in every item: type, name, sport, entity_type. Not in every item: description (29), gender (31). In the sample: sport: mma (19), tennis (6), football (3) and 2 more; type: 1 to 46, median 17; name: “UEFA association (league) coefficients” and 31 other values; entity_type: player (27), team (4), unique_tournament (1); description: “Ranks national leagues by their coefficient points; each ro…” and 8 other values.
Open in Playground
GET/sofascore/rankingsapiKey1 credit/request
Returns one SofaScore ranking list: the rank, previous rank, points and the ranked team, player or competition, plus when the list was last updated. Choose the `type` id from sofascore-ranking-types, for example 5 for the ATP men's singles ranking or 2 for the FIFA men's national team ranking. Optional `limit` returns only the first rows of long lists (tennis lists hold 500 rows). MMA division rankings use rank 0 for the reigning champion.
Required: type (32 allowed values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46). Optional: limit.
Sampled 14 Oct 2026: 40 items. Filled in every item: rank, previous_rank, best_rank, points, previous_points, tournaments_played, label, entity. In the sample: rank: 1 to 40, median 20; label: “Jannik Sinner” and 39 other values; previous_rank: 1 to 40, median 20; best_rank: 1 to 33, median 10; points: 1,275 to 11,000, median 2,200; previous_points: 1,275 to 11,000, median 2,145; tournaments_played: 4 to 32, median 24.
Open in Playground
GET/sofascore/referee-eventsapiKey1 credit/request
Returns one page (30 matches) of the matches a referee officiated, most recent first, across every competition. Follow `has_next_page` for older pages; a page past the end returns 404. Only past matches exist (no upcoming list), and the list includes canceled and postponed fixtures (their `status.type` says so), which the career match total of sofascore-referee does not count.
Required: id. Optional: page.
Sampled 14 Oct 2026: 30 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 3 more. In the sample: start_timestamp: 2025-08-26 to 2026-09-20; start_time: 2025-08-26 to 2026-09-20.
Open in Playground
GET/sofascore/referee-statisticsapiKey1 credit/request
Returns a referee's record per competition: matches officiated, yellow cards, red cards, yellow-red cards and penalties awarded. The per-competition appearances add up to the career matches in sofascore-referee. An empty `competitions` list is valid for a referee with no recorded competitions.
Required: id.
Sampled 14 Oct 2026: 15 items. Filled in every item: competition, appearances, yellow_cards, red_cards, yellow_red_cards, penalties. In the sample: appearances: 1 to 111, median 3; yellow_cards: 3 to 457, median 18; red_cards: 0 to 7, median 0; yellow_red_cards: 0 to 7, median 0; penalties: 0 to 36, median 1.
Open in Playground
GET/sofascore/refereeapiKey1 credit/request
Returns a referee's profile: name, country, sport, career matches officiated and career yellow, red and yellow-red card totals, plus date of birth and first league debut when SofaScore records them. Get the referee id from the `referee.id` of the sofascore-event endpoint or from a sofascore-search result of type referee. Returns 404 for an unknown id.
Required: id.
Sampled 14 Oct 2026: 9 fields returned with a value. In the sample: referee.games: 321; referee.name: “Robert Jones”; referee.country: “England”; referee.sport: “football”; referee.yellow_cards: 1,156; referee.red_cards: 20; referee.yellow_red_cards: 13.
Open in Playground
GET/sofascore/round-eventsapiKey1 credit/request
Returns fixtures for one round of a competition season. Get `id` from search or category-tournaments, `season` from tournament-seasons, and the round values from tournament-rounds. Round numbers are not unique in cups, and knockout or named rounds return 404 unless the round's `slug` is passed (plus its `prefix` when tournament-rounds lists one): the UEFA Champions League has a qualifying and a league-phase round 1, and a playoff round 636 both with the `Qualification` prefix and without. Plain numbered league rounds need only `round`. `slug` is lowercase letters, digits, and hyphens (up to 64 characters); `prefix` is letters, digits, spaces, and hyphens (up to 64 characters) and is only valid together with `slug`.
Required: id, season, round. Optional: slug, prefix.
Sampled 14 Oct 2026: 10 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 3 more. In the sample: start_timestamp: 2025-08-15 to 2025-08-18; start_time: 2025-08-15 to 2025-08-18.
Open in Playground
GET/sofascore/scheduled-eventsapiKey2 credits/request
Returns the events (matches) in one category, such as a country, that start on a UTC date, ordered by start time. Get the category `id` from the categories endpoint (or `category_id` from scheduled-tournaments). `date` must be a real calendar date written `YYYY-MM-DD` and is a UTC day; to cover a local day in another timezone, request the neighbouring dates and filter on `start_timestamp`. An empty `events` list is a valid response when the category has no fixtures that day. Returns 404 for an unknown category id.
Required: category_id, date.
Sampled 14 Oct 2026: 27 items. Filled in every item: id, slug, start_timestamp, start_time, status, tournament, home_team, away_team. In the sample: start_timestamp: 2026-10-13; start_time: 2026-10-13.
Open in Playground
GET/sofascore/scheduled-tournamentsapiKey1 credit/request
Returns one page of the tournaments that have fixtures on a UTC date for a sport, each with the number of events starting that UTC day. This lists competitions, not matches: use scheduled-events with a tournament's `category_id` for the matches, or its `unique_tournament_id` with the tournament-seasons and round endpoints. `date` must be a real calendar date written `YYYY-MM-DD`. Pages are one-based; follow `has_next_page`. The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, and `waterpolo`. An empty `tournaments` list is a valid response for a date with no fixtures or a page past the last one.
Required: sport (24 allowed values: american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo), date. Optional: page.
Sampled 14 Oct 2026: 100 items. Filled in every item: id, name, slug, category_id, category_name, event_count. Not in every item: unique_tournament_id (99), unique_tournament_name (99). In the sample: event_count: 0 to 14, median 0; name: “UEFA Champions League” and 97 other values; unique_tournament_name: “UEFA Champions League” and 80 other values; category_name: “Europe” and 41 other values.
Open in Playground
GET/sofascore/search-typedapiKey1 credit/request
Searches SofaScore for one entity type and returns up to 20 ranked results per page: `events` (matches), `teams`, `players` (with team and position), `managers`, `referees`, `venues` (with city and capacity) and `unique_tournaments` (competitions with category). Page with the zero-based `page`; an empty page means there are no further results. The optional `sport` filter (any key listed by sofascore/sports, such as `football`, `basketball`, `tennis` or `mma`) narrows `teams`, `players`, `managers` and `unique_tournaments`, and is rejected for `events`, `referees` and `venues`, which ignore it. Use the returned ids with the matching endpoints (team, player, manager, venue, tournament-seasons, event).
Required: type (7 allowed values: events, teams, players, managers, referees, venues, unique_tournaments), q. Optional: page, sport (24 allowed values: american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo).
Sampled 14 Oct 2026: 20 items. Filled in every item: type, id, name, slug, score, name_code, sport, user_count. Not in every item: country (18), gender (19). In the sample: sport: football (19), handball (1); score: 2,128.44 to 268,375, median 4,515.09; name: “Arsenal” and 17 other values; country: England (8), Russia (3), Argentina (2) and 5 more; user_count: 233 to 3,720,306, median 1,052.
Open in Playground
GET/sofascore/searchapiKey1 credit/request
Searches SofaScore for teams, players, and competitions matching a free-text query. An empty `results` list is a valid response when nothing matches.
Required: q.
Sampled 14 Oct 2026: 20 items. Filled in every item: type, id, name, slug, country. Not in every item: sport (3), team_id (17), team_name (17). In the sample: type: player (17), team (3); name: “FC Barcelona” and 19 other values; sport: “Football”; country: Spain (12), Brazil (2), Netherlands (1) and 5 more.
Open in Playground
GET/sofascore/season-eventsapiKey1 credit/request
Returns one page (about 30 events) of every fixture or result of a competition season, with the round of each event. The `direction` enum accepts `next` (upcoming fixtures) and `last` (finished results). Follow `has_next_page` to read further pages: a page past the end, a direction with no events (for example `next` in a finished season) and a season id that does not belong to the competition all answer 404. Get `id` from search and `season` from tournament-seasons.
Required: id, season, direction (2 allowed values: next, last). Optional: page.
Sampled 14 Oct 2026: 30 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 4 more. In the sample: start_timestamp: 2026-09-12 to 2026-10-12; round: 4 to 6, median 5; start_time: 2026-09-12 to 2026-10-12.
Open in Playground
GET/sofascore/sportsapiKey1 credit/request
Lists every sport key the SofaScore endpoints accept (the `sport` enum of live-events, categories, and scheduled-tournaments), with live and total event counts when available. The list is fixed and always complete; if the live counts cannot be read, `counts_available` is `false` and the per-sport counts are omitted instead of failing the call. Counts are also omitted for a sport the count feed does not cover (for example `mma`). Accepted sport keys: `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, `waterpolo`.
Takes no parameters.
Sampled 14 Oct 2026: 24 items. Filled in every item: key, name. Not in every item: live_events (19), total_events (19). In the sample: live_events: 0 to 87, median 2; name: “American Football” and 23 other values; total_events: 1 to 1,163, median 40.
Open in Playground
GET/sofascore/stage-categoriesapiKey1 credit/request
Lists the categories SofaScore keeps for a stage sport, each with its competitions. For `motorsport` that is the racing series (Formula 1, MotoGP, Moto2, Moto3, Superbike, NASCAR with its Cup, Truck and Xfinity competitions, WRC, Formula E, Indycar, DTM); for `cycling` it is Cycling Men and Cycling Women. Use a competition `id` with stage-seasons to list its seasons. Some categories exist without any competition (for example Motocross, Speedway, WEC) and return an empty `competitions` list. Motorsport and cycling are not available on the match-based endpoints (live-events, categories, scheduled-events); they use the stage endpoints. The `sport` enum accepts `motorsport` and `cycling`.
Required: sport (2 allowed values: motorsport, cycling).
Sampled 14 Oct 2026: 28 items. Filled in every item: id, name, slug, flag, priority. Not in every item: competitions (10). In the sample: priority: 0 to 13, median 0; name: “Formula 1” and 27 other values; competitions: median 1 entry; flag: “formula-1” and 27 other values.
Open in Playground
GET/sofascore/stage-driver-performanceapiKey1 credit/request
Returns every competitor's progress through a finished race or rally. For circuit races (Formula 1, MotoGP and similar) `laps` lists the position at the end of each lap, starting with lap 0 for the grid, plus the tyre compound and a `pit_stop` flag where published; the lap a driver retired has `retired` set and no position. For rallies `stage_positions` lists the overall position after each special stage. The response also repeats the stage itself. It is published for races and sprints of some series (verified for Formula 1, MotoGP and WRC) and not for practice, qualifying, NASCAR, cycling, events or seasons, which return 404. Returns 404 for an unknown id.
Required: id.
Sampled 14 Oct 2026: 22 items. Filled in every item: competitor, start_number, laps. In the sample: start_number: 1 to 87, median 23; laps: median 52 entries.
Open in Playground
GET/sofascore/stage-featuredapiKey1 credit/request
Returns the events SofaScore features for a stage sport right now: a mix of the latest finished events (with `winner` and result facts such as laps and circuit) and the next upcoming ones, across series such as Formula 1, MotoGP, Moto2, Moto3, Superbike, NASCAR and cycling races. Each event carries its competition, season name, parent season stage and country. Use an event `id` with stage-substages for its sessions or stages and stage-standings for results. The `sport` enum accepts `motorsport` and `cycling`.
Required: sport (2 allowed values: motorsport, cycling).
Sampled 14 Oct 2026: 10 items. Filled in every item: id, name, slug, type, status, start_timestamp, start_time, end_timestamp and 6 more. Not in every item: year (8), winner (7). In the sample: start_timestamp: 2026-10-09 to 2026-10-18; country: USA (4), Indonesia (3), Singapore (1) and 2 more; name: “Singapore GP” and 6 other values; start_time: 2026-10-09 to 2026-10-18; end_timestamp: 2026-10-11 to 2026-10-19; season_name: “Formula 1 2026” and 7 other values.
Open in Playground
GET/sofascore/stage-scheduleapiKey1 credit/request
Returns the events SofaScore lists for a stage sport around a UTC date: Grand Prix weekends, NASCAR race weekends, rallies and cycling races, each with its country, competition, every session start time (`session_start_timestamps`) and the session SofaScore highlights (`session`: the live, next or latest one). The list is not a strict one-day filter. It holds the events in progress on the date plus the next upcoming ones, and a quiet date still returns the next events; use `on_date`, which is true when a session of the event starts inside the requested UTC day, to separate them. Schedule rows carry no event status or winner: use `session.status`, or pass the event `id` to stage for the event detail and to stage-substages for its sessions. `date` must be a real calendar date written `YYYY-MM-DD`. An empty `stages` list is valid when nothing is in progress or scheduled nearby. The `sport` enum accepts `motorsport` and `cycling`.
Required: sport (2 allowed values: motorsport, cycling), date.
Sampled 14 Oct 2026: 6 items. Filled in every item: id, name, slug, type, country, country_code, competition, session_start_timestamps and 2 more. In the sample: country: USA (5), Spain (1); name: “Grand Prix of Spain” and 3 other values; on_date: true in 0 of 6; session_start_timestamps: median 1 entry.
Open in Playground
GET/sofascore/stage-seasonsapiKey1 credit/request
Returns the seasons of one stage competition, newest first, for example Formula 1 2026 (id 214140) back to 1950. A season `id` is a stage id: pass it to stage-substages for the race calendar and to stage-standings for the championship table. The season still in progress has no `end_timestamp`. Get the competition `id` from stage-categories (for example 40 for Formula 1, 17 for MotoGP, 18 for the NASCAR Cup Series, 9 for Cycling Men). Competition ids and stage ids are different id spaces, so a competition id passed to stage returns an unrelated stage. Returns 404 for an unknown competition id.
Required: id.
Sampled 14 Oct 2026: 77 items. Filled in every item: id, name, slug, year, start_timestamp. Not in every item: end_timestamp (76). In the sample: year: 1,950 to 2,026, median 1,988; name: “Formula 1 2026” and 76 other values; start_timestamp: -619,747,200 to 1,767,254,187, median 576,028,800; end_timestamp: -609,984,000 to 1,765,119,600, median 563,932,800.
Open in Playground
GET/sofascore/stage-standingsapiKey2 credits/request
Returns one classification of a stage. For a race or sprint it is the result (position, grid, race time, gap, interval, laps, laps led, pit stops, tyre stints, fastest lap, points, retirement status); for practice and qualifying the timing order (`time` is the best lap); for a cycling stage the stage result with time gaps; for an event the event aggregate; for a season the championship table (points, victories, races started, pole positions, podiums, fastest laps; NASCAR adds top 5, top 10 and races not finished). `competitor` returns drivers and riders, `team` returns constructors and teams, which only some seasons and events publish (verified for the Formula 1 and MotoGP seasons and the Formula 1 event; races, NASCAR, WRC and cycling return 404 for `team`). Rows are in upstream order. `position` is omitted for competitors who did not finish or set no time, and `gap` is `DNF` for a retirement. The parent session of a split qualifying has no standings; use the ids of its parts from stage-substages. Fields a classification does not publish are omitted. Returns 404 for an unknown id, a stage that has no results yet, or a kind of stage without that classification. The `type` enum accepts `competitor` and `team`.
Required: id, type (2 allowed values: competitor, team).
Sampled 14 Oct 2026: 22 items. Filled in every item: competitor, start_number, grid_position, laps, fastest_lap_time, personal_fastest_lap, personal_fastest_lap_time, tyre_type and 3 more. Not in every item: position (15), points (10), time (15), laps_led (1), pit_stops (20), fastest_laps (1), gap (21), interval (21) and 4 more. In the sample: updated_timestamp: 2026-09-26; tyre_type: S (16), M (6); position: 1 to 15, median 8; time: “1:38:02.143” and 14 other values; tyre_stints: median 2 entries; start_number: 1 to 87, median 23; grid_position: 1 to 22, median 11; points: 1 to 25, median 8.
Open in Playground
GET/sofascore/stage-substagesapiKey1 credit/request
Returns the children of a stage in upstream order. For a season it is the race calendar: every event with status (`finished`, `notstarted`, `canceled`), dates, round, circuit and winner. For an event it is the sessions: practices, qualifying, sprint qualifying, sprint and race for a Grand Prix, the numbered stages of a cycling race or rally. Qualifying and practice sessions list their `parts`, and the part ids carry the timing results (the parent session of a split qualifying has no standings of its own). Use a child `id` with stage for detail, stage-standings for its results and stage-driver-performance for race progress. A race, session or cycling stage has no children and returns 404, as does an unknown id.
Required: id.
Sampled 14 Oct 2026: 5 items. Filled in every item: id, name, slug, type, status, year, start_timestamp, start_time and 7 more. Not in every item: sequence (3), parts (4). In the sample: start_timestamp: 2026-09-24 to 2026-09-26; sequence: 1 to 3, median 2; name: “Practice 1” and 4 other values; parts: median 1 entry; start_time: 2026-09-24 to 2026-09-26.
Open in Playground
GET/sofascore/stageapiKey1 credit/request
Returns one stage from SofaScore's stage hierarchy: a season (Formula 1 2026), an event (a Grand Prix weekend, a NASCAR race, a rally, a cycling race), a session (practice, qualifying, sprint, race) or a cycling stage. The response has its type (`Season`, `Event`, `Practice`, `Qualifying`, `Qualifying part`, `Race`, `Sprint race`, `Sprint qualifying`, `Practice part`, `Stage`), status (`finished`, `notstarted`, `canceled`), start time, country, competition, parent stage (the season of an event, the event of a session), the winner once decided, and circuit, weather and race facts where published (laps, race distance, lap record, safety car, NASCAR cautions, rally special stages, cycling route). `info` fields are omitted when not published, never zero. A season has no status. Stage ids and competition ids are different id spaces. Returns 404 for an unknown stage id.
Required: id.
Sampled 14 Oct 2026: 15 fields returned with a value. In the sample: stage.start_timestamp: 2026-09-26; stage.year: 2,026; stage.name: “Grand Prix”; stage.start_time: 2026-09-26; stage.season_name: “Formula 1 2026”; stage.country: “Azerbaijan”.
Open in Playground
GET/sofascore/standingsapiKey2 credits/request
Returns a league table for a competition season. The `type` enum accepts `total`, `home`, and `away`. Get `id` from search and `season` from tournament-seasons.
Required: id, season, type (3 allowed values: total, home, away).
Sampled 14 Oct 2026: 1 item. Filled in every item: name, rows. In the sample: name: “Premier League 25/26”; rows: median 20 entries.
Open in Playground
GET/sofascore/team-achievementsapiKey1 credit/request
Returns the trophies a team has won: the total and, per competition, the number won and the winning seasons (newest first, with the season id where SofaScore tracks it). Some competitions, such as US leagues, report a count with an empty or shorter `seasons` list. Returns 404 when SofaScore records no achievements for the team.
Required: id.
Sampled 14 Oct 2026: 9 items. Filled in every item: competition, trophies_won, seasons. In the sample: trophies_won: 1 to 10, median 7; seasons: median 7 entries.
Open in Playground
GET/sofascore/team-eventsapiKey1 credit/request
Returns a page of a team's upcoming or recent fixtures. The `direction` enum accepts `next` and `last`. An empty `events` list is a valid response when there is no fixture on that page.
Required: id, direction (2 allowed values: next, last). Optional: page.
Sampled 14 Oct 2026: 30 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 3 more. In the sample: start_timestamp: 2026-03-10 to 2026-10-10; start_time: 2026-03-10 to 2026-10-10.
Open in Playground
GET/sofascore/team-goal-distributionsapiKey1 credit/request
Returns a football team's goals scored and conceded per block of match minutes (1-15, 16-30, 31-45, 46-60, 61-75, 76-90) for one competition season, in three views: `overall`, `home` and `away`, each with the matches played and the goal totals. A block with no goals is returned as 0. Returns 404 for non-football teams and for a team and season that do not belong together.
Required: id, tournament_id, season.
Sampled 14 Oct 2026: 3 items. Filled in every item: type, matches, scored_goals, conceded_goals, periods. In the sample: matches: 19 to 38, median 19; type: “overall” and 2 other values; periods: median 6 entries; scored_goals: 32 to 77, median 45; conceded_goals: 14 to 35, median 21.
Open in Playground
GET/sofascore/team-near-eventsapiKey1 credit/request
Returns a team's last played match and its next scheduled match with teams, competition, status, score and start time. Either side can be missing (a team with no upcoming fixture returns only `previous_event`). Returns 404 when SofaScore has neither. For full fixture lists use team-events.
Required: id.
Sampled 14 Oct 2026: 20 fields returned with a value. In the sample: previous_event.start_timestamp: 2026-10-11; previous_event.start_time: 2026-10-11; next_event.start_timestamp: 2026-10-14; next_event.start_time: 2026-10-14.
Open in Playground
GET/sofascore/team-of-the-week-periodsapiKey1 credit/request
Lists the periods of a competition season for which SofaScore published a team of the week, newest first: league rounds (`round`), weekly time spans (`timespan`) and season-level selections (`season`, such as an NBA regular season or playoff team). Use a returned period `id` with sofascore-team-of-the-week. An empty list is valid when no team of the week has been published yet. Get `id` from search and `season` from tournament-seasons.
Required: id, season.
Sampled 14 Oct 2026: 6 items. Filled in every item: id, type, name, sequence, round, round_name, created_at. In the sample: created_at: 2026-08-25 to 2026-10-13; sequence: 1 to 6, median 3; round: 1 to 6, median 3; round_name: 1 to 6, median 3.
Open in Playground
GET/sofascore/team-of-the-weekapiKey2 credits/request
Returns one team of the week: the formation and the selected players with their SofaScore rating, team and, for round and weekly selections, the match the rating was earned in. Get the `period` id from sofascore-team-of-the-week-periods; a period that does not belong to the given competition season is rejected with 400.
Required: id, season, period.
Sampled 14 Oct 2026: 11 items. Filled in every item: order, rating, player, jersey_number, team, event. In the sample: order: 1 to 11, median 6; rating: 8 to 9.8, median 8.2; jersey_number: 1 to 44, median 10.
Open in Playground
GET/sofascore/team-performanceapiKey1 credit/request
Returns a team's most recent matches (about ten, oldest first) with SofaScore's per-match performance value in `points`: higher is better and a heavy defeat is negative. An event SofaScore gave no value for has no `points`. An empty `events` list is a valid response for a team with no recent matches.
Required: id.
Sampled 14 Oct 2026: 10 items. Filled in every item: event, points. In the sample: points: -1.24 to 2.2, median 1.45.
Open in Playground
GET/sofascore/team-player-statistics-seasonsapiKey1 credit/request
Lists the competitions and seasons for which SofaScore has per-player statistics for a team, with the statistics `types` available in each season (`overall`, `home`, `away`, `regular_season`, `playoffs`). Use it to find the `tournament_id`, `season` and `type` accepted by team-player-statistics and team-top-players. Football teams offer `overall`, `home` and `away`; NBA teams offer `regular_season` and `playoffs`. Returns 404 when SofaScore has no player statistics for the team.
Required: id.
Sampled 14 Oct 2026: 8 items. Filled in every item: unique_tournament_id, name, slug, category, seasons. In the sample: category: England (4), Europe (2), World (2); name: “UEFA Champions League” and 7 other values; seasons: median 7 entries.
Open in Playground
GET/sofascore/team-player-statisticsapiKey1 credit/request
Returns the statistics of every player in a team's squad for one competition season, each as a snake_case metric map (appearances, minutes, rating, goals, assists, passing and duel metrics for football; points, rebounds and assists for basketball), in SofaScore's order. The `type` enum accepts `overall`, `home`, `away`, `regular_season` and `playoffs` and defaults to `overall`; only the types listed for that season by team-player-statistics-seasons exist (football `overall`, `home`, `away`; NBA `regular_season`, `playoffs`). A metric SofaScore did not record is omitted rather than returned as 0. Returns 404 when SofaScore has no statistics of that type for the combination.
Required: id, tournament_id, season. Optional: type (5 allowed values: overall, home, away, regular_season, playoffs).
Sampled 14 Oct 2026: 26 items. Filled in every item: player, played_enough, statistics. In the sample: played_enough: true in 17 of 26.
Open in Playground
GET/sofascore/team-playersapiKey1 credit/request
Returns a team's full squad from SofaScore by team id: each player's name, position, jersey number, date of birth, height, country and preferred foot, plus SofaScore's market value estimate and its currency when available.
Required: id.
Sampled 14 Oct 2026: 29 items. Filled in every item: id, name, short_name, slug, position, jersey_number, date_of_birth, height and 2 more. Not in every item: market_value (28), market_value_currency (28). In the sample: date_of_birth: 1990-04-18 to 2009-01-16; position: M (11), D (9), F (5) and 1 more; jersey_number: 1 to 31, median 14; name: “Anthony Gordon” and 28 other values; short_name: “A. Gordon” and 28 other values; country: “England” and 12 other values; preferred_foot: Right (20), Left (8), Both (1); market_value: 53,000 to 237,000,000, median 32,000,000.
Open in Playground
GET/sofascore/team-rankingsapiKey1 credit/request
Returns every ranking a team or tennis player appears in: for a tennis player the ATP or WTA ranking, its live version and the UTR rating, for a football club the UEFA club coefficient by year. Each ranking carries its `type_id` (the same ids the rankings endpoint takes), name, sport, category and last update, and `rows` with the `position`, `points`, previous and best position where SofaScore reports them. Returns 404 when the id appears in no ranking.
Required: id.
Sampled 14 Oct 2026: 3 items. Filled in every item: type_id, name, slug, gender, sport, category, last_updated_timestamp, last_updated and 1 more. In the sample: last_updated_timestamp: 2026-10-13; name: “ATP Rankings” and 2 other values; rows: median 1 entry; sport: “tennis”; category: “ATP” and 1 other value; last_updated: 2026-10-13.
Open in Playground
GET/sofascore/team-season-statisticsapiKey1 credit/request
Returns a team's statistics for one competition season (goals, shots, passing, duels, discipline, and the matching conceded-side metrics) as a snake_case metric map. The `type` enum accepts `overall`, `home`, `away`, `regular_season`, and `playoffs` and defaults to `overall`; only the types listed for that season by team-statistics-seasons exist (football teams have `overall` only; basketball, ice hockey and baseball teams have `regular_season` and `playoffs`). Returns 404 when SofaScore has no statistics of that type for the combination.
Required: id, tournament_id, season. Optional: type (5 allowed values: overall, home, away, regular_season, playoffs).
Sampled 14 Oct 2026: 5 fields returned with a value. In the sample: season: 76,986; type: “overall”.
Open in Playground
GET/sofascore/team-statistics-seasonsapiKey1 credit/request
Lists the competitions and seasons a team has statistics for, with the statistics `types` available for each season. Use a returned competition id (`unique_tournament_id`), season `id` and one of its `types` with team-season-statistics. The `types` values are `overall`, `home`, `away`, `regular_season`, and `playoffs`. Returns 404 for teams with no tracked statistics.
Required: id.
Sampled 14 Oct 2026: 7 items. Filled in every item: unique_tournament_id, name, slug, category, seasons. In the sample: category: England (3), Europe (2), World (2); name: “UEFA Champions League” and 6 other values; seasons: median 7 entries.
Open in Playground
GET/sofascore/team-top-playersapiKey2 credits/request
Returns a team's best players for every statistic category SofaScore ranks within the team and season (rating, goals, assists, expected goals, tackles, saves and more for football; points, rebounds and assists for basketball), each as a ranked list with player, team and value. The category set depends on the sport, so the response lists every category it holds. The `type` enum accepts `overall`, `regular_season` and `playoffs`: football competitions publish `overall`, the NBA publishes `regular_season` and `playoffs`, and a type the competition does not publish answers 404. Optional `limit` caps the rows per category (up to 50); the payload is large without it.
Required: id, tournament_id, season. Optional: type (3 allowed values: overall, regular_season, playoffs), limit.
Sampled 14 Oct 2026: 26 items. Filled in every item: key, count, players. In the sample: count: 2 to 26, median 22; players: median 22 entries.
Open in Playground
GET/sofascore/team-tournamentsapiKey1 credit/request
Lists the competitions a team plays in, each with id, name, slug, category and sport. By default (`all=false`) it returns the competitions the team currently takes part in; with `all=true` it returns every competition the team has been recorded in, including friendlies and older tournaments. Competition ids can be used as `tournament_id` elsewhere in the SofaScore endpoints; use team-player-statistics-seasons for the seasons that have statistics. Returns 404 when SofaScore has no competitions for the team.
Required: id. Optional: all.
Sampled 14 Oct 2026: 15 items. Filled in every item: id, name, slug, category, sport. In the sample: category: World (6), England (5), Europe (4); name: “Premier League” and 14 other values.
Open in Playground
GET/sofascore/team-transfersapiKey1 credit/request
Returns a team's recent incoming (`transfers_in`) and outgoing (`transfers_out`) transfers with player, clubs, date, fee, and SofaScore's numeric transfer type code. Empty lists are valid for a quiet transfer window. Returns 404 when SofaScore has no transfer record for the team (seen for ice hockey and baseball teams). The `type_code` values are SofaScore's own opaque codes and are not translated.
Required: id.
Sampled 14 Oct 2026: 23 items. Filled in every item: id, player, from_team, to_team, from_team_name, to_team_name, type_code, transfer_date and 4 more. In the sample: transfer_date: 2026-01-18 to 2026-09-02; fee: 0 to 87,700,000, median 0; to_team_name: “Benfica” and 20 other values; transfer_timestamp: 2026-01-18 to 2026-09-02; fee_description: “-” and 11 other values.
Open in Playground
GET/sofascore/teamapiKey1 credit/request
Returns one SofaScore team by numeric `id`: name, short name, country, sport, manager, venue with its city and capacity, primary colour, and national-team flag. `tournament_id` and `tournament_name` give the team's primary competition, such as its domestic league. An unknown id returns an upstream error.
Required: id.
Sampled 14 Oct 2026: 13 fields returned with a value. In the sample: team.venue_capacity: 62,652; team.name: “FC Barcelona”; team.short_name: “Barcelona”; team.country: “Spain”; team.sport: “Football”; team.manager: “Hans-Dieter Flick”; team.venue: “Spotify Camp Nou”; team.venue_city: “Barcelona”.
Open in Playground
GET/sofascore/tennis-player-grand-slam-resultsapiKey1 credit/request
Returns a tennis player's best round at each grand slam (Australian Open, Roland Garros, Wimbledon and US Open) for the last five editions: per edition the `year`, the `season_id`, the best `round` reached and whether the player won it (`winner`). A year without a `round` means no result is recorded for that edition. `id` is the SofaScore team id of a tennis player (tennis players are teams in SofaScore); get it from search or rankings. Returns 404 for ids that are not tennis players.
Required: id.
Sampled 14 Oct 2026: 4 items. Filled in every item: tournament_id, name, years. In the sample: name: “Australian Open, Men” and 3 other values; years: median 5 entries.
Open in Playground
GET/sofascore/tournament-cuptreeapiKey1 credit/request
Returns the knockout tree(s) of a cup or playoff competition season: every round with its ties, each tie's participants (team or player, seed, winner flag, the earlier tie it advanced from), result and score strings (a shoot-out is appended, such as `1 (4)`), match ids and start time, plus the final and third-place tie. Tennis competitions return two trees (main draw and qualifying). League seasons have no tree and answer 404, as does a season id that does not belong to the competition. Get `id` from search or tournaments-with-feature and `season` from tournament-seasons; pass the returned `event_ids` to the event endpoints.
Required: id, season.
Sampled 14 Oct 2026: 1 item. Filled in every item: id, name, tournament_name, current_round, rounds, final_match. In the sample: name: “UEFA Champions League 25/26, Knockout stage”; rounds: median 5 entries; tournament_name: “UEFA Champions League, Knockout stage”.
Open in Playground
GET/sofascore/tournament-infoapiKey2 credits/request
Returns a competition's metadata (name, sport, category, tier, title holder, most titles, current season dates, divisions above and below, linked competitions). When `season` is given it also returns that season's aggregates: number of competitors and, for football competitions, goals, home wins, away wins, draws, yellow and red cards and the promoted teams. Get `id` from search and `season` from tournament-seasons.
Required: id. Optional: season.
Sampled 14 Oct 2026: 3 items. Filled in every item: id, name, short_name, slug, country. In the sample: name: “Ipswich Town” and 2 other values; short_name: “Ipswich” and 2 other values; country: “England”.
Open in Playground
GET/sofascore/tournament-player-of-the-seasonapiKey1 credit/request
Returns the player SofaScore names player of the season for a finished competition season: the player, their team, shirt number, average rating, appearances and the statistics scope (`overall`, or `regular_season` for the NBA). A season that is still running, has not been awarded, or does not belong to the competition answers 404. Get `id` from search and `season` from tournament-seasons or tournament-winners.
Required: id, season.
Sampled 14 Oct 2026: 15 fields returned with a value. In the sample: jersey_number: 8; player.name: “Bruno Fernandes”; player.short_name: “B. Fernandes”; player.position: “M”; team.name: “Manchester United”; team.short_name: “Man Utd”; rating: 7.61; appearances: 35.
Open in Playground
GET/sofascore/tournament-player-statisticsapiKey1 credit/request
Returns one page of a football competition season's player statistics table, sortable by a statistic. `order` chooses the statistic to sort by, `direction` the sort direction (`desc` or `asc`), `accumulation` whether values are season totals, per-game averages or per-90-minute averages (`total`, `perGame`, `per90`), and `group` which statistic columns each row carries (`summary`, `attack`, `defence`, `passing`, `goalkeeper`). Page with `limit` (up to 100) and `offset`; `has_next_page` shows whether more rows follow. Optional filters narrow the table: `team` (team ids), `nationality` (SofaScore nationality codes), `position` (`G`, `D`, `M`, `F`), `min_appearances` and `min_minutes`; several filters combine (AND) and several values of one filter are alternatives (OR). The team ids and nationality codes of a season come from tournament-statistics-info. A filter that matches nobody returns an empty `players` list. Other sports return no rows (404). Get `id` from search and `season` from tournament-seasons.
Required: id, season. Optional: order (22 allowed values: rating, goals, expectedGoals, assists, successfulDribbles, tackles, accuratePassesPercentage, bigChancesMissed, totalShots, goalConversionPercentage, interceptions, clearances, errorLeadToGoal, outfielderBlocks, bigChancesCreated, accuratePasses, keyPasses, saves, cleanSheet, penaltySave, savedShotsFromInsideTheBox, runsOut), direction (2 allowed values: desc, asc), accumulation (3 allowed values: total, perGame, per90), group (5 allowed values: summary, attack, defence, passing, goalkeeper), limit, offset, team, nationality, position, min_appearances, min_minutes.
Sampled 14 Oct 2026: 40 items. Filled in every item: rank, player, team, statistics. In the sample: rank: 1 to 40, median 20.
Open in Playground
GET/sofascore/tournament-roundsapiKey1 credit/request
Returns the rounds of a competition season and the current round. Round numbers are not unique in cups: the UEFA Champions League has both a qualifying and a league-phase round 1, and the same playoff round number with and without a `prefix`. To fetch a round's fixtures, pass its `round` to round-events together with its `slug` and, when present, its `prefix`; knockout and named rounds return 404 from round-events without the slug. Plain numbered rounds (a league's round 1 to 38) have no slug. Get `id` from category-tournaments or search and `season` from tournament-seasons. Returns 404 when SofaScore has no rounds for the season (for example a season that has not started).
Required: id, season.
Sampled 14 Oct 2026: 17 items. Filled in every item: round. Not in every item: name (9), slug (9), prefix (1). In the sample: round: 1 to 636, median 5; name: “Qualification Round 1” and 7 other values; prefix: “Qualification”.
Open in Playground
GET/sofascore/tournament-seasonsapiKey1 credit/request
Returns the season list for a competition. Use a returned season id with the standings and round-events endpoints.
Required: id.
Sampled 14 Oct 2026: 35 items. Filled in every item: id, name, year. In the sample: name: “Premier League 26/27” and 34 other values; year: “26/27” and 34 other values.
Open in Playground
GET/sofascore/tournament-statistics-infoapiKey1 credit/request
Returns what the tournament-player-statistics table of a football competition season can be filtered by: the season's teams (ids for the `team` filter), the nationality codes (for the `nationality` filter; SofaScore uses `EN`, `SX`, `WA` and `NX` for the home nations), the position codes `G`, `D`, `M` and `F` (for the `position` filter), and the statistic columns of each `group` value (`summary`, `attack`, `defence`, `passing`, `goalkeeper`). Other sports answer 404. Get `id` from search and `season` from tournament-seasons.
Required: id, season.
Sampled 14 Oct 2026: 57 items. Filled in every item: code, name. In the sample: name: “Argentina” and 56 other values.
Open in Playground
GET/sofascore/tournament-team-of-the-seasonapiKey1 credit/request
Returns the team of the season SofaScore selected for a finished competition season: the formation, when it was created and the selected players (11 in football, 5 in basketball) with position, shirt number, team and average rating. A season that is still running, has no selection, or does not belong to the competition answers 404. Get `id` from search and `season` from tournament-seasons or tournament-winners.
Required: id, season.
Sampled 14 Oct 2026: 11 items. Filled in every item: order, rating, player, jersey_number, team. In the sample: order: 1 to 11, median 6; rating: 7.05 to 7.61, median 7.31; jersey_number: 1 to 41, median 7.
Open in Playground
GET/sofascore/tournament-teamsapiKey1 credit/request
Returns every team (or, for tennis and other individual sports, every player) entered in a competition season, with id, name, short name, name code, country, gender, type (`0` team, `1` individual player) and, for individual players, the current ranking. Use the team ids with team, team-players and the `team` filter of tournament-player-statistics. A season id that does not belong to the competition, or a field not yet decided, answers 404. Get `id` from search and `season` from tournament-seasons.
Required: id, season.
Sampled 14 Oct 2026: 20 items. Filled in every item: id, name, short_name, slug, name_code, gender, country, country_code and 4 more. In the sample: user_count: 115,823 to 4,193,314, median 379,862; name: “Arsenal” and 19 other values; national: true in 0 of 20; short_name: “Arsenal” and 19 other values.
Open in Playground
GET/sofascore/tournament-top-playersapiKey2 credits/request
Returns a competition season's top players for every statistic category SofaScore ranks (for football about 30 categories such as rating, goals, assists, expected goals, tackles and saves; for basketball points, rebounds, assists and more), each with the ranked players, their team and the value. The category set depends on the sport and competition, so the response lists every category it holds. The `type` enum accepts `overall`, `regular_season` and `playoffs`: football competitions publish `overall`, the NBA publishes `regular_season` and `playoffs`, and a type the competition does not publish answers 404. Optional `limit` caps the rows per category (up to 50). Get `id` from search and `season` from tournament-seasons.
Required: id, season. Optional: type (3 allowed values: overall, regular_season, playoffs), limit.
Sampled 14 Oct 2026: 32 items. Filled in every item: key, count, players. In the sample: count: 9 to 40, median 40; players: median 40 entries.
Open in Playground
GET/sofascore/tournament-top-teamsapiKey2 credits/request
Returns a competition season's top teams for every team statistic category SofaScore ranks (for football about 30 categories such as average rating, goals scored, possession, shots and clean sheets; for basketball points, pace, ratings and more), each with the ranked teams and the value. The category set depends on the sport and competition, so the response lists every category it holds. The `type` enum accepts `overall`, `regular_season` and `playoffs`: football competitions publish `overall`, the NBA publishes `regular_season`, and a type the competition does not publish answers 404. Optional `limit` caps the rows per category (up to 50). Get `id` from search and `season` from tournament-seasons.
Required: id, season. Optional: type (3 allowed values: overall, regular_season, playoffs), limit.
Sampled 14 Oct 2026: 34 items. Filled in every item: key, count, teams. In the sample: teams: median 20 entries.
Open in Playground
GET/sofascore/tournament-venuesapiKey1 credit/request
Returns every venue used by a competition season with id, name, capacity, city, state (US), coordinates and the `hidden` flag. Use the venue ids with venue and venue-events. A season id that does not belong to the competition answers 404. Get `id` from search and `season` from tournament-seasons.
Required: id, season.
Sampled 14 Oct 2026: 20 items. Filled in every item: id, name, slug, capacity, city, hidden. Not in every item: latitude (19), longitude (19). In the sample: capacity: 11,307 to 74,879, median 37,890; name: “Hill Dickinson Stadium” and 19 other values; hidden: true in 1 of 20; city: “Liverpool” and 12 other values.
Open in Playground
GET/sofascore/tournament-winnersapiKey1 credit/request
Returns one page (10 seasons, newest first) of a competition's past winners: the year, the season id and the winning team or player. Follow `has_next_page` and pass `page` (zero-based) for older seasons; a page past the last one and an unknown competition both answer 404. Get `id` from search; the returned `season_id` works with every season-scoped endpoint.
Required: id. Optional: page.
Sampled 14 Oct 2026: 10 items. Filled in every item: year, season_id, winner. In the sample: year: 2,017 to 2,026, median 2,021.
Open in Playground
GET/sofascore/tournaments-with-featureapiKey1 credit/request
Returns SofaScore's short list (up to 10) of the most followed competitions of a sport that carry one feature. The `feature` enum accepts `cuptree` (knockout tree, for tournament-cuptree), `standings` (league table), `totw` (team of the week) and `power_rankings`. The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `minifootball`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball` and `waterpolo` (`mma` and `padel` are not supported). The list is fixed by SofaScore and cannot be paged or searched; a sport with no such competition returns an empty list. Use search-typed with `type` `unique_tournaments` to find other competitions.
Required: feature (4 allowed values: cuptree, standings, totw, power_rankings), sport (22 allowed values: american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, minifootball, rugby, snooker, table-tennis, tennis, volleyball, waterpolo).
Sampled 14 Oct 2026: 10 items. Filled in every item: id, name, slug, sport, category_id, category_name, user_count. In the sample: category_name: Europe (5), World (2), South America (2) and 1 more; user_count: 196,314 to 1,937,904, median 377,796; name: “FIFA World Cup” and 9 other values.
Open in Playground
GET/sofascore/trending-eventsapiKey2 credits/request
Returns the events trending in one country across every sport (live, recent and upcoming), each as the usual event summary plus its `sport` key. `country` is a two-letter ISO 3166-1 alpha-2 code such as `GB` or `US` (any case); SofaScore serves a trending list per country, and a code it does not serve returns 404. The list is about twenty events and changes through the day.
Required: country.
Sampled 14 Oct 2026: 61 items. Filled in every item: id, slug, start_timestamp, start_time, status, tournament, home_team, away_team and 1 more. Not in every item: winner_code (22), home_score (22), away_score (22). In the sample: start_timestamp: 2026-10-11 to 2026-10-16; sport: “basketball” and 8 other values; start_time: 2026-10-11 to 2026-10-16.
Open in Playground
GET/sofascore/trending-playersapiKey1 credit/request
Returns a sport's trending top players: standout performers from recent matches with the player, team, the match and that match's numbers as a snake_case metric map (`rating`, `minutes_played`, `goals` and more; the metric set depends on the sport and position). The `sport` enum accepts `football` and `basketball`, the sports for which SofaScore publishes this list. Returns 404 when SofaScore has no trending players for the sport right now.
Required: sport (2 allowed values: football, basketball).
Sampled 14 Oct 2026: 20 items. Filled in every item: player, team, event, statistics.
Open in Playground
GET/sofascore/venue-eventsapiKey1 credit/request
Returns one page (up to 30) of the matches played (`direction` `last`, newest page first) or scheduled (`next`) at a venue, as match summaries. Without `tournament` and `season` it lists every match at the venue, optionally narrowed by `sport` (`all`, or any key listed in the venue's `sports`, such as `football`, `rugby`, `basketball`, `mma`); with both it lists that competition season's matches at the venue and `sport` must be omitted. Hidden venues (see venue) have no venue-wide list and answer 404 without `tournament` and `season`. A direction with no matches, a sport the venue never hosted and a page past the last one also answer 404; follow `has_next_page`.
Required: id, direction (2 allowed values: next, last). Optional: sport (25 allowed values: all, american-football, aussie-rules, badminton, bandy, baseball, basketball, beach-volley, cricket, darts, esports, floorball, football, futsal, handball, ice-hockey, mma, minifootball, padel, rugby, snooker, table-tennis, tennis, volleyball, waterpolo), page, tournament, season.
Sampled 14 Oct 2026: 30 items. Filled in every item: id, slug, start_timestamp, start_time, status, winner_code, tournament, home_team and 3 more. In the sample: start_timestamp: 2025-11-23 to 2026-10-10; start_time: 2025-11-23 to 2026-10-10.
Open in Playground
GET/sofascore/venueapiKey1 credit/request
Returns one venue (stadium or arena): name, capacity, city, country, coordinates, its home teams, the venue-wide match totals (matches, goals, home and away win shares, and for football cards and corners per game) and a per-sport record in `sports`, most matches first. `hidden` venues, such as NBA arenas, have no venue-wide match list in venue-events and are listed per competition season instead. An unknown venue id answers 404. Get `id` from search-typed with `type` `venues`, from tournament-venues or from an event's venue.
Required: id.
Sampled 14 Oct 2026: 2 items. Filled in every item: sport, total_matches, goals_scored, home_win_percentage, draw_percentage. In the sample: total_matches: 1 to 416, median 1; sport: “football” and 1 other value; goals_scored: 53 to 1,289, median 53; home_win_percentage: 0 to 68.03, median 0; draw_percentage: 0 to 16.35, median 0.
Open in Playground