fpicosm / sportmonks
Laravel wrapper for using all Sportmonks APIs in a single project
Requires
- php: ^8.3
Requires (Dev)
- laravel/laravel: ^12.0
- phpunit/phpunit: ^12.0
README
Installation
- Require the package via Composer:
composer require fpicosm/sportmonks
- 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
- 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();