Fixtures, live scores, results, tables and match facts for 1,881 competitions in 8 sports.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: Bearer <your SportStatsAPI key>. Without a key, list_sports and find_leagues are free and other tools are paid per call with x402 (USDC on Base).
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Find horses, jockeys and trainers by name, with their ids (for get_runner_form), most recently seen first.
part of a horse, jockey or trainer name (2-64 characters)
max results per kind (default 20, max 50)
Tool list last changed Oct 25, 2026.
Find horses, jockeys and trainers by name, with their ids (for get_runner_form), most recently seen first.
| Argument | Type | Description |
|---|---|---|
| name* | string | part of a horse, jockey or trainer name (2-64 characters) |
| limit | integer | max results per kind (default 20, max 50) |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "part of a horse, jockey or trainer name (2-64 characters)"
},
"limit": {
"type": "integer",
"description": "max results per kind (default 20, max 50)"
}
},
"additionalProperties": false
}Find leagues (competitions) of a sport and their ids, optionally by name or country (also matches official_name, the competition's official or Wikidata name where known). Free.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| query | string | text the league or country name must contain, e.g. 'Premier League' or 'Germany' |
| sport* | string | sport: soccer, basketball, baseball, hockey, tennis, handball, volleyball, american-football, cricket, rugby (union), rugby-league, esports or table-tennis |
| future | boolean | only leagues with upcoming matches |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"query": {
"type": "string",
"description": "text the league or country name must contain, e.g. 'Premier League' or 'Germany'"
},
"sport": {
"type": "string",
"description": "sport: soccer, basketball, baseball, hockey, tennis, handball, volleyball, american-football, cricket, rugby (union), rugby-league, esports or table-tennis"
},
"future": {
"type": "boolean",
"description": "only leagues with upcoming matches"
}
},
"additionalProperties": false
}Find teams by name, with their ids, country, venue and leagues.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| name* | string | part of the team name, e.g. 'Bayern' |
| limit | integer | max teams (default 20, max 100) |
| sport* | string | sport (see list_sports) |
| league_id | integer | string | only teams of this league |
{
"type": "object",
"required": [
"sport",
"name"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"name": {
"type": "string",
"description": "part of the team name, e.g. 'Bayern'"
},
"limit": {
"type": "integer",
"description": "max teams (default 20, max 100)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "only teams of this league"
}
},
"additionalProperties": false
}One boxing event with every bout from the main event down: weight class, world titles at stake (WBA, WBC, IBF, WBO, Ring), fighters, result, method (KO, TKO, UD, SD, MD, RTD, DQ, TD, NC, draw), round, time, rounds scheduled.
| Argument | Type | Description |
|---|---|---|
| event_id* | integer | string | event code (or number) from get_boxing_events |
{
"type": "object",
"required": [
"event_id"
],
"properties": {
"event_id": {
"type": [
"integer",
"string"
],
"description": "event code (or number) from get_boxing_events"
}
},
"additionalProperties": false
}Boxing events of the last and the current year from Wikipedia: fight cards and world title fights, with date, venue, city, status and the main event's winner (cite the attribution). The current world champions: get_standings with sport boxing.
| Argument | Type | Description |
|---|---|---|
| kind | string | card (a whole card) or title_fight (a world title fight from a champion's record) |
| limit | integer | max events (default 20, max 100) |
| offset | integer | skip this many events (paging) |
| season | string | year (default: the last and the current year) |
| status | string | scheduled, live, finished or no_results |
| date_to | string | YYYY-MM-DD |
| date_from | string | YYYY-MM-DD |
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "card (a whole card) or title_fight (a world title fight from a champion's record)"
},
"limit": {
"type": "integer",
"description": "max events (default 20, max 100)"
},
"offset": {
"type": "integer",
"description": "skip this many events (paging)"
},
"season": {
"type": "string",
"description": "year (default: the last and the current year)"
},
"status": {
"type": "string",
"description": "scheduled, live, finished or no_results"
},
"date_to": {
"type": "string",
"description": "YYYY-MM-DD"
},
"date_from": {
"type": "string",
"description": "YYYY-MM-DD"
}
},
"additionalProperties": false
}A boxer (fighter_id): birth date, country, height, reach, stance and professional record (Wikipedia/Wikidata), world titles held now, latest bouts; or find boxers by name.
| Argument | Type | Description |
|---|---|---|
| name | string | part of a boxer's name, to find the id |
| fighter_id | integer | string | fighter code (or number) from a bout or the champions |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "part of a boxer's name, to find the id"
},
"fighter_id": {
"type": [
"integer",
"string"
],
"description": "fighter code (or number) from a bout or the champions"
}
},
"additionalProperties": false
}A knock-out bracket: rounds in playing order, ties with their legs, aggregate (soccer: goals after extra time), the side that advanced and how (score, aggregate, extra_time, penalties, walkover, next_round), and from: the tie a side won to get there. Soccer cups and the European knock-out phases (league_id, season); tennis draws (league_id: the category id, season: a year), rebuilt from who beat whom (qualifying first; seeds, entry types and draw order where a Wikipedia draw is linked); snooker and darts tournaments (tournament_id). Rounds we cannot prove from stored matches have status missing with a reason and no ties; pairings are never guessed (snooker and darts add 'winner of A v B' placeholders only where the draw's tree is proven).
| Argument | Type | Description |
|---|---|---|
| sport* | string | soccer, tennis, snooker or darts |
| season | string | soccer: 2025-26, 2025/2026 or 2025 (default: the latest season with knock-out rounds); tennis: a year (default: the latest edition) |
| league_id | integer | string | soccer: the cup's league code (or number), from find_leagues; tennis: the tournament's category id |
| tournament_id | integer | string | snooker or darts: tournament code (or number) from get_snooker_darts_tournaments |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"sport": {
"type": "string",
"description": "soccer, tennis, snooker or darts"
},
"season": {
"type": "string",
"description": "soccer: 2025-26, 2025/2026 or 2025 (default: the latest season with knock-out rounds); tennis: a year (default: the latest edition)"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "soccer: the cup's league code (or number), from find_leagues; tennis: the tournament's category id"
},
"tournament_id": {
"type": [
"integer",
"string"
],
"description": "snooker or darts: tournament code (or number) from get_snooker_darts_tournaments"
}
},
"additionalProperties": false
}Ready fact sentences for a match or team, most important first: form, streaks, records, head-to-head, table and stakes; after a match the story and the runs it ended. Each fact: type, importance, text (lang de, es, it or fr). summary: the top ones as one paragraph. Facts only, no predictions. The same facts as get_match_briefing and get_team_briefing without the data blocks. Insights feature.
| Argument | Type | Description |
|---|---|---|
| id* | integer | string | match or team code (or number) |
| kind* | string | match or team (tennis: a player); a league: get_league_facts |
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport | string | sport (default soccer; not cricket or table-tennis) |
{
"type": "object",
"required": [
"kind",
"id"
],
"properties": {
"id": {
"type": [
"integer",
"string"
],
"description": "match or team code (or number)"
},
"kind": {
"type": "string",
"description": "match or team (tennis: a player); a league: get_league_facts"
},
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport (default soccer; not cricket or table-tennis)"
}
},
"additionalProperties": false
}A golf tournament's leaderboard: position (tied), to par, strokes per round, thru and today while live, earnings, missed cut or withdrawn, and per-player stats (birdies, eagles, driving distance and accuracy, greens in regulation, putts); holes=true adds hole-by-hole scores.
| Argument | Type | Description |
|---|---|---|
| holes | boolean | also each player's hole-by-hole scores (large) |
| tournament_id* | integer | string | tournament code (or number) from get_golf_tournaments |
{
"type": "object",
"required": [
"tournament_id"
],
"properties": {
"holes": {
"type": "boolean",
"description": "also each player's hole-by-hole scores (large)"
},
"tournament_id": {
"type": [
"integer",
"string"
],
"description": "tournament code (or number) from get_golf_tournaments"
}
},
"additionalProperties": false
}A golfer's profile (country, birth date and place, PGA Tour rank) and season results from our leaderboards with events, wins, top 10s, cuts made and earnings (player_id); or find golfers by name.
| Argument | Type | Description |
|---|---|---|
| name | string | part of a golfer's name, to find the id |
| season | integer | season of the results (default: the latest) |
| player_id | integer | string | player code (or number) from a leaderboard: profile and the season's results |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "part of a golfer's name, to find the id"
},
"season": {
"type": "integer",
"description": "season of the results (default: the latest)"
},
"player_id": {
"type": [
"integer",
"string"
],
"description": "player code (or number) from a leaderboard: profile and the season's results"
}
},
"additionalProperties": false
}Golf tournaments of the PGA Tour and LPGA by date: course, location, purse, status and the leader or winner. Leaderboards exist for the PGA Tour only. The season money list: get_standings with sport golf.
| Argument | Type | Description |
|---|---|---|
| tour | string | pga or lpga (LPGA: schedule only, no leaderboards) |
| limit | integer | max tournaments (default 20, max 100) |
| offset | integer | skip this many tournaments (paging) |
| season | integer | season (year) |
| status | string | scheduled, live, finished, no_results or incomplete |
| date_to | string | tournaments starting on or before YYYY-MM-DD |
| date_from | string | tournaments ending on or after YYYY-MM-DD |
{
"type": "object",
"properties": {
"tour": {
"type": "string",
"description": "pga or lpga (LPGA: schedule only, no leaderboards)"
},
"limit": {
"type": "integer",
"description": "max tournaments (default 20, max 100)"
},
"offset": {
"type": "integer",
"description": "skip this many tournaments (paging)"
},
"season": {
"type": "integer",
"description": "season (year)"
},
"status": {
"type": "string",
"description": "scheduled, live, finished, no_results or incomplete"
},
"date_to": {
"type": "string",
"description": "tournaments starting on or before YYYY-MM-DD"
},
"date_from": {
"type": "string",
"description": "tournaments ending on or after YYYY-MM-DD"
}
},
"additionalProperties": false
}Head-to-head of two teams (soccer by default; any team sport with results: basketball, baseball, hockey, handball, volleyball, American football) over every meeting in our data (all competitions, no friendlies): won, drawn and lost from team_a's side (home_team_* fields = team_a), goals (the sport's score: points, runs, sets won), each side's biggest win, the last 5 meetings, with sentences (lang de, es, it, fr). history_from: our data starts there, so say 'since' that date. Tennis: get_player with vs. Facts only. Insights feature.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport | string | team sport (default soccer; see list_sports; tennis: get_player with vs) |
| team_a* | integer | string | team code (or number) from find_teams or a match |
| team_b* | integer | string | the other team's id |
{
"type": "object",
"required": [
"team_a",
"team_b"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "team sport (default soccer; see list_sports; tennis: get_player with vs)"
},
"team_a": {
"type": [
"integer",
"string"
],
"description": "team code (or number) from find_teams or a match"
},
"team_b": {
"type": [
"integer",
"string"
],
"description": "the other team's id"
}
},
"additionalProperties": false
}What finished matches changed, newest first: the match story (comebacks, late winners, red cards), runs started or ended, table places and zones, each also as a sentence (lang de, es, it, fr). Use for 'what happened in this league today'. Facts only. Insights feature.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| since | string | only matches updated after this RFC 3339 time |
| sport | string | sport (default soccer; see list_sports) |
| league_id | integer | string | only this league (from find_leagues) |
| min_importance | integer | only facts of at least this importance, 0-100 (default 50) |
{
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"since": {
"type": "string",
"description": "only matches updated after this RFC 3339 time"
},
"sport": {
"type": "string",
"description": "sport (default soccer; see list_sports)"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "only this league (from find_leagues)"
},
"min_importance": {
"type": "integer",
"description": "only facts of at least this importance, 0-100 (default 50)"
}
},
"additionalProperties": false
}Matches in play right now, with score and minute or period, and the TV channels showing them where known.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport* | string | sport (see list_sports) |
| league_id | integer | string | only this league |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "only this league"
}
},
"additionalProperties": false
}One match: teams, score, status, events (goals, cards...), venue, referee; where known TV channels by country and, after the match, a highlights video link. Soccer adds timeline: the events normalised (minute, extra_minute, team home/away, kind goal, penalty, own_goal, missed_penalty, yellow, second_yellow, red, substitution or var, player, assist, player_in/player_out, detail: card reason or VAR outcome; minute null = not known; no headers or xG per shot: not in our data) and referee_stats: the referee's season in the league (games, cards and penalties per game, with league_matches_with_referee of league_matches_played). Matches with a page on our website (soccer, basketball, hockey, tennis, volleyball, handball, baseball, American football): summary, ready paragraphs on the match from our data (table places, form, meetings, season), with key_facts before kick-off and what_it_means after the result, summary_as_of when written; only until kick-off and once finished, English only (no lang). Quote them as facts; never add predictions.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport* | string | sport (see list_sports) |
| match_id* | integer | string | match code (or number) from get_matches |
{
"type": "object",
"required": [
"sport",
"match_id"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"match_id": {
"type": [
"integer",
"string"
],
"description": "match code (or number) from get_matches"
}
},
"additionalProperties": false
}Ready briefing for one match (any sport but cricket): form, current streaks, home and away records, head-to-head, table position and gaps, stakes, schedule; for soccer also injuries, lineups, players one league appearance or goal short of a club milestone (milestone_next) and, after the match, the story (comeback, late winner, red cards), runs it ended (streak_ended_*: 'first defeat after 11 unbeaten') and long waits it ended that our data can date (first_since_*: first win at the opponent's ground, first clean sheet, top of the table for the first time since a day; history_from: nothing is claimed before it). The head-to-head block has goals and each side's biggest win. Soccer before kickoff: players suspended (suspended_out) or one booking from a ban, by the league's card rules. Each statement also as a sentence (lang de, es, it, fr), and summary: the most important sentences as one paragraph in that language. Facts only, no predictions. Insights feature. Prefer this for 'tell me about this match'.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport | string | sport (default soccer; see list_sports) |
| format | string | md for a short Markdown text instead of JSON |
| match_id* | integer | string | match code (or number) from get_matches |
{
"type": "object",
"required": [
"match_id"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport (default soccer; see list_sports)"
},
"format": {
"type": "string",
"description": "md for a short Markdown text instead of JSON"
},
"match_id": {
"type": [
"integer",
"string"
],
"description": "match code (or number) from get_matches"
}
},
"additionalProperties": false
}Detail of one match: statistics or box score, lineups, injuries (soccer: per player type, expected_return and matches_missed; null = not known, never guess), play-by-play, a cricket scorecard (batting, bowling, fall of wickets), rugby scoring events, esports maps and games with player lines, or the singles and doubles of a table tennis team match with set scores.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| part* | string | stats, lineups or injuries (soccer); stats (box score) or play_by_play (basketball, baseball, hockey, tennis, american-football); scorecard (cricket); events (rugby, rugby-league: tries, conversions, penalties, cards); maps (esports: per map or game with player lines); games (table-tennis: singles and doubles with set scores) |
| sport* | string | sport (see list_sports) |
| match_id* | integer | string | match code (or number) from get_matches |
{
"type": "object",
"required": [
"sport",
"match_id",
"part"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"part": {
"type": "string",
"description": "stats, lineups or injuries (soccer); stats (box score) or play_by_play (basketball, baseball, hockey, tennis, american-football); scorecard (cricket); events (rugby, rugby-league: tries, conversions, penalties, cards); maps (esports: per map or game with player lines); games (table-tennis: singles and doubles with set scores)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"match_id": {
"type": [
"integer",
"string"
],
"description": "match code (or number) from get_matches"
}
},
"additionalProperties": false
}Matches (fixtures and results) by day or date range, optionally of one league, or one team's matches in every competition (team_id; without status or dates its latest results, then live, then next matches; with status scheduled only the next ones, with finished only the latest results). Without a date or team: today (UTC). Where known: TV channels by country (where to watch) and a highlights video link.
| Argument | Type | Description |
|---|---|---|
| date | string | day YYYY-MM-DD (UTC); without date, date_from, date_to, team_id or league_id: today only (UTC) |
| game | string | esports: cs2, dota2, lol or valorant |
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| limit | integer | max matches (default 20, max 100) |
| sport* | string | sport (see list_sports) |
| offset | integer | skip this many matches (paging) |
| status | string | scheduled, finished or live, or a status as the API reports it, e.g. FT or NS; with team_id finished lists the latest first; with team_id and no status or date: latest results then next matches |
One MMA card from the main event down (weight class, fighters, winner, method, round, time, judges' scores, fight stats), or with bout_id one fight.
| Argument | Type | Description |
|---|---|---|
| bout_id | integer | string | bout code (or number) from a card: that fight with its stats instead |
| event_id | integer | string | event code (or number) from get_mma_events: the full card |
{
"type": "object",
"properties": {
"bout_id": {
"type": [
"integer",
"string"
],
"description": "bout code (or number) from a card: that fight with its stats instead"
},
"event_id": {
"type": [
"integer",
"string"
],
"description": "event code (or number) from get_mma_events: the full card"
}
},
"additionalProperties": false
}MMA (UFC) fight cards by date: name, date, status and the main event with its result once known.
| Argument | Type | Description |
|---|---|---|
| limit | integer | max events (default 20, max 100) |
| offset | integer | skip this many events (paging) |
| status | string | scheduled, live, finished or cancelled |
| date_to | string | events on or before YYYY-MM-DD |
| date_from | string | events on or after YYYY-MM-DD |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "max events (default 20, max 100)"
},
"offset": {
"type": "integer",
"description": "skip this many events (paging)"
},
"status": {
"type": "string",
"description": "scheduled, live, finished or cancelled"
},
"date_to": {
"type": "string",
"description": "events on or before YYYY-MM-DD"
},
"date_from": {
"type": "string",
"description": "events on or after YYYY-MM-DD"
}
},
"additionalProperties": false
}An MMA fighter's record (wins, losses, draws, no contests; wins and losses by KO/TKO, submission, decision) from the bouts held since 2026, with the last fights; where Wikipedia/Wikidata has the fighter also the profile (birth date, height, reach, stance, nationality, weight class, team), the career record and the fights before 2026 (cite the attribution). Or find fighters by name.
| Argument | Type | Description |
|---|---|---|
| name | string | part of a fighter's name, to find the id |
| fighter_id | integer | string | fighter code (or number) from a bout: the record, recent fights, profile and history |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "part of a fighter's name, to find the id"
},
"fighter_id": {
"type": [
"integer",
"string"
],
"description": "fighter code (or number) from a bout: the record, recent fights, profile and history"
}
},
"additionalProperties": false
}One motorsport weekend with its sessions (practice, qualifying, sprint, race; start in UTC, status), or with session_id one session's results: position, driver, team, time or gap, laps, grid, pit stops, DNF/DNS/DSQ.
| Argument | Type | Description |
|---|---|---|
| event_id | integer | string | event code (or number) from get_motorsport_events: the weekend with its sessions |
| session_id | integer | string | session code (or number) from an event: that session's results instead |
{
"type": "object",
"properties": {
"event_id": {
"type": [
"integer",
"string"
],
"description": "event code (or number) from get_motorsport_events: the weekend with its sessions"
},
"session_id": {
"type": [
"integer",
"string"
],
"description": "session code (or number) from an event: that session's results instead"
}
},
"additionalProperties": false
}Motorsport race weekends (Formula 1, MotoGP, Moto2, Moto3, Formula 2, Formula E, IndyCar, NASCAR) by start date: round, name, country, circuit, dates, status and the race winner once known. With overview: every series with its season, next and last event.
| Argument | Type | Description |
|---|---|---|
| limit | integer | max events (default 20, max 100) |
| offset | integer | skip this many events (paging) |
| season | integer | season year |
| series | string | f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity or nascar-trucks |
| status | string | scheduled, live, finished or cancelled |
| date_to | string | events starting on or before YYYY-MM-DD |
| overview | boolean | the series list instead: season, next and last event of each |
| date_from | string | events ending on or after YYYY-MM-DD |
Player profile with summary: ready paragraphs from our data (club, season numbers, form; English, no lang; summary_as_of; absent when not fresh or for a player under 18); position, nationality, birth date, height, team, career and photo link where known; cricket and tennis also Wikidata values (birth date, height, batting or playing hand, bowling style, role, country; cite the attribution); tennis also the ATP/WTA rank, or with vs the head-to-head of two players; soccer also bio: known_as, full_name, short_name, birth_date, age, nationality, position, number, club, market_value_eur (null = not in our data; there are no contract dates), and season_stats: the current season (or season) in every competition we hold statistics for, total and per competition (apps, minutes, goals, assists, cards, shots, rating; null = not in our data; matches_with_stats of team_matches_played says how complete it is); NBA, MLB and NFL players also season_stats: the season line per team from the data provider's team feeds (stats by category as the feed names them; season null for the NBA, whose feed names none, as_of when read); WNBA, NCAA and hockey (NHL, Liiga, SHL, DEL) players the same, summed from our box scores.
| Argument | Type | Description |
|---|---|---|
| vs | integer | string | tennis: another player's id, for the head-to-head of the two instead |
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport* | string | sport (see list_sports) |
| season | string | soccer: season_stats of this season (2025-26, or 2025) instead of the current one |
One horse race card: runners with number, horse, jockey, trainer, weight, rating, recent form where the feed has it, best current price and morning line; once settled the result (positions, starting prices, finish codes such as PU or F) and results_final.
| Argument | Type | Description |
|---|---|---|
| race_id* | integer | string | race code (or number) from get_races |
{
"type": "object",
"required": [
"race_id"
],
"properties": {
"race_id": {
"type": [
"integer",
"string"
],
"description": "race code (or number) from get_races"
}
},
"additionalProperties": false
}Ready briefing for one horse race from our results: field size, distance, going, class, the favourite, each runner's form figures and last run, jockey and trainer strike rates over the last 30 days; after the race the winner, starting price and whether the favourite won. Each statement also as a sentence (lang de, es, it, fr). Facts only.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| format | string | md for a short Markdown text instead of JSON |
| race_id* | integer | string | race code (or number) from get_races |
{
"type": "object",
"required": [
"race_id"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"format": {
"type": "string",
"description": "md for a short Markdown text instead of JSON"
},
"race_id": {
"type": [
"integer",
"string"
],
"description": "race code (or number) from get_races"
}
},
"additionalProperties": false
}Horse races of a day (default today, UTC), optionally of one region or racecourse: off time, course, race name, distance, going, class, number of runners, status (NS, live, result_pending, FT, unlisted).
| Argument | Type | Description |
|---|---|---|
| date | string | UTC race day YYYY-MM-DD (default today) |
| limit | integer | max races (default 20, max 100) |
| offset | integer | skip this many races (paging) |
| region | string | usa, uk (Great Britain), ie (Ireland), australia, hk, singapore, dubai, sa or france |
| meeting_id | integer | string | racecourse (meeting) code (or number) from a race |
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "UTC race day YYYY-MM-DD (default today)"
},
"limit": {
"type": "integer",
"description": "max races (default 20, max 100)"
},
"offset": {
"type": "integer",
"description": "skip this many races (paging)"
},
"region": {
"type": "string",
"description": "usa, uk (Great Britain), ie (Ireland), australia, hk, singapore, dubai, sa or france"
},
"meeting_id": {
"type": [
"integer",
"string"
],
"description": "racecourse (meeting) code (or number) from a race"
}
},
"additionalProperties": false
}Stats from our stored results. kind jockey or trainer: runs, wins, places and strike rate over the last 14 and 30 days, overall and per region. kind course (last 365 days): favourite win rate, top jockeys and trainers by wins, draw by distance band in thirds of the stalls with sample sizes.
| Argument | Type | Description |
|---|---|---|
| id* | integer | string | jockey or trainer code (or number) from find_horses or a race card; for a course the racecourse (meeting) code of a race |
| kind* | string | jockey, trainer or course |
{
"type": "object",
"required": [
"kind",
"id"
],
"properties": {
"id": {
"type": [
"integer",
"string"
],
"description": "jockey or trainer code (or number) from find_horses or a race card; for a course the racecourse (meeting) code of a race"
},
"kind": {
"type": "string",
"description": "jockey, trainer or course"
}
},
"additionalProperties": false
}Last runs of a horse, jockey or trainer in our stored results, latest first: date, course, distance, going, position and field size, starting price; plus wins, top-three finishes and strike rate over those runs.
| Argument | Type | Description |
|---|---|---|
| id* | integer | string | horse, jockey or trainer code (or number) from find_horses or a race card |
| kind | string | horse (default), jockey or trainer |
| limit | integer | runs (default 10, max 50) |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"integer",
"string"
],
"description": "horse, jockey or trainer code (or number) from find_horses or a race card"
},
"kind": {
"type": "string",
"description": "horse (default), jockey or trainer"
},
"limit": {
"type": "integer",
"description": "runs (default 10, max 50)"
}
},
"additionalProperties": false
}A snooker or darts player (player_id): country, world ranking, birth date (Wikidata), titles and finals in the stored seasons, latest matches; or find players by name.
| Argument | Type | Description |
|---|---|---|
| name | string | part of a player's name, to find the id |
| sport* | string | snooker or darts |
| player_id | integer | string | player code (or number) from a draw or ranking |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"name": {
"type": "string",
"description": "part of a player's name, to find the id"
},
"sport": {
"type": "string",
"description": "snooker or darts"
},
"player_id": {
"type": [
"integer",
"string"
],
"description": "player code (or number) from a draw or ranking"
}
},
"additionalProperties": false
}A snooker or darts tournament with its whole draw (qualifying first, the final last): round, players, seeds, frames/legs/sets won, best of, three-dart averages where listed; snooker also the century breaks per player.
| Argument | Type | Description |
|---|---|---|
| sport* | string | snooker or darts |
| tournament_id* | integer | string | tournament code (or number) from get_snooker_darts_tournaments |
{
"type": "object",
"required": [
"sport",
"tournament_id"
],
"properties": {
"sport": {
"type": "string",
"description": "snooker or darts"
},
"tournament_id": {
"type": [
"integer",
"string"
],
"description": "tournament code (or number) from get_snooker_darts_tournaments"
}
},
"additionalProperties": false
}Snooker (World Snooker Tour ranking and invitational events) or darts (PDC majors, World Series, Players Championships, European Tour) tournaments of the current and last season from Wikipedia: dates, venue, prize fund, winner, final score. The world ranking: get_standings with sport snooker or darts.
| Argument | Type | Description |
|---|---|---|
| kind | string | snooker: ranking, non_ranking; darts: ranked, non_ranked, world_series, players_championship, european_tour |
| limit | integer | max tournaments (default 20, max 100) |
| sport* | string | snooker or darts |
| offset | integer | skip this many tournaments (paging) |
| season | string | snooker 2026-27, darts 2026 (default: the current and the last season) |
| status | string | scheduled, live, finished or no_results |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"kind": {
"type": "string",
"description": "snooker: ranking, non_ranking; darts: ranked, non_ranked, world_series, players_championship, european_tour"
},
"limit": {
"type": "integer",
"description": "max tournaments (default 20, max 100)"
},
"sport": {
"type": "string",
"description": "snooker or darts"
},
"offset": {
"type": "integer",
"description": "skip this many tournaments (paging)"
},
"season": {
"type": "string",
"description": "snooker 2026-27, darts 2026 (default: the current and the last season)"
},
"status": {
"type": "string",
"description": "scheduled, live, finished or no_results"
}
},
"additionalProperties": false
}League table of a league, with summary: ready paragraphs on the league from our data (the race at the top and bottom, form side, scoring, top scorer, champions; English; summary_as_of; absent when not fresh; with lang de, es, it or fr in sold sports and a plan with Insights: the most important facts of the league's matches of the last 14 days in that language, from our fact templates only, else English; summary_lang says which); for soccer also the top scorers, most assists or most cards (top_scorers), every player's season statistics sorted by goals, assists, minutes, rating, xg or apps (player_stats), every team's season statistics with ranks such as the best defence (team_stats), the referees with cards and penalties per game (referees), the roll of honour with champions and runners-up per season and their sources (champions), home attendance per team and league (attendance), the xG table with expected points against real points (xg_table), players banned or one booking away from a ban (suspensions) and past seasons' final tables (season); for every sport with results Elo-style team ratings of a league or the whole sport (ratings); for tennis the ATP or WTA singles ranking (tour); for motorsport a series' drivers or teams championship (series, kind); for golf the season money list with wins (tour); for snooker and darts the world ranking (WPBSA, PDC Order of Merit); for boxing the current world champions per weight class and body; for cricket the points table of a series or league.
| Argument | Type | Description |
|---|---|---|
| kind | string | motorsport: drivers (default) or teams |
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| tour | string | tennis: atp or wta (the singles ranking, top 100); golf: pga (default) or lpga |
Ready summary of a match, team, league or player: paragraphs written from our data only (table places, form, meetings, season), with key_facts (a match before kick-off) or what_it_means (after the result), summary_lang and summary_as_of. English; lang de, es, it or fr gives a team or league summary in that language with the Insights feature. summary null: none now (a match in play, a page not built lately, a player under 18). Quote as facts; never add predictions. Needs only the sport in the plan.
| Argument | Type | Description |
|---|---|---|
| id* | integer | string | code (or number) of the match, team, league or player |
| kind* | string | match, team, league or player |
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport* | string | sport: soccer, basketball, baseball, hockey, tennis, handball, volleyball or american-football |
{
"type": "object",
"required": [
"sport",
"kind",
"id"
],
"properties": {
"id": {
"type": [
"integer",
"string"
],
"description": "code (or number) of the match, team, league or player"
},
"kind": {
"type": "string",
"description": "match, team, league or player"
},
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport: soccer, basketball, baseball, hockey, tennis, handball, volleyball or american-football"
}
},
"additionalProperties": false
}Team profile: country, founded, venue, leagues, logo link; summary (soccer, NBA, NHL, MLB, NFL teams): ready paragraphs from our data (table place and gaps, record, form, home and away, squad leaders, next opponent; English; with lang de, es, it or fr in sold sports and a plan with Insights: the team briefing's most important facts in that language, from our fact templates only, else English; summary_lang says which; not with squad, injuries or season_stats of a US team; summary_as_of; absent when not fresh); rating: its Elo-style rating (rank of of in its league, matches_rated, rated_from, the last 10 changes); next: its next 5 matches in every competition (more: get_matches with team_id; fixture congestion: get_team_briefing). Soccer also coach: the current head coach from Wikidata with appointment date and won/drawn/lost since (record_complete false: our matches start later, at record_from, so say the record covers only that; cite the attribution), and squad_value_eur: the current squad's summed market value over players_with_value of squad_players. Options: squad (the players); soccer: coach (adds previous_coach and previous_club), facts (runs, first since, milestones; Insights feature), season_stats (the current season per league: home/away records, goals, clean sheets, biggest win and defeat, xG over matches_with_xg, home attendance over matches_with_attendance, the team's rank per metric), transfers (the latest 20), honours (titles and runners-up with sources), injuries (players out for coming matches: type, expected_return null = not known, never guess one; matches_missed a lower bound when matches_missed_complete is false). For an MLB, NBA, WNBA, NHL or NFL team, injuries returns its current injury report and season_stats its season statistics instead of the profile.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| coach | boolean |
Ready briefing for one team (any sport but cricket; for tennis a player): form, streaks (overall, home, away; streak_season_best: the longest of the season), home and away record, table place and gaps, last and next match, congestion (games_last_7d, games_last_14d in every competition, rest_days from the last match to the next), injuries (soccer); what its last match ended (runs; soccer: first_since_* waits); soccer player milestones for the club (debut, first goal, 50/100/150 league appearances, 25/50/75 league goals, milestone_next before the next match; only when our statistics hold the whole season); each also as a sentence (lang de, es, it, fr), and summary: the most important ones as one paragraph. Facts only. Insights feature.
| Argument | Type | Description |
|---|---|---|
| lang | string | language of team, league and country names: de, es, it or fr (default English) |
| sport | string | sport (default soccer); for tennis the id is a player id |
| format | string | md for a short Markdown text instead of JSON |
| team_id* | integer | string | team code (or number) from find_teams or a match (tennis: player id) |
{
"type": "object",
"required": [
"team_id"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport (default soccer); for tennis the id is a player id"
},
"format": {
"type": "string",
"description": "md for a short Markdown text instead of JSON"
},
"team_id": {
"type": [
"integer",
"string"
],
"description": "team code (or number) from find_teams or a match (tennis: player id)"
}
},
"additionalProperties": false
}Soccer transfers from player profiles: player, from and to team, date, season, window (summer, winter, other by the date), type (transfer, loan, loan_return, free, promoted, swap, unknown) and fee_eur where the feed gives an amount (often null: say the fee is not known, never 0). Filter by league (moves in or out of its current teams), team (direction in or out), season and window; sort by fee for the biggest moves. Moves dated after today (mostly planned loan ends) are left out; planned true returns only those. Profiles are re-read every 30 days, so the latest moves can be missing.
| Argument | Type | Description |
|---|---|---|
| sort | string | date (default, latest first) or fee (highest first) |
| limit | integer | maximum results (default 20, max 100) |
| season | string | 2026-27 (1 June to 31 May) or 2026 (calendar year) |
| window | string | summer (1 June-5 September), winter (1 January-3 February) or other |
| planned | boolean | true: only agreed moves dated after today (mostly loan ends); default: moves up to today |
| team_id | integer | string | moves of this team |
| direction | string | with team_id: in or out (default both) |
Sports available, with whether each has upcoming matches. Free. Horse racing has its own tools (get_races, get_race, get_race_briefing, find_horses, get_runner_form, get_racing_stats), motorsport too (get_motorsport_events, get_motorsport_event; get_standings with sport motorsport), MMA (get_mma_events, get_mma_event, get_mma_fighter), golf (get_golf_tournaments, get_golf_leaderboard, get_golf_player; get_standings with sport golf), snooker and darts (get_snooker_darts_tournaments, get_snooker_darts_tournament, get_snooker_darts_player; get_standings with sport snooker or darts), boxing (get_boxing_events, get_boxing_event, get_boxing_fighter; get_standings with sport boxing for the current world champions).
No arguments.
{
"type": "object",
"additionalProperties": false
}| date_to |
| string |
| last day YYYY-MM-DD of a range |
| team_id | integer | string | only this team's matches in every competition (team code (or number) from find_teams; not tennis); without a date all of them |
| date_from | string | first day YYYY-MM-DD of a range |
| league_id | integer | string | league code (or number) from find_leagues |
| league_name | string | exact league name, picks one division where several share a league id |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"date": {
"type": "string",
"description": "day YYYY-MM-DD (UTC); without date, date_from, date_to, team_id or league_id: today only (UTC)"
},
"game": {
"type": "string",
"description": "esports: cs2, dota2, lol or valorant"
},
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"limit": {
"type": "integer",
"description": "max matches (default 20, max 100)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"offset": {
"type": "integer",
"description": "skip this many matches (paging)"
},
"status": {
"type": "string",
"description": "scheduled, finished or live, or a status as the API reports it, e.g. FT or NS; with team_id finished lists the latest first; with team_id and no status or date: latest results then next matches"
},
"date_to": {
"type": "string",
"description": "last day YYYY-MM-DD of a range"
},
"team_id": {
"type": [
"integer",
"string"
],
"description": "only this team's matches in every competition (team code (or number) from find_teams; not tennis); without a date all of them"
},
"date_from": {
"type": "string",
"description": "first day YYYY-MM-DD of a range"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "league code (or number) from find_leagues"
},
"league_name": {
"type": "string",
"description": "exact league name, picks one division where several share a league id"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "max events (default 20, max 100)"
},
"offset": {
"type": "integer",
"description": "skip this many events (paging)"
},
"season": {
"type": "integer",
"description": "season year"
},
"series": {
"type": "string",
"description": "f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity or nascar-trucks"
},
"status": {
"type": "string",
"description": "scheduled, live, finished or cancelled"
},
"date_to": {
"type": "string",
"description": "events starting on or before YYYY-MM-DD"
},
"overview": {
"type": "boolean",
"description": "the series list instead: season, next and last event of each"
},
"date_from": {
"type": "string",
"description": "events ending on or after YYYY-MM-DD"
}
},
"additionalProperties": false
}| player_id* | integer | string | player code (or number) from a squad or lineup |
{
"type": "object",
"required": [
"sport",
"player_id"
],
"properties": {
"vs": {
"type": [
"integer",
"string"
],
"description": "tennis: another player's id, for the head-to-head of the two instead"
},
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"season": {
"type": "string",
"description": "soccer: season_stats of this season (2025-26, or 2025) instead of the current one"
},
"player_id": {
"type": [
"integer",
"string"
],
"description": "player code (or number) from a squad or lineup"
}
},
"additionalProperties": false
}| sport* | string | sport (see list_sports) |
| season | string | soccer: a past season's final table (2016-17, or 2016 for Brazil and MLS; the last 10 seasons of the top leagues, from Wikipedia: cite the attribution) instead of the current table; tennis: a year (2026) for that year's year-end ranking, first 100 places (final false while the year is not over; stored weekly from 2026-10) |
| series | string | motorsport: f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity or nascar-trucks |
| history | boolean | the league's table round by round instead of the table (position charts; sports with the data provider league tables, not cricket): soccer from our results for the current and previous season plus stored tables, other sports the stored tables from 2026-10-11 (history_from); with team_id only that team's row per round |
| ratings | boolean | any sport with results: Elo-style team ratings (tennis: players) instead of the table, highest first, of the league (league_id) or of the whole sport without it; matches_rated and rated_from say how much history a rating stands on, provisional below 10; ratings compare across leagues only where those leagues' teams meet (cups, continental matches) |
| team_id | integer | string | with history: only this team |
| referees | boolean | soccer: the league's referees instead of the table: games, yellow and red cards and penalties per game (computed from our match data, top leagues; league_matches_with_referee of league_matches_played says how complete; season: a past season) |
| xg_table | string | soccer: xpts, xg_diff or points_minus_xpts for the league's xG table instead of the table: xG for and against, expected points (xpts, independent Poisson goals from both sides' xG) against real points and the difference (positive = more than expected: luckier or better finishing), all over matches_with_xg of played (top leagues; season: a past season) |
| champions | boolean | soccer: the league's (or cup's) roll of honour instead of the table: champion and runner_up per season, each with its sources (wikipedia: the final tables of the last 10 seasons, top leagues; provider: the trophy lists of team profiles, further back but missing teams we do not hold); conflicts lists a team another source names for the same place: report it, do not pick silently; cite the attribution |
| league_id | integer | string | league code (or number) from find_leagues (not for tennis) |
| attendance | boolean | soccer: the league season's home attendance instead of the table: league average and record, per team average, record and rank; matches_with_attendance of matches_played says how complete (often low: the feed lacks attendance for many matches, so say the average stands on that many matches; season: a past season) |
| team_stats | string | soccer: ppg, goals_for, goals_against (best defence), clean_sheets, failed_to_score, xg_for, xg_against or attendance for every team's season statistics (home/away records, xG, attendance, ranks per metric) sorted by it, instead of the table (matches_with_xg and matches_with_attendance say how complete xG and attendance are; season: a past season) |
| suspensions | boolean | soccer: the league's suspension watch instead of the table: players banned now (status suspended, matches_left) and one booking away from a ban (next_threshold, next_ban), from the league's official card rules (Premier League, EFL, Bundesliga, 2. Bundesliga, LaLiga, Segunda, Serie A, Serie B; rules.source) and our cards; rules_known and matches_with_stats of matches_played on every row; leagues without known rules list cards so far only |
| top_scorers | string | soccer: goals, assists or cards for the league's top scorers, most assists or most cards instead of the table |
| player_stats | string | soccer: goals, assists, minutes, rating, xg or apps for every player's season statistics in the league sorted by it, instead of the table (computed from our matches; matches_with_stats of team_matches_played says how complete a row is; season: a past season); NBA, MLB, NFL: a stat name such as points_per_game, home_runs, earned_run_average or passing.yards (category.stat) for the players' season lines from the data provider's team feeds (season null for the NBA: before a new season the feed still holds the last one; as_of says when it was read) |
{
"type": "object",
"required": [
"sport"
],
"properties": {
"kind": {
"type": "string",
"description": "motorsport: drivers (default) or teams"
},
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"tour": {
"type": "string",
"description": "tennis: atp or wta (the singles ranking, top 100); golf: pga (default) or lpga"
},
"sport": {
"type": "string",
"description": "sport (see list_sports)"
},
"season": {
"type": "string",
"description": "soccer: a past season's final table (2016-17, or 2016 for Brazil and MLS; the last 10 seasons of the top leagues, from Wikipedia: cite the attribution) instead of the current table; tennis: a year (2026) for that year's year-end ranking, first 100 places (final false while the year is not over; stored weekly from 2026-10)"
},
"series": {
"type": "string",
"description": "motorsport: f1, motogp, moto2, moto3, f2, formula-e, indycar, nascar-cup, nascar-xfinity or nascar-trucks"
},
"history": {
"type": "boolean",
"description": "the league's table round by round instead of the table (position charts; sports with the data provider league tables, not cricket): soccer from our results for the current and previous season plus stored tables, other sports the stored tables from 2026-10-11 (history_from); with team_id only that team's row per round"
},
"ratings": {
"type": "boolean",
"description": "any sport with results: Elo-style team ratings (tennis: players) instead of the table, highest first, of the league (league_id) or of the whole sport without it; matches_rated and rated_from say how much history a rating stands on, provisional below 10; ratings compare across leagues only where those leagues' teams meet (cups, continental matches)"
},
"team_id": {
"type": [
"integer",
"string"
],
"description": "with history: only this team"
},
"referees": {
"type": "boolean",
"description": "soccer: the league's referees instead of the table: games, yellow and red cards and penalties per game (computed from our match data, top leagues; league_matches_with_referee of league_matches_played says how complete; season: a past season)"
},
"xg_table": {
"type": "string",
"description": "soccer: xpts, xg_diff or points_minus_xpts for the league's xG table instead of the table: xG for and against, expected points (xpts, independent Poisson goals from both sides' xG) against real points and the difference (positive = more than expected: luckier or better finishing), all over matches_with_xg of played (top leagues; season: a past season)"
},
"champions": {
"type": "boolean",
"description": "soccer: the league's (or cup's) roll of honour instead of the table: champion and runner_up per season, each with its sources (wikipedia: the final tables of the last 10 seasons, top leagues; provider: the trophy lists of team profiles, further back but missing teams we do not hold); conflicts lists a team another source names for the same place: report it, do not pick silently; cite the attribution"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "league code (or number) from find_leagues (not for tennis)"
},
"attendance": {
"type": "boolean",
"description": "soccer: the league season's home attendance instead of the table: league average and record, per team average, record and rank; matches_with_attendance of matches_played says how complete (often low: the feed lacks attendance for many matches, so say the average stands on that many matches; season: a past season)"
},
"team_stats": {
"type": "string",
"description": "soccer: ppg, goals_for, goals_against (best defence), clean_sheets, failed_to_score, xg_for, xg_against or attendance for every team's season statistics (home/away records, xG, attendance, ranks per metric) sorted by it, instead of the table (matches_with_xg and matches_with_attendance say how complete xG and attendance are; season: a past season)"
},
"suspensions": {
"type": "boolean",
"description": "soccer: the league's suspension watch instead of the table: players banned now (status suspended, matches_left) and one booking away from a ban (next_threshold, next_ban), from the league's official card rules (Premier League, EFL, Bundesliga, 2. Bundesliga, LaLiga, Segunda, Serie A, Serie B; rules.source) and our cards; rules_known and matches_with_stats of matches_played on every row; leagues without known rules list cards so far only"
},
"top_scorers": {
"type": "string",
"description": "soccer: goals, assists or cards for the league's top scorers, most assists or most cards instead of the table"
},
"player_stats": {
"type": "string",
"description": "soccer: goals, assists, minutes, rating, xg or apps for every player's season statistics in the league sorted by it, instead of the table (computed from our matches; matches_with_stats of team_matches_played says how complete a row is; season: a past season); NBA, MLB, NFL: a stat name such as points_per_game, home_runs, earned_run_average or passing.yards (category.stat) for the players' season lines from the data provider's team feeds (season null for the NBA: before a new season the feed still holds the last one; as_of says when it was read)"
}
},
"additionalProperties": false
}| soccer: also return coach: the head coach with appointment date, record since, previous coach and previous club |
| facts | boolean | soccer: also return facts: current runs, runs its last match ended, first since, record, table, next match stakes, player milestones (needs the insights feature) |
| sport* | string | sport (see list_sports; not tennis) |
| squad | boolean | also return the squad (players) |
| honours | boolean | soccer: also return honours: titles and runners-up per competition, each with its source (provider: the profile's trophy list, every competition, can lag the latest season; wikipedia: league tables of the last 10 seasons) and disagreements, seasons the sources tell apart: report both, never pick one silently |
| team_id* | integer | string | team code (or number) from find_teams or a match |
| injuries | boolean | return the team's injury report instead (MLB, NBA, WNBA, NHL, NFL); soccer: added as injuries (players out for its coming matches with type, expected_return, matches_missed); needs the injuries feature |
| transfers | boolean | soccer: also return the team's latest 20 transfers in and out (more: get_transfers) |
| season_stats | boolean | return the team's current season statistics instead (MLB, NBA, WNBA, NHL, NFL); soccer: added as season_stats (per league, computed from our matches) |
{
"type": "object",
"required": [
"sport",
"team_id"
],
"properties": {
"lang": {
"type": "string",
"description": "language of team, league and country names: de, es, it or fr (default English)"
},
"coach": {
"type": "boolean",
"description": "soccer: also return coach: the head coach with appointment date, record since, previous coach and previous club"
},
"facts": {
"type": "boolean",
"description": "soccer: also return facts: current runs, runs its last match ended, first since, record, table, next match stakes, player milestones (needs the insights feature)"
},
"sport": {
"type": "string",
"description": "sport (see list_sports; not tennis)"
},
"squad": {
"type": "boolean",
"description": "also return the squad (players)"
},
"honours": {
"type": "boolean",
"description": "soccer: also return honours: titles and runners-up per competition, each with its source (provider: the profile's trophy list, every competition, can lag the latest season; wikipedia: league tables of the last 10 seasons) and disagreements, seasons the sources tell apart: report both, never pick one silently"
},
"team_id": {
"type": [
"integer",
"string"
],
"description": "team code (or number) from find_teams or a match"
},
"injuries": {
"type": "boolean",
"description": "return the team's injury report instead (MLB, NBA, WNBA, NHL, NFL); soccer: added as injuries (players out for its coming matches with type, expected_return, matches_missed); needs the injuries feature"
},
"transfers": {
"type": "boolean",
"description": "soccer: also return the team's latest 20 transfers in and out (more: get_transfers)"
},
"season_stats": {
"type": "boolean",
"description": "return the team's current season statistics instead (MLB, NBA, WNBA, NHL, NFL); soccer: added as season_stats (per league, computed from our matches)"
}
},
"additionalProperties": false
}| league_id | integer | string | moves in or out of this league's current teams |
{
"type": "object",
"properties": {
"sort": {
"type": "string",
"description": "date (default, latest first) or fee (highest first)"
},
"limit": {
"type": "integer",
"description": "maximum results (default 20, max 100)"
},
"season": {
"type": "string",
"description": "2026-27 (1 June to 31 May) or 2026 (calendar year)"
},
"window": {
"type": "string",
"description": "summer (1 June-5 September), winter (1 January-3 February) or other"
},
"planned": {
"type": "boolean",
"description": "true: only agreed moves dated after today (mostly loan ends); default: moves up to today"
},
"team_id": {
"type": [
"integer",
"string"
],
"description": "moves of this team"
},
"direction": {
"type": "string",
"description": "with team_id: in or out (default both)"
},
"league_id": {
"type": [
"integer",
"string"
],
"description": "moves in or out of this league's current teams"
}
},
"additionalProperties": false
}