Privacy Policy
Last updated 3 October 2026
haveseen (“we”, “us”) is a tracker for the shows, anime and films you watch, available at haveseen.tv. haveseen is run by a sole trader based in the United Kingdom, trading as haveseen, who is the data controller for the information described here. haveseen is registered with the UK Information Commissioner’s Office (registration number ZC262670). You can reach us at any time through the contact form or at support@haveseen.tv. This policy explains what information we handle, why, and the choices you have. If you have a question, send us a message.
The short version
- Without an account, your list stays in your own browser. We never receive it.
- If you set up a profile, your list and activity are public by default — you can make your profile private (friends and approved followers only) at any time.
- With an account, we store your email, your list and your settings so they sync across your devices.
- We don’t sell your data or use it for advertising.
- Analytics only run if you click “Accept” on the cookie banner.
- You can export your data or delete your account at any time from inside the app.
What we collect
| Information | When | Why |
|---|---|---|
| Email address and a password (stored only as a secure hash) | You create an account with email | To sign you in, confirm your email and let you reset your password |
| Name, email and profile photo from Google | You choose “Continue with Google” | To sign you in and show your name and photo in the app |
| Your library: titles, watch status, ratings, episode progress, dates, where you watched, notes | You log titles while signed in | To save your list and sync it between your devices |
| Settings, such as your where-to-watch country, the streaming services you pick on Discover, an optional TMDB API key and which services you’ve imported from | You change them while signed in | To remember your preferences |
| Technical data such as IP address, browser type and request logs | Every visit | Handled by our hosting provider to deliver the site and protect it from abuse |
| Your profile: username, display name, bio, profile photo (if you upload one — it’s cropped and resized on your device first, which removes hidden details like location), badges, and a read-only copy of your list (titles, statuses, ratings, progress) plus your activity (what you watched, when) | You set up a profile on the Friends page | So friends can find you and see what you watch. Profiles are public by default; switch to a private profile to show your list and activity to accepted friends and approved followers only. Your notes and exact watch times are never shown. Until you set up a profile, your list isn’t visible to anyone |
| Lists you make: their names, emoji, descriptions and the titles in them | You create a list | To save your lists and sync them between your devices. A list you choose to share can be seen by anyone with its link and appears on your profile. Lists are private until you share them |
| Friends: who you’ve sent requests to and who you’re friends with | You add or accept a friend | To run friend requests and your activity feed. Only you and the other person can see a request |
| Followers: who you follow, who follows you, and follow requests | You follow someone, or someone follows you | To show the activity of people you follow in your feed, and to let approved followers see a private profile. Anyone can see how many followers you have and how many people you follow. Who they are can be seen by anyone who can see your profile. Only you and the other person can see a request. You can unfollow, or remove a follower, at any time |
| Display name and comments, including any GIF, picture or meme you attach (pictures are resized on your device first, which removes hidden details like location) | You join a discussion | To show your comments to other people. Your display name and comments are public to everyone using haveseen. You can delete your comments at any time |
| Comment notifications: who replied to or upvoted your comment, which comment, when, and whether you’ve read it | Someone replies to or upvotes your comment | To let you know in the app, and with an alert on devices where you’ve turned alerts on. Only you can see your notifications. They’re deleted after 90 days |
| Private messages: what you write, who it’s to, when it was sent, and when each of you last read the chat | You message someone, or someone messages you | To deliver your messages and show them to the two of you. Only you and the person you’re chatting with can read them. We don’t read private messages, except a message someone reports to us, which our moderators see on its own (never the rest of the conversation). Messages are encrypted in transit and stored by our database provider; they are not end-to-end encrypted. Unsending a message deletes it for both of you; “Delete chat” removes the history for you only. You choose who can message you in Edit profile |
| Trakt connection: the sign-in tokens Trakt gives us when you connect your Trakt account, and your Trakt username | You choose Connect Trakt on the Upload page | To mark what you watch on haveseen on Trakt too (episodes and films you tick off, your ratings and your watchlist). The tokens are stored on our server and never shown to anyone, including you. Disconnect at any time to delete them; nothing already on Trakt is removed. What we send is then handled under Trakt’s privacy policy |
| Blocks: who you’ve blocked | You block someone | To stop them messaging or following you. They aren’t told, and only you can see who you’ve blocked |
| Reactions: episode and film ratings, mood tags and favourite-character votes | You react after watching | To show community results. Other people only ever see totals, never who voted for what |
| Reports you make about comments, profiles or messages, and the reported message itself | You report a comment, a profile or a message | To review content that may break our community guidelines |
| Contact messages: your name (optional), email address, topic and message, plus the IP address it was sent from | You use the contact form | To reply to you and handle your request. The IP address is kept only to deal with abuse. Messages are delivered to our support inbox by email and kept only as long as needed to help you |
| Feedback: your feature idea or bug report, your email address if you choose to give it, your profile username if you have one, and for bug reports (unless you untick it) basic technical details: the page you were on, your browser and operating system, screen size and whether you were signed in | You use Feedback in the app | To fix bugs and decide what to build next. Delivered to our support inbox by email and kept only as long as it’s useful |
| Push alerts: for each device where you turn on new-episode alerts, the address and encryption keys your browser gives us for sending them, and a record of which episodes you’ve been alerted about (kept for about a week) | You switch on “Alert me on this device” | To tell you when a new episode of something you’re watching is out, or when someone replies to you or sends you a message. Turn alerts off, or sign out, and that device’s details are deleted |
| Usage analytics: pages viewed, actions such as “logged a title” or “signed up”, and error reports if something breaks (the error message and where in the app it happened). No titles, emails or notes | Only if you accept analytics cookies | To understand how haveseen is used and improve it |
Watch-history imports
When you import a file or paste your history from a streaming service, it is read entirely inside your browser. Only the titles you choose to add are saved. The original file is never uploaded to us.
Legal bases (UK GDPR / EU GDPR)
- Contract: to provide your account and sync your library.
- Legitimate interests: to keep the service secure and working.
- Consent: for analytics cookies. You can withdraw it at any time via “Cookie settings” at the bottom of the app.
Who else handles your data
We use a small number of providers to run haveseen. They process data on our behalf and only for these purposes:
- Supabase: account sign-in and database (your email, library and settings).
- Cloudflare: website hosting, content delivery and security.
- Your browser’s push service (Google, Apple, Mozilla or Microsoft, depending on your device): delivers new-episode alerts, if you turn them on. Alerts are encrypted so only your device can read them.
- Resend: delivers emails, such as sign-up confirmations, password resets, and contact form and feedback messages to our support inbox.
- Google: sign-in, only if you use “Continue with Google”; and Google Analytics, only if you accept analytics cookies.
Title search and artwork. When you search for or add a title, your browser contacts these services directly to fetch details and posters: TVmaze, AniList, Wikipedia and TMDB (which also supplies where-to-watch availability from JustWatch, for the country you pick or your browser’s region). They receive your IP address and what you searched for, under their own privacy policies. Cast photos for “who stole the scene” come from TVmaze and AniList in the same way, and if you search for a GIF in a discussion, your search goes to GIPHY. Trailers only load when you press play: the video then comes from YouTube in its privacy-enhanced mode (youtube-nocookie.com), under Google’s privacy policy. Cast, crew and people pages use TMDB.
Some providers are based in, or store data in, the United States. Where that happens, transfers are covered by appropriate safeguards such as the UK International Data Transfer Addendum or EU Standard Contractual Clauses.
Cookies and browser storage
- Essential storage: haveseen uses your browser’s local storage to keep your list, your sign-in session, your cookie choice, and a short-lived cache of recent episodes for notifications (plus whether you’ve turned on alerts on that device). The app can’t work without it, so it doesn’t need consent.
- Analytics cookies (
_ga,_ga_*): set by Google Analytics only after you click “Accept”. Declining, or changing your mind later, removes them.
How long we keep data
We keep your account and library until you delete your account. Deleting it removes your account, list and settings from our database immediately, along with your private conversations (for the other person too). Copies may remain in our providers’ encrypted backups for a limited time before they’re overwritten. Analytics data is kept in Google Analytics for up to 14 months.
Your rights
You can:
- Access and export your data: use Export backup on the Upload page.
- Correct it: edit any title directly in the app.
- Delete it: account menu → Delete my account.
- Withdraw consent for analytics: Cookie settings at the bottom of the app.
- Object to or ask us to restrict processing, or ask about anything here: contact us.
If you’re unhappy with how we handle your data, you can complain to the UK Information Commissioner’s Office (ico.org.uk) or your local data protection authority.
Children
haveseen isn’t intended for children under 13, and we don’t knowingly collect their data. If you believe a child has created an account, contact us and we’ll delete it.
Changes
If we make meaningful changes, we’ll update the date at the top and, where appropriate, let you know in the app.
haveseen