Skip to content

Commit 111f242

Browse files
committed
update documentation
1 parent 5e3a724 commit 111f242

File tree

2 files changed

+451
-55
lines changed

2 files changed

+451
-55
lines changed

README.md

Lines changed: 236 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
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:
1214
composer 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
1824
use 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

Comments
 (0)