Statisfy
Privacy & Terms
Statisfy is not affiliated with or endorsed by Spotify.
The short version
- I’m Arsham Mehrani. Statisfy is a personal project I built and run myself.
- There is no database. Your Spotify data is fetched while you look at it and thrown away.
- The only things kept between requests are your Spotify sign-in cookies and a server-side cache of your data that expires after 5 minutes.
- Your persona is arithmetic, not AI. It is recomputed each time and never stored.
- Disconnecting deletes your cookies and your cached data immediately — see Disconnecting and deletion.
- I don’t sell, share, or advertise against any of it.
What Statisfy reads from Spotify
When you press “Sign in with Spotify”, Spotify — not Statisfy — asks you to approve a specific list of permissions. Statisfy never sees your Spotify password. The permissions requested are:
user-read-private— your display name, profile picture, country, follower count, and whether the account is Premium or free.user-follow-read— how many artists you follow.user-top-read— your top artists and top tracks over the time ranges Spotify provides.user-read-recently-played— your recent listening history, used for the replay timeline.user-library-read— the number of tracks in your library (the count only).playlist-read-private— your playlists: names, cover art, and track counts.
Statisfy is read-only. It cannot play, pause, follow, unfollow, create, or change anything in your Spotify account, and it never asks for permissions that would let it.
Where that data goes
Nowhere durable. Statisfy has no database, no data warehouse, no log of your listening, and no export of it anywhere. Concretely, three things exist:
1. Cookies in your browser
After you approve the Spotify sign-in, my server exchanges the one-time code for tokens and stores them as httpOnly cookies — meaning JavaScript on the page (mine or anyone else’s) cannot read them. They are also SameSite=Lax, and Secure in production.
spotify_access_token— expires in about an hour (Spotify decides).spotify_refresh_token— expires after 30 days, so you aren’t re-authorising constantly.spotify_oauth_stateandspotify_oauth_verifier— single-use anti-forgery values for the sign-in handshake, deleted the moment the handshake completes (10 minutes maximum).spotify_force_dialog— a 10-minute flag set when you disconnect, so the next sign-in shows Spotify’s account picker instead of silently reconnecting you.
2. A short-lived cache on my server
To avoid hammering Spotify’s API on every scroll, the responses Statisfy fetches for you (profile, top artists, top tracks, recently played, playlists, persona metrics) are held in a server-side cache for 5 minutes, then discarded. Each entry is keyed by a SHA-256 hash of your access token, never by your name, email, or Spotify user id — so one person’s cached data can never be served to another. The cache lives in the running web process; it is not written to a database and does not survive a server restart.
The rotating artist spotlight on the Statisfy landing page is built from a public Spotify playlist using my own app credentials, cached 15 minutes. It contains no user data and is the same for every visitor, signed in or not.
3. Your screen
Everything else exists only in the page you’re looking at, and disappears when you close the tab. Album and artist artwork is loaded straight from Spotify’s image servers and shown uncropped, unedited, and with the metadata Spotify supplies.
About the persona
The persona (Curator, Explorer, Nostalgic, Minimalist, Hoarder) is plain arithmetic. Five numbers — how many playlists you own, their average length, how many tracks you’ve saved, how often you repeat a track recently, and how varied your recent plays are — are each scaled to a 0–1 value, combined with fixed weights, and the highest score picks the label. The same inputs always produce the same persona.
There is no AI or machine-learning model anywhere in Statisfy. Your listening data is never sent to a language model, never used to train anything, and never leaves my server for a third party. The persona is computed at the moment you request it, lives in the same 5-minute cache as everything else, and is never written to permanent storage. It is a visualisation for you to look at — not a profile I keep, and never used for advertising, targeting, or any kind of ranking of you.
Analytics on this site
Every page on spectrecreation.com, Statisfy included, loads Google Analytics 4. It records the usual anonymous web measurements — which pages were viewed, rough location from IP, device and browser, referrer — plus a few events I fire myself, such as “someone pressed sign in” or “someone opened the demo”. Those carry the name of the action and nothing else, with one exception I want to be straight about: opening a song card or following it through to Spotify also sends that track’s public Spotify ID, so I can see which cards people actually use.
Nothing that identifies you or describes your listening goes to Google. Not your name, avatar, country, or Spotify user id; not your top artists or tracks; not your listening history; not your persona. Google’s own cookies are subject to Google’s privacy policy; browser-level tracker blocking or Do Not Track prevents it loading, and Statisfy works fine without it.
Disconnecting and deletion
Every signed-in screen has a “Disconnect Spotify & delete my data” button — at the bottom of the dashboard, with a shorter “Disconnect Spotify” control next to your name at the top. Pressing it does three things at once:
- expires every Statisfy cookie in your browser, including both Spotify tokens;
- deletes your cached Spotify data on my server immediately;
- reloads the site from scratch, so nothing about you is left in the page either.
One honest caveat about timing: cached entries are found by the hash of your current access token. If Spotify handed out a fresh token during your session, a few entries written under the previous token may not be matched by name; those are already unreachable and expire on their own within 5 minutes. So the worst case is minutes, not days — comfortably inside the deletion window Spotify’s developer terms require of me.
Disconnecting removes Statisfy’s access from this browser. To revoke the authorisation at Spotify itself, go to Spotify › Account › Apps and remove Statisfy. I recommend doing both. There is no separate “delete my account” step, because there is no account: Statisfy never created one for you.
What I never do
- Sell, rent, or trade your data. There is no ad network here.
- Share your Spotify data with anyone. Nobody but me operates this server; the only third party involved at all is Google Analytics, and it receives exactly what the section above describes and nothing more.
- Train an AI model on it, or feed it to one.
- Build a long-term profile of you, or keep listening history after you close the tab.
- Write to your Spotify account — Statisfy only ever reads.
If I’m ever compelled by law to hand something over, there is genuinely almost nothing to hand over: no stored listening history, no accounts, no profiles.
Terms of use
Statisfy is a personal portfolio project, offered free and as-is. Please read these as plainly as they’re written:
- It’s not a product. There is no uptime guarantee, no support desk, and no warranty. I may change it, break it, or take it offline at any time. To the extent the law allows, I’m not liable for any loss arising from using it.
- Access is limited. Spotify only permits a small allowlist of testers on a project like this one, so signing in works only for approved accounts. Everyone else gets the demo, which runs on a fixed sample dataset — not anyone’s real listening.
- Spotify’s rules still apply. All music, artwork, names, and metadata shown here belong to Spotify and its rights holders and are displayed under Spotify’s developer terms. Your use of that content is also governed by Spotify’s Terms of Use. Don’t scrape, redistribute, or re-publish it from here.
- Don’t abuse it. No automated hammering, no probing, no attempts to reach other people’s data. The code is mine; the design and writing are mine.
- Not affiliated with Spotify. Statisfy is an independent project. Spotify has not reviewed, sponsored, or endorsed it, and the Spotify name and logo are Spotify AB’s trademarks, used here only to attribute where the data comes from.
Questions, or want something removed
Email me and I’ll answer personally. If you want confirmation that your data is gone, say so and I’ll check the running server myself — though in almost every case it expired on its own within minutes of your last visit.
If I change how any of this works, I’ll update this page and move the review date at the top. There is no mailing list to notify, because I don’t have your email address.