1- # An API wrapper for the fantasy Sleeper app
1+ # Laravel Sleeper API Wrapper
22
3- https://sleeper.com
3+ A comprehensive Laravel package for interacting with the [ Sleeper Fantasy Sports API ] ( https://sleeper.com ) . This package provides easy access to all Sleeper API endpoints including users, leagues, drafts, players, and more.
44
5- https://docs.sleeper.com/
5+ ** Official Sleeper Resources:**
6+ - [ Sleeper App] ( https://sleeper.com )
7+ - [ Sleeper API Documentation] ( https://docs.sleeper.com/ )
68
79## Installation
810
@@ -12,63 +14,242 @@ You can install the package via composer:
1214composer require hotsaucejake/laravel-sleeper
1315```
1416
15- ## Usage
17+ ## API Overview
18+
19+ The Sleeper API is read-only and requires no authentication. All methods return JSON objects/arrays containing the requested data. Rate limit: stay under 1000 calls per minute.
20+
21+ ## Complete Usage Guide
1622
1723``` php
1824use HOTSAUCEJAKE\LaravelSleeper\Facades\LaravelSleeper;
25+ ```
26+
27+ ---
28+
29+ ## 👤 User Endpoints
30+
31+ ### ` getUserByName(string $username) `
32+ Retrieves user information by username.
33+
34+ ``` php
35+ $user = LaravelSleeper::getUserByName('sleeperuser');
36+ // Returns: { "username": "sleeperuser", "user_id": "12345678", "display_name": "SleeperUser", "avatar": "..." }
37+ ```
38+
39+ ### ` getUserById(string $user_id) `
40+ Retrieves user information by user ID. Recommended over username since usernames can change.
41+
42+ ``` php
43+ $user = LaravelSleeper::getUserById('12345678');
44+ // Returns: Same format as getUserByName()
45+ ```
46+
47+ ---
48+
49+ ## 🖼️ Avatar Endpoints
50+
51+ ### ` showAvatar(string $avatar_id) `
52+ Returns the full-size avatar URL for a given avatar ID.
53+
54+ ``` php
55+ $avatarUrl = LaravelSleeper::showAvatar('cc12ec49965eb7856f84d71cf85306af');
56+ // Returns: "https://sleepercdn.com/avatars/cc12ec49965eb7856f84d71cf85306af"
57+ ```
58+
59+ ### ` showAvatarThumbnail(string $avatar_id) `
60+ Returns the thumbnail avatar URL for a given avatar ID.
61+
62+ ``` php
63+ $thumbnailUrl = LaravelSleeper::showAvatarThumbnail('cc12ec49965eb7856f84d71cf85306af');
64+ // Returns: "https://sleepercdn.com/avatars/thumbs/cc12ec49965eb7856f84d71cf85306af"
65+ ```
66+
67+ ---
68+
69+ ## 🏆 League Endpoints
70+
71+ ### ` getAllLeaguesForUser(string $user_id, int $season, string $sport = 'nfl') `
72+ Retrieves all leagues for a specific user in a given season.
73+
74+ ``` php
75+ $leagues = LaravelSleeper::getAllLeaguesForUser('12345678', 2024);
76+ // Returns: Array of league objects with settings, roster info, scoring settings, etc.
77+ ```
78+
79+ ### ` getLeague(string $league_id) `
80+ Retrieves detailed information about a specific league.
81+
82+ ``` php
83+ $league = LaravelSleeper::getLeague('289646328504385536');
84+ // Returns: Single league object with full configuration details
85+ ```
86+
87+ ### ` getLeagueRosters(string $league_id) `
88+ Retrieves all rosters in a league with current players, starters, and team records.
89+
90+ ``` php
91+ $rosters = LaravelSleeper::getLeagueRosters('289646328504385536');
92+ // Returns: Array of roster objects with starters[], players[], settings{wins, losses, points}, etc.
93+ ```
94+
95+ ### ` getLeagueUsers(string $league_id) `
96+ Retrieves all users/managers in a league with their team information.
97+
98+ ``` php
99+ $users = LaravelSleeper::getLeagueUsers('289646328504385536');
100+ // Returns: Array of user objects with metadata{team_name}, is_owner (commissioner status), etc.
101+ ```
102+
103+ ### ` getLeagueMatchups(string $league_id, int $week) `
104+ Retrieves all matchups for a specific week. Teams with the same ` matchup_id ` play each other.
105+
106+ ``` php
107+ $matchups = LaravelSleeper::getLeagueMatchups('289646328504385536', 1);
108+ // Returns: Array with starters[], players[], matchup_id, points, custom_points
109+ ```
110+
111+ ### ` getLeaguePlayoffWinnersBracket(string $league_id) `
112+ Retrieves the winners bracket for league playoffs.
113+
114+ ``` php
115+ $bracket = LaravelSleeper::getLeaguePlayoffWinnersBracket('289646328504385536');
116+ // Returns: Array of bracket rounds with team progressions and results
117+ ```
118+
119+ ### ` getLeaguePlayoffLosersBracket(string $league_id) `
120+ Retrieves the losers bracket for league playoffs (consolation bracket).
121+
122+ ``` php
123+ $bracket = LaravelSleeper::getLeaguePlayoffLosersBracket('289646328504385536');
124+ // Returns: Array of bracket rounds for consolation games
125+ ```
126+
127+ ### ` getLeagueTransactions(string $league_id, int $round) `
128+ Retrieves all transactions (trades, waivers, free agents) for a specific week/round.
129+
130+ ``` php
131+ $transactions = LaravelSleeper::getLeagueTransactions('289646328504385536', 1);
132+ // Returns: Array of transactions with type, adds{}, drops{}, draft_picks[], waiver_budget[]
133+ ```
134+
135+ ### ` getLeagueTradedPicks(string $league_id) `
136+ Retrieves all traded draft picks in a league, including future picks.
137+
138+ ``` php
139+ $tradedPicks = LaravelSleeper::getLeagueTradedPicks('289646328504385536');
140+ // Returns: Array with season, round, roster_id (original), owner_id (current)
141+ ```
142+
143+ ### ` getSportState(string $sport = 'nfl') `
144+ Retrieves current state information for the sport (current week, season, etc.).
145+
146+ ``` php
147+ $state = LaravelSleeper::getSportState('nfl');
148+ // Returns: { week, season_type, season, previous_season, league_season, display_week }
149+ ```
150+
151+ ---
152+
153+ ## 📋 Draft Endpoints
154+
155+ ### ` getDraftsForUser(string $user_id, int $season, string $sport = 'nfl') `
156+ Retrieves all drafts for a specific user in a given season.
157+
158+ ``` php
159+ $drafts = LaravelSleeper::getDraftsForUser('12345678', 2024);
160+ // Returns: Array of draft objects with type, status, settings, metadata
161+ ```
162+
163+ ### ` getLeagueDrafts(string $league_id) `
164+ Retrieves all drafts for a specific league (dynasty leagues may have multiple drafts).
165+
166+ ``` php
167+ $drafts = LaravelSleeper::getLeagueDrafts('289646328504385536');
168+ // Returns: Array of draft objects sorted by most recent
169+ ```
170+
171+ ### ` getSpecificDraft(string $draft_id) `
172+ Retrieves detailed information about a specific draft.
173+
174+ ``` php
175+ $draft = LaravelSleeper::getSpecificDraft('289646328508579840');
176+ // Returns: Draft object with draft_order{}, slot_to_roster_id{}, settings{}
177+ ```
178+
179+ ### ` getDraftPicks(string $draft_id) `
180+ Retrieves all picks made in a specific draft with player details.
181+
182+ ``` php
183+ $picks = LaravelSleeper::getDraftPicks('289646328508579840');
184+ // Returns: Array of picks with player_id, picked_by, roster_id, round, metadata{player info}
185+ ```
19186
20- /**
21- * ====================================
22- * User
23- * ====================================
24- */
25- LaravelSleeper::getUserByName('SLEEPER_USERNAME');
26- LaravelSleeper::getUserById('SLEEPER_USER_ID');
27-
28- /**
29- * ====================================
30- * Avatars
31- * ====================================
32- */
33- LaravelSleeper::showAvatar('SLEEPER_AVATAR_ID');
34- LaravelSleeper::showAvatarThumbnail('SLEEPER_AVATAR_ID');
35-
36- /**
37- * ====================================
38- * Leagues
39- * ====================================
40- */
41- LaravelSleeper::getAllLeaguesForUser('SLEEPER_USER_ID', 2022);
42- LaravelSleeper::getLeague('SLEEPER_LEAGUE_ID');
43- LaravelSleeper::getLeagueRosters('SLEEPER_LEAGUE_ID');
44- LaravelSleeper::getLeagueUsers('SLEEPER_LEAGUE_ID');
45- LaravelSleeper::getLeagueMatchups('SLEEPER_LEAGUE_ID', 1);
46- LaravelSleeper::getLeaguePlayoffWinnersBracket('SLEEPER_LEAGUE_ID');
47- LaravelSleeper::getLeaguePlayoffLosersBracket('SLEEPER_LEAGUE_ID');
48- LaravelSleeper::getLeagueTransactions('SLEEPER_LEAGUE_ID', 1);
49- LaravelSleeper::getLeagueTradedPicks('SLEEPER_LEAGUE_ID');
50- LaravelSleeper::getSportState();
51-
52- /**
53- * ====================================
54- * Drafts
55- * ====================================
56- */
57- LaravelSleeper::getDraftsForUser('SLEEPER_USER_ID', 2022);
58- LaravelSleeper::getLeagueDrafts('SLEEPER_LEAGUE_ID');
59- LaravelSleeper::getSpecificDraft('SLEEPER_DRAFT_ID');
60- LaravelSleeper::getDraftPicks('SLEEPER_DRAFT_ID');
61- LaravelSleeper::getDraftTradedPicks('SLEEPER_DRAFT_ID');
62-
63- /**
64- * ====================================
65- * Players
66- * ====================================
67- */
68- LaravelSleeper::getAllPlayers();
69- LaravelSleeper::getTrendingPlayers('add');
70- LaravelSleeper::getTrendingPlayers('drop');
187+ ### ` getDraftTradedPicks(string $draft_id) `
188+ Retrieves all traded picks within a specific draft.
71189
190+ ``` php
191+ $tradedPicks = LaravelSleeper::getDraftTradedPicks('289646328508579840');
192+ // Returns: Array similar to league traded picks but specific to this draft
193+ ```
194+
195+ ---
196+
197+ ## 🏈 Player Endpoints
198+
199+ ### ` getAllPlayers(string $sport = 'nfl') `
200+ Retrieves all players in the database. ** Important:** This is a large response (~ 5MB) - cache locally and call max once per day.
201+
202+ ``` php
203+ $players = LaravelSleeper::getAllPlayers('nfl');
204+ // Returns: Object with player_id as keys, player objects with name, position, team, stats, etc.
205+ ```
206+
207+ ### ` getTrendingPlayers(string $type = 'add', string $sport = 'nfl', int $lookback_hours = 24, int $limit = 25) `
208+ Retrieves trending players based on add/drop activity.
209+
210+ ``` php
211+ // Most added players in last 24 hours
212+ $trending = LaravelSleeper::getTrendingPlayers('add');
213+
214+ // Most dropped players in last 48 hours, limit 10
215+ $dropped = LaravelSleeper::getTrendingPlayers('drop', 'nfl', 48, 10);
216+
217+ // Returns: Array of { player_id, count } objects
218+ ```
219+
220+ ---
221+
222+ ## 💡 Usage Tips
223+
224+ ### Working with Player IDs
225+ Player IDs can be numeric strings (` "1042" ` ) or team abbreviations (` "CAR" ` for team defenses).
226+
227+ ``` php
228+ // Get all players to create a lookup map
229+ $players = LaravelSleeper::getAllPlayers();
230+ $playerName = $players['1042']['first_name'] . ' ' . $players['1042']['last_name'];
231+ $teamDefense = $players['CAR']['position']; // "DEF"
232+ ```
233+
234+ ### Finding Matchup Results
235+ Teams with the same ` matchup_id ` play against each other:
236+
237+ ``` php
238+ $matchups = LaravelSleeper::getLeagueMatchups('league_id', 1);
239+ foreach ($matchups as $team) {
240+ // Find opponent by matching matchup_id
241+ $opponent = collect($matchups)->where('matchup_id', $team['matchup_id'])
242+ ->where('roster_id', '!=', $team['roster_id'])
243+ ->first();
244+ }
245+ ```
246+
247+ ### Calculating Bench Players
248+ Bench players = All players - Starting players:
249+
250+ ``` php
251+ $roster = LaravelSleeper::getLeagueRosters('league_id')[0];
252+ $bench = array_diff($roster['players'], $roster['starters']);
72253```
73254
74255## Testing
0 commit comments