fpicosm/sportmonks

Laravel wrapper for using all Sportmonks APIs in a single project

1.0.0 2025-03-09 18:17 UTC

This package is auto-updated.

Last update: 2025-03-09 18:24:25 UTC


README

Installation

  1. Require the package via Composer:
composer require fpicosm/sportmonks
  1. Update your .env file adding the Sportmonks variables:
SPORTMONKS_TOKEN=# YOUR_API_TOKEN
SPORTMONKS_TIMEZONE=# Optional. UTC by default
SPORTMONKS_PER_PAGE=# Optional. 50 by default
  1. Publish the config file:
php artisan vendor:publish --provider="Sportmonks\SportmonksServiceProvider"

APIs 3.0

Basic Usage

The setInclude option

This option allows you to enrich your responses by including related resources in the request. You can pass an array of strings of a semicolon separated string.

Sportmonks::football()
    ->fixtures()
    ->setInclude('round', 'stage', 'group', 'lineups')
    ->all();
Sportmonks::football()
    ->fixtures()
    ->setInclude('round;stage;group;lineups')
    ->all();

You can also get nested relations using dot notation:

Sportmonks::football()
    ->fixtures()
    ->setInclude('lineups.player.nationality', 'round.stage')
    ->all();

The setSelect option

This allows you to reduce responses speed and size, filtering them by getting only the specified fields on the given entities, passing an array of strings or a comma separated string:

Sportmonks::football()
    ->leagues()
    ->setSelect('name', 'short_code')
    ->all();
Sportmonks::football()
    ->leagues()
    ->setSelect('name,short_code')
    ->all();

This request will produce the following response. Note that fields with relations are always added, like id, sport_id, country_id...

{
    "data": [
        {
            "name": "Premier League",
            "short_code": "UK PL",
            "id": 8,
            "sport_id": 1,
            "country_id": 462
        }
    ]
}

In case you want to select specific fields within relations, you should use the relation:field,other_field notation:

Sportmonks::football()
    ->leagues()
    ->setSelect('name', 'short_code')
    ->setInclude('seasons:name,starting_at,ending_at')
    ->all();

The setFilters option

This allows you to filters the results. There are two types of filters (please, check out documentation or the Static filters and Dynamic filters tabs in the request pages for more information).

Static filters
Sportmonks::football()
    ->fixtures()
    ->setFilters(['todayDate', 'idAfter' => 500])  
    ->all(); 
Dynamic filters
Sportmonks::football()
    ->fixtures()
    ->setSelect('name', 'state')
    ->setFilters(['todayDate', 'fixtureStates' => [1, 2]])  
    ->all(); 

The sortBy option

This allows you to sort the results by the given field, and the given order:

Sportmonks::football()->leagues()->sortBy('name')->all(); // order is 'asc' by default
Sportmonks::football()->leagues()->sortBy('name', 'desc')->all();

The setPage option

This allows you to get the given page and optionally the number of rows (50 by default), and ordering results by the given field (id by default):

// gets the second page
Sportmonks::football()->players()->setPage(2)->all();
// gets the second page, and returns 20 items
Sportmonks::football()->players()->setPage(2, 20)->all(); 
// gets the second page, and returns 20 items, ordering results by the 'name' field
Sportmonks::football()->players()->setPage(2, 20, 'name')->all(); 

Core Api

Cities

// get all cities
Sportmonks::core()->cities()->all();
// get city by id
Sportmonks::core()->cities()->find($cityId);
// search cities by name
Sportmonks::core()->cities()->search($name);

Continents

// get all continents
Sportmonks::core()->continents()->all();
// get continent by id
Sportmonks::core()->continents()->find($continentId);

Countries

// get all countries
Sportmonks::core()->countries()->all();
// get country by id
Sportmonks::core()->countries()->find($countryId);
// search countries by name
Sportmonks::core()->countries()->search($name);

Regions

// get all regions
Sportmonks::core()->regions()->all();
// get region by id
Sportmonks::core()->regions()->find($regionId);
// search regions by name
Sportmonks::core()->regions()->search($name);

Timezones

// get all timezones
Sportmonks::core()->timezones()->all();

Types

// get all types
Sportmonks::core()->types()->all();
// get type by id
Sportmonks::core()->types()->find($typeId);
// get types by entity
Sportmonks::core()->types()->byEntity();

Football Api

Coaches

// get all coaches
Sportmonks::football()->coaches()->all();
// get coach by id
Sportmonks::football()->coaches()->find($coachId);
// get coaches by country id
Sportmonks::football()->coaches()->byCountry($countryId);
// search coaches by name
Sportmonks::football()->coaches()->search($name);
// get last updated coaches
Sportmonks::football()->coaches()->latest();

Commentaries

// get all commentaries
Sportmonks::football()->commentaries()->all();
// get commentaries by fixture id
Sportmonks::football()->commentaries()->byFixture($fixtureId);

Expected (xG)

// get expected by team
Sportmonks::football()->expected()->byTeam();
// get expected by player
Sportmonks::football()->expected()->byPlayer();

Fixtures

// get all fixtures
Sportmonks::football()->fixtures()->all();
// get fixture by id
Sportmonks::football()->fixtures()->find($fixtureId);
// get fixtures by multiple ids
Sportmonks::football()->fixtures()->multiple($fixtureIds);
// get fixtures by date
Sportmonks::football()->fixtures()->byDate($date);
// get fixtures by date range
Sportmonks::football()->fixtures()->byDateRange($start, $end);
// get fixtures by date range for team
Sportmonks::football()->fixtures()->byDateRangeForTeam($start, $end, $teamId);
// get fixtures by head to head
Sportmonks::football()->fixtures()->h2h($firstTeamId, $secondTeamId);
// search fixtures by name
Sportmonks::football()->fixtures()->search($name);
// get upcoming fixtures by market id
Sportmonks::football()->fixtures()->upcomingByMarket($marketId);
// get upcoming fixtures by tv station id
Sportmonks::football()->fixtures()->upcomingByTvStation($tvStationId);
// get past fixtures by tv station id
Sportmonks::football()->fixtures()->pastByTvStation($tvStationId);
// get latest updated fixtures
Sportmonks::football()->fixtures()->latest();

Leagues

// get all leagues
Sportmonks::football()->leagues()->all();
// get league by id
Sportmonks::football()->leagues()->find($leagueId);
// get leagues by live
Sportmonks::football()->leagues()->live();
// get leagues by fixture date
Sportmonks::football()->leagues()->byFixtureDate($date);
// get leagues by country id
Sportmonks::football()->leagues()->byCountry($countryId);
// search leagues by name
Sportmonks::football()->leagues()->search($name);
// get all leagues by team id
Sportmonks::football()->leagues()->allByTeam($teamId);
// get current leagues by team id
Sportmonks::football()->leagues()->currentByTeam($teamId);

Livescores

// get all livescores
Sportmonks::football()->livescores()->all();
// get inplay livescores
Sportmonks::football()->livescores()->inplay();
// get latest updated livescores
Sportmonks::football()->livescores()->latest();

News

// get pre-match news
Sportmonks::football()->news()->preMatch()->all();
// get pre-match news by season id
Sportmonks::football()->news()->preMatch()->bySeason($seasonId);
// get pre-match news for upcoming fixtures
Sportmonks::football()->news()->preMatch()->forUpcomingFixtures();
// get post-match news
Sportmonks::football()->news()->postMatch()->all();
// get post-match news by season id
Sportmonks::football()->news()->postMatch()->bySeason($seasonId);

Odds pre-match (standard)

// get all pre-match odds
Sportmonks::football()->odds()->preMatch()->all();
// get pre-match odds by fixture id
Sportmonks::football()->odds()->preMatch()->byFixture($fixtureId);
// get pre-match odds by fixture id and bookmaker id
Sportmonks::football()->odds()->preMatch()->byFixtureAndBookmaker($fixtureId, $bookmakerId);
// get pre-match odds by fixture id and market id
Sportmonks::football()->odds()->preMatch()->byFixtureAndMarket($fixtureId, $marketId);
// get last updated pre-match odds
Sportmonks::football()->odds()->preMatch()->latest();

Odds pre-match (premium)

// get all premium pre-match odds
Sportmonks::football()->odds()->preMatch()->premium()->all();
// get premium pre-match odds by fixture id
Sportmonks::football()->odds()->preMatch()->premium()->byFixture($fixtureId);
// get premium pre-match odds by fixture id and bookmaker id
Sportmonks::football()->odds()->preMatch()->premium()->byFixtureAndBookmaker($fixtureId, $bookmakerId);
// get premium pre-match odds by fixture id and market id
Sportmonks::football()->odds()->preMatch()->premium()->byFixtureAndMarket($fixtureId, $marketId);
// get updated premium pre-match odds between time range
Sportmonks::football()->odds()->preMatch()->premium()->updatedBetweenTime($start, $end);
// get all historical premium pre-match odds
Sportmonks::football()->odds()->preMatch()->premium()->historical();
// get updated historical premium pre-match odds between time range
Sportmonks::football()->odds()->preMatch()->premium()->historicalUpdatedBetweenTime($start, $end);

Odds inplay

// get all inplay odds
Sportmonks::football()->odds()->inplay()->all();
// get inplay odds by fixture id
Sportmonks::football()->odds()->inplay()->byFixture($fixtureId);
// get inplay odds by fixture id and bookmaker id
Sportmonks::football()->odds()->inplay()->byFixtureAndBookmaker($fixtureId, $bookmakerId);
// get inplay odds by fixture id and market id
Sportmonks::football()->odds()->inplay()->byFixtureAndMarket($fixtureId, $marketId);
// get last updated inplay odds
Sportmonks::football()->odds()->inplay()->latest();

Players

// get all players
Sportmonks::football()->players()->all();
// get player by id
Sportmonks::football()->players()->find($playerId);
// get players by country id
Sportmonks::football()->players()->byCountry($countryId);
// search players by name
Sportmonks::football()->players()->search($name);
// get last updated players
Sportmonks::football()->players()->latest();

Predictions

// get probabilities
Sportmonks::football()->predictions()->probabilities();
// get predictability by league id
Sportmonks::football()->predictions()->byLeague($leagueId);
// get probabilities by fixture id
Sportmonks::football()->predictions()->byFixture($fixtureId);
// get value bets
Sportmonks::football()->predictions()->valueBets();
// get value bets by fixture id
Sportmonks::football()->predictions()->valueBetsByFixture($fixtureId);

Referees

// get all referees
Sportmonks::football()->referees()->all();
// get referee by id
Sportmonks::football()->referees()->find($refereeId);
// get referees by country id
Sportmonks::football()->referees()->byCountry($countryId);
// get referees by season id
Sportmonks::football()->referees()->bySeason($seasonId);
// search referees by name
Sportmonks::football()->referees()->search($name);

Rivals

// get all rivals
Sportmonks::football()->rivals()->all();
// get rivals by team id
Sportmonks::football()->rivals()->byTeam($teamId);

Rounds

// get all rounds
Sportmonks::football()->rounds()->all();
// get round by id
Sportmonks::football()->rounds()->find($roundId);
// get rounds by season id
Sportmonks::football()->rounds()->bySeason($seasonId);
// search rounds by name
Sportmonks::football()->rounds()->search($name);

Schedules

// get schedules by season id
Sportmonks::football()->schedules()->bySeason($seasonId);
// get schedules by team id
Sportmonks::football()->schedules()->byTeam($teamId);
// get schedules by season id and team id
Sportmonks::football()->schedules()->bySeasonAndTeam($seasonId, $teamId);

Seasons

// get all seasons
Sportmonks::football()->seasons()->all();
// get season by id
Sportmonks::football()->seasons()->find($seasonId);
// get seasons by team id
Sportmonks::football()->seasons()->byTeam($teamId);
// search seasons by name
Sportmonks::football()->seasons()->search($name);

Squads

// get current team squad by team id
Sportmonks::football()->squads()->currentByTeam($teamId); 
// get extended team squad by team id
Sportmonks::football()->squads()->extendedByTeam($teamId); 
// get team squad by team and season id
Sportmonks::football()->squads()->bySeasonAndTeam($seasonId, $teamId); 

Stages

// get all stages
Sportmonks::football()->stages()->all();
// get stage by id
Sportmonks::football()->stages()->find($stageId);
// get stages by season id
Sportmonks::football()->stages()->bySeason($seasonId);
// search stages by name
Sportmonks::football()->stages()->search($name);

Standings

// get all standings
Sportmonks::football()->standings()->all();
// get standings by season id
Sportmonks::football()->standings()->bySeason($seasonId);
// get standing correction by season id
Sportmonks::football()->standings()->correctionBySeason($seasonId);
// get standings by round id
Sportmonks::football()->standings()->byRound($roundId);
// get live standings by league id
Sportmonks::football()->standings()->liveByLeague($leagueId);

States

// get all states
Sportmonks::football()->states()->all();
// get state by id
Sportmonks::football()->states()->find($stateId);

Statistics

// get statistics by stage id
Sportmonks::football()->statistics()->byStage($stageId);
// get statistics by round id
Sportmonks::football()->statistics()->byRound($roundId);
// get statistics by player id
Sportmonks::football()->statistics()->byPlayer($playerId);
// get statistics by team id
Sportmonks::football()->statistics()->byTeam($teamId);
// get statistics by coach id
Sportmonks::football()->statistics()->byCoach($coachId);
// get statistics by referee id
Sportmonks::football()->statistics()->byReferee($refereeId);

Teams

// get all teams
Sportmonks::football()->teams()->all();
// get team by id
Sportmonks::football()->teams()->find($teamId);
// get teams by country id
Sportmonks::football()->teams()->byCountry($countryId);
// get teams by season id
Sportmonks::football()->teams()->bySeason($seasonId);
// search teams by name
Sportmonks::football()->teams()->search($name);

TopScorers

// get top-scorers by season id
Sportmonks::football()->topScorers()->bySeason($seasonId);
// get top-scorers by stage id
Sportmonks::football()->topScorers()->byStage($stageId);

Transfers

// get all transfers
Sportmonks::football()->transfers()->all();
// get transfer by id
Sportmonks::football()->transfers()->find($transferId);
// get latest transfers
Sportmonks::football()->transfers()->latest();
// get transfers between date range
Sportmonks::football()->transfers()->byDateRange($start, $end);
// get transfers by team id
Sportmonks::football()->transfers()->byTeam($teamId);
// get transfers by player id
Sportmonks::football()->transfers()->byPlayer($playerId);

TvStations

// get all tv-stations
Sportmonks::football()->tvStations()->all();
// get tv-station by id
Sportmonks::football()->tvStations()->find($venueId);
// get tv-stations by fixture id
Sportmonks::football()->tvStations()->byFixture($fixtureId);

Venues

// get all venues
Sportmonks::football()->venues()->all();
// get venue by id
Sportmonks::football()->venues()->find($venueId);
// get venues by season id
Sportmonks::football()->venues()->bySeason($seasonId);
// search venues by name
Sportmonks::football()->venues()->search($name);

Odds Api

Bookmakers

// get all bookmakers
Sportmonks::odds()->bookmakers()->all();
// get all premium bookmakers
Sportmonks::odds()->bookmakers()->premium();
// get bookmaker by id
Sportmonks::odds()->bookmakers()->find($bookmakerId);
// search bookmakers by name
Sportmonks::odds()->bookmakers()->search($name);
// get bookmakers by fixture id
Sportmonks::odds()->bookmakers()->byFixture($bookmakerId);
// get bookmaker event id's by fixture id
Sportmonks::odds()->bookmakers()->eventsByFixture($fixtureId);

Markets

// get all markets
Sportmonks::odds()->markets()->all();
// get all premium markets
Sportmonks::odds()->markets()->premium();
// get market by id
Sportmonks::odds()->markets()->find($marketId);
// search markets by name
Sportmonks::odds()->markets()->search($name);

My Api

// get all filters by entity
Sportmonks::my()->filters();
// get my enrichments
Sportmonks::my()->enrichments();
// get my resources
Sportmonks::my()->resources();
// get my leagues
Sportmonks::my()->leagues();
// get my usage
Sportmonks::my()->usage();

Cricket Api

Basic Usage

The setFields option

With this option, you can get only fields you are interested in, passing an array of strings, or a comma separated string.

// returns only `id` and `name` fields
Sportmonks::cricket()->continents()->setFields('id', 'name')->all();
Sportmonks::cricket()->continents()->setFields('id,name')->all();

The setFilters option

With this option, you can filter results by the given fields passing a key-value array:

Sportmonks::cricket()->countries()->setFilters(['name' => 'Spain'])->all();
Sportmonks::cricket()->countries()->setFilters([
    'name' => 'Spain',
    'continent_id' => 1,
])->all();

The setInclude option

With this option, you can enrich your requests including the given relations, passing an array of strings, or a comma separated string.

Sportmonks::cricket()->leagues()->setInclude('seasons', 'country')->all();
Sportmonks::cricket()->leagues()->setInclude('seasons,country')->all();

The sortBy option

This option allows to sort the response results by the given values, passing an array of string, or a comma separated string.

Sportmonks::cricket()->seasons()->sortBy('name')->all();
Sportmonks::cricket()->seasons()->sortBy('league_id', 'name')->all();
Sportmonks::cricket()->seasons()->sortBy('league_id,name')->all();

Endpoints

Continents

// get all continents
Sportmonks::cricket()->continents()->all();
// get continent by id
Sportmonks::cricket()->continents()->find($continentId);

Countries

// get all countries
Sportmonks::cricket()->countries()->all();
// get country by id
Sportmonks::cricket()->countries()->find($countryId);

Fixtures

// get all fixtures
Sportmonks::cricket()->fixtures()->all();
// get fixture by id
Sportmonks::cricket()->fixtures()->find($fixtureId);

Leagues

// get all leagues
Sportmonks::cricket()->leagues()->all();
// get league by id
Sportmonks::cricket()->leagues()->find($leagueId);

Livescores

// get all livescores
Sportmonks::cricket()->livescores()->all();

Officials

// get all officials
Sportmonks::cricket()->officials()->all();
// get official by id
Sportmonks::cricket()->officials()->find($officialId);

Players

// get all players
Sportmonks::cricket()->players()->all();
// get player by id
Sportmonks::cricket()->players()->find($leagueId);

Positions

// get all positions
Sportmonks::cricket()->positions()->all();
// get position by id
Sportmonks::cricket()->positions()->find($positionId);

Scores

// get all scores
Sportmonks::cricket()->scores()->all();
// get score by id
Sportmonks::cricket()->scores()->find($scoreId);

Seasons

// get all seasons
Sportmonks::cricket()->seasons()->all();
// get season by id
Sportmonks::cricket()->seasons()->find($seasonId);

Squads

// get squad by team and season id
Sportmonks::cricket()->squads()->byTeamAndSeason($teamId, $seasonId);

Stages

// get all stages
Sportmonks::cricket()->stages()->all();
// get stage by id
Sportmonks::cricket()->stages()->find($stageId);

Standings

// get standings by season id
Sportmonks::cricket()->standings()->bySeason($seasonId);
// get standings by stage id
Sportmonks::cricket()->standings()->byStage($stageId);

TeamRankings

// get global team seasons
Sportmonks::cricket()->teamRankings()->global();

Teams

// get all teams
Sportmonks::cricket()->teams()->all();
// get team by id
Sportmonks::cricket()->teams()->find($teamId);

Venues

// get all venues
Sportmonks::cricket()->venues()->all();
// get venue by id
Sportmonks::cricket()->venues()->find($venueId);

FormulaOne Api

Basic Usage

TODO: filters, include, sort

Endpoints

Drivers

// get driver by id
Sportmonks::f1()->drivers()->find($driverId);
// get drivers by season id
Sportmonks::f1()->drivers()->bySeason($seasonId);
// get season race results
Sportmonks::f1()->drivers()->seasonResults($driverId, $seasonId);

Livescores

// get livescores
Sportmonks::f1()->livescores()->all();

Seasons

// get seasons
Sportmonks::f1()->seasons()->all();
// get season by id
Sportmonks::f1()->seasons()->find($seasonId);

Stages

// get stages
Sportmonks::f1()->stages()->all();
// get stage by id
Sportmonks::f1()->stages()->find($stageId);
// get stage by season id
Sportmonks::f1()->stages()->bySeason($seasonId);

Teams

// get team by id
Sportmonks::f1()->teams()->find($teamId);
// get teams by season id
Sportmonks::f1()->teams()->bySeason($seasonId);
// get season race results
Sportmonks::f1()->teams()->seasonResults($teamId, $seasonId);

Tracks

// get all tracks
Sportmonks::f1()->tracks()->all();
// get track by id
Sportmonks::f1()->tracks()->find($trackId);
// get tracks by season id
Sportmonks::f1()->tracks()->bySeason($seasonId);

Winners

// get track winners by season id
Sportmonks::f1()->winners()->bySeason();