Privacy Policy
Last updated: August 14, 2026.
Who runs this site
Story of My League is an independent, non-commercial fan project built and run by one person. It isn't a company, and it doesn't sell anything, run ads, or charge for anything.
What we collect
- The Sleeper League ID you enter is sent to Sleeper's public API to fetch your league's data. It isn't stored in a database — aside from a short-lived in-memory cache used to speed up repeat views, it's discarded after your request.
- Standard analytics via Google Tag Manager / Google Analytics (page views and feature usage, like when a stat card is shared) — aggregate usage data, not tied to your name or email.
- A short-lived, signed cookie set after you pass a Cloudflare Turnstile bot check, so you don't have to re-verify on every request.
- Your language and light/dark theme preference, saved locally in your browser (localStorage) — never sent to our server.
Third-party services this site uses
- Sleeper — the source of all league, roster, and player data on this site.
- ESPN — used to enrich a couple of stat narratives with real game stat lines.
- FantasyCalc — used for dynasty trade values.
- Anthropic (Claude) — powers the optional AI features (trade analysis, roasts, trade suggestions). Using one of these sends the specific roster/trade data being analyzed to Anthropic's API to generate that response.
- Google Tag Manager / Google Analytics — site analytics.
- Cloudflare Turnstile — bot/spam protection on the League ID form.
Your choices
Browser privacy controls (blocking third-party cookies, ad blockers, "do not track" extensions) are fine to use — the site's core features (standings, GOAT, H2H, narratives) work the same either way. The AI features need to send the roster/trade data being analyzed to work, since that's what generates the response.
Contact
Questions about this policy? Reach out: