Sleeper leagues connect with nothing but your username. ESPN has no public API and no read-only tokens, so connecting an ESPN league means handing this site the same two browser cookies your own browser uses to read the league — espn_s2 and SWID. That takes about two minutes, once.

Before You Start

You need three things

  • An account here — ESPN credentials are stored against your account, so this only works signed in. Signing up is open: email, password, six-digit code.
  • Your two ESPN cookies — espn_s2 and SWID, copied out of a browser that's logged into ESPN. Step 2 below.
  • Your league IDs — you don't have to find these yourself. Save the cookies, click Find my leagues, and the site pulls the list from ESPN for you.

Step by Step

1

Sign in here, then open My Profile

Use the chip in the top-right of any page to sign in, then go to My Profile and scroll to ESPN Integration.

2

Copy your two cookies out of ESPN

In a browser where you're already logged into ESPN, open any fantasy football page — fantasy.espn.com/football/league?leagueId=… — and then:

  1. Press F12 (or ⌘⌥I on a Mac) to open DevTools.
  2. Go to the Application tab.
  3. In the left sidebar, expand Storage → Cookies and click https://fantasy.espn.com.
  4. Find the row named espn_s2. Double-click its Value cell, select all, copy.
  5. Do the same for the row named SWID.
  1. Press F12 to open DevTools.
  2. Go to the Storage tab.
  3. Expand Cookies and click https://fantasy.espn.com.
  4. Copy the values of espn_s2 and SWID.
  1. Enable the developer menu first: Safari → Settings → Advanced → Show features for web developers.
  2. Press ⌘⌥I to open the Web Inspector.
  3. Go to the Storage tab, then Cookies → fantasy.espn.com.
  4. Copy the values of espn_s2 and SWID.

What they should look like. espn_s2 is very long — 300+ characters of letters, numbers and % escapes. Copy the whole thing; a truncated value fails silently. SWID is a UUID including the curly braces: {1A2B3C4D-5E6F-…}. Braces are optional here — the server adds them if you leave them off — but paste them if your browser shows them.

3

Paste both into My Profile and save

Put them in the espn_s2 Cookie and SWID Cookie fields and hit Save. Leave League IDs empty for now.

After saving, both boxes clear themselves and the status line reads “ESPN credentials saved.” That's expected — espn_s2 is never sent back to your browser again, so there is nothing to redisplay.

4

Click “Find my leagues”

The button next to the League IDs field asks ESPN which football leagues your account can see this season, verifies each one against the real league endpoint, and lists them by name with their IDs. Check the ones you want and hit Add checked & save.

It doubles as a credential test: if it comes back with your leagues, your cookies are good. If it says ESPN rejected them, they're wrong or expired — redo step 2.

You can still type IDs by hand if you'd rather, or add a league the finder missed. The ID is the leagueId in any ESPN league URL: fantasy.espn.com/football/league?leagueId=330437.

5

Check that they showed up

Open League Summaries. Your ESPN leagues load a moment after the Sleeper ones and sit in the same list. If a league is there but your team isn't highlighted as yours, see troubleshooting below.

Open My Profile →

Do I Have To Enter League IDs?

No — that's what Find my leagues is for. ESPN publishes no official “list my leagues” endpoint, but the site's own Fan API knows every fantasy team your account follows, and that's what the button reads. Every league it finds is then verified against the real football endpoint before it's offered to you, so basketball and baseball entries, leagues from past seasons, and anything your cookies can't actually read all drop out on their own.

The saved list stays a list, on purpose. It's what tells the app which leagues to load, so you can leave a dead league out, and adding a new league mid-season is one more click of the same button rather than a re-setup.

What You Get

ToolESPN support
League SummariesFull — standings, records, simulated playoff odds off the real ESPN schedule
RostershipPlayers yes; draft picks no — ESPN doesn't expose future pick ownership
Lineup CheckerRead-only — it flags problems and builds the optimal lineup, but you set it in ESPN
Weekly Ranks GridFull
WaiversFull
League AnalyzerFull — at /analyzer?league=espn_330437
Trade AnalyzerFull, minus the Picks row (every ESPN team ties at zero)
Auction Draft TrackerFull, with live pick sync during the draft
In-Draft TrackerSnake and linear drafts; ESPN auctions belong on /auction
Root For MeFull
Open Trades, Trade Partners, Scout, Player Finder, Draft QueueSleeper only

Everything ESPN is read-only. Nothing here ever writes to your ESPN league — no lineup changes, no waiver claims, no trade offers. The one write-back feature in the whole app, “Apply lineup,” is Sleeper-only and is hidden on ESPN cards.

Where Your Cookies Live

  • espn_s2 is stored server-side and never sent back to any browser, including yours. The profile page can only ever tell you whether one is on file.
  • Requests to ESPN are made by the server, attaching your cookies. Your browser never talks to ESPN directly.
  • SWID is returned to you when you're signed in — it's just an account identifier, and the pages need it to work out which team in a league is yours.
  • They're worth guarding: together they are a logged-in ESPN session for your whole account, not just fantasy. Only paste them into sites you trust.
  • To revoke: log out of ESPN everywhere (or change your ESPN password) and the cookies stop working immediately. To remove them from here, delete your account under My Profile → Danger Zone, which wipes the stored credentials along with everything else.

When It Doesn't Work

What you seeWhat's usually wrong
“ESPN credentials not configured” Saved league IDs but not the cookies, or the save didn't take because only one of the two boxes was filled. Both must be pasted together.
“ESPN rejected these cookies” Expired or truncated. ESPN cookies die on logout, on a password change, and on their own after a while. Redo step 2 — and check you copied the entire espn_s2.
Find my leagues returns nothing Usually the season boundary: ESPN's football year rolls over around June, so a league that hasn't started its new season won't appear. Add the ID by hand in the meantime.
League loads, but no team is marked as mine The SWID doesn't match the account that owns the team — usually cookies copied from a different ESPN login, or a league where a co-manager (not you) is the primary owner. ESPN matches on primary owner only.
One league works, another 401s The one that fails is private and this ESPN account isn't in it. Public leagues need no cookies at all; private ones need an account that's actually a member.
Everything ESPN broke at once, mid-season You logged out of ESPN, or changed your ESPN password. Both invalidate espn_s2. Paste a fresh pair.

Known Limits

  • No draft picks. ESPN doesn't publish future pick ownership, so ESPN leagues have no pick rows in Rostership and no Picks row in the Trade Analyzer.
  • Generic PPR scoring in lineup projections. ESPN's scoring settings use a different shape from Sleeper's and aren't mapped, so projected-points figures on ESPN lineup cards assume standard PPR. Ranked players are ordered by your uploaded sheet, which needs no scoring at all — so ranks mode is unaffected.
  • Last-place odds are less precise. The Trade Analyzer's simulation uses your real ESPN schedule and real banked record, but there's no per-week realized-points feed wired up, so already-played weeks don't feed the last-place calculation the way they do for Sleeper.
  • One ESPN account. One credential pair per profile — leagues spread across two ESPN logins can't both be connected at once.

Open My Profile →