Find a manager
Live requestEnter an exact Sleeper username to read their imported career ranks. Usernames are case-insensitive; a leading @ is optional.
This request reads stored results. It does not start a search or import.
Bring career rankings into what you build.
Open access. Read-only. No API key required.
https://sleeper-rank.vercel.app/api/v1GETEnter an exact Sleeper username to read their imported career ranks. Usernames are case-insensitive; a leading @ is optional.
This request reads stored results. It does not start a search or import.
Run a request to see ranks, scores, records,
and the latest ranking timestamp.
curl 'https://sleeper-rank.vercel.app/api/v1/rankings/by-username/camfleety'ranks.redraft.rank and ranks.dynasty.rank contain the positions. Each pod has a status: ranked, unranked (null rank), or not_available (no imported rating). Unknown usernames return 404.
| Method / endpoint | Returns & parameters |
|---|---|
GET/rankings/by-username/{username} | Both career ranks, scores, records and ranking timestamp.Exact username, case-insensitive. Conflicting imported usernames return 409; use manager ID. |
GET/leagues/{id}/rank | A league’s strength rank within its format group and season.Returns rank, population, coverage, version, strength index and evidence status. A Sleeper league ID identifies one season; this is not a manager’s standing within a league. |
GET/overview | Discovered users, leagues and games.Includes ranking and sync timestamps. |
GET/rankings | Paginated career rankings.cohort=redraft|dynasty · confidence=all|establishedlimit=1..100 (default 50) · after cursor |
GET/managers | The discovered manager directory.q case-insensitive username prefix · limit=1..100 (default 50) · after cursor |
GET/managers/{id} | Manager identity and career ratings in each pod.An empty ratings array means results are not available yet. |
League ranks compare imported league-seasons within Redraft / Keeper or Dynasty for the same season. League strength uses participant ratings before each observed week. At least five covered leagues in a format/season group are required to publish a rank; each needs six observed weeks and 80% team coverage. Otherwise rank is null with status insufficient_evidence. Provisional league ranks are estimates with limited evidence; a known league without a computed rating returns not_available. Unknown league IDs return 404.
curl 'https://sleeper-rank.vercel.app/api/v1/rankings?cohort=dynasty&limit=20'
curl 'https://sleeper-rank.vercel.app/api/v1/managers?q=camfleety'
curl 'https://sleeper-rank.vercel.app/api/v1/managers/1015846922424725504'60 requests per IP per 60-second window, shared across endpoints and website API calls. Shared networks share the quota; counters persist across server instances. GET and HEAD consume quota; OPTIONS does not.
Responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds). On 429, wait the seconds specified by Retry-After. Avoid parallel bursts.
Pass nextCursor as after without modifying it, keeping the same filters. A null cursor ends the list. When rankings change, reset: true means restart without a cursor.
Ranking total counts the entire pod before confidence filtering. Request up to 100 rows per page.
Redraft includes Keeper; Dynasty stays separate. Discovered users are not necessarily evaluated careers. Records reflect imported data, with potentially incomplete lifetime history. Null means unavailable; unranked scores are capped at 30.
Sync timestamps report freshness. The importer must be running to publish updates. API reads never trigger Sleeper requests.