Skip to content
API reference / Soccer
GET/soccer/matches

List soccer matches

Returns a paginated list of soccer matches with optional filtering

In the plans that cover this sportPay per call without a key: $0.002 in USDC

Parameters

  • limitinteger · query

    Maximum results (1-100)

    Default: 50
  • offsetinteger · query

    Results to skip

    Default: 0
  • datestring · query

    Filter by date (YYYY-MM-DD)

  • date_fromstring · query

    Matches on or after this date (YYYY-MM-DD)

  • date_tostring · query

    Matches on or before this date (YYYY-MM-DD)

  • statusstring · query

    Filter by status (FT, 1H, HT, 2H, NS, Unknown)

  • league_idinteger · query

    Filter by league ID

  • team_idinteger · query

    Only matches of this team (home or away, every competition)

  • orderstring · query

    desc for latest first (default: by start time ascending)

    One of: asc, desc
  • league_namestring · query

    Filter by exact league name: one division of a league the data provider files under one id (see divisions in /soccer/leagues)

Response

JSON with success, the result in data, and where the endpoint pages its results meta.

  • dataarray of object
  • added_timeobject

    commentaries feed (top leagues)

  • first_halfinteger
  • second_halfinteger
  • attendanceinteger

    commentaries feed (top leagues) or an official source

  • away_teamobject
  • idinteger
  • namestring
  • scoreinteger
  • eventsarray of object
  • extra_time_scorestring
  • fixture_idinteger

    season fixtures feed id

  • full_time_scorestring

    90 minutes

  • half_time_scorestring
  • highlightsstring

    Highlights video (YouTube) once posted, and the TV channels showing the match, by country (TheSportsDB). Every sport's match answers carry them (middleware.MatchMedia); listed here for the API docs.

  • home_teamobject
  • idinteger
  • namestring
  • scoreinteger
  • idinteger
  • league_gidinteger
  • league_idinteger
  • league_namestring
  • match_idinteger
  • penalty_scorestring

    shoot-out

  • refereestring

    commentaries feed (top leagues) or an official source

  • referee_statsobject

    RefereeStats: the referee's season in this league (match detail only; absent without a referee or computed statistics).

  • countrystring
  • first_match_datestring
  • gamesinteger
  • last_match_datestring
  • league_idinteger
  • league_matches_playedinteger
  • league_matches_with_refereeinteger
  • league_matches_with_statsinteger
  • league_namestring
  • namestring
  • penaltiesinteger
  • penalties_per_gamenumber
  • red_cardsinteger
  • red_per_gamenumber
  • seasonstring
  • second_yellowsinteger
  • slugstring
  • updated_atstring
  • yellow_cardsinteger
  • yellow_per_gamenumber
  • roundstring
  • seasonstring
  • sourcesobject

    Sources names the official source of fields it supplied (e.g. {"result": "dfb", "events": "dfb"}); absent when all data is the provider's.

  • sportstring
  • start_datestring
  • start_timestring
  • static_idinteger

    the data provider id shared by livescore and season feeds; the stable key

  • statusstring
  • timelinearray of object

    Timeline: the events normalised (kind goal, penalty, own_goal, missed_penalty, yellow, second_yellow, red, substitution, var), from the commentary summary (top leagues) or else the events above. Match detail only; absent when no event is known.

  • assistobject
  • detailstring

    Detail: a card's reason, "injury" for an injury substitution, a VAR review's outcome ("Goal cancelled").

  • extra_minuteinteger
  • kindstring
  • minuteinteger

    null: the feed gave no minute

  • on_field_decisionstring

    VAR: the referee's decision reviewed

  • playerobject
  • player_inobject
  • player_outobject
  • teamstring

    home or away

  • team_idinteger
  • tvarray of object
  • channelstring
  • countrystring

Errors

StatusCodeWhen
401UNAUTHORIZEDThe key is missing, mistyped or was rotated.
402x402 offersNo key and no valid payment: the body lists what to pay. Only a 200 answer is charged.
403FORBIDDENThe sport or feature is not in your plan (FEATURE_NOT_IN_PLAN for Insights and other plan features).
429RATE_LIMIT_EXCEEDEDToo many requests (QUOTA_EXCEEDED for the daily limit). Wait for Retry-After.
500INTERNAL_ERROROur side. Try again after a few seconds and check the status page.

All errors have the shape described in Errors and limits.

Generated from the OpenAPI file, version 1.0. See it as JSON

Was this page helpful?