🔒

Privacy Policy

Effective date: April 26, 2026

We collect only what's needed. We never sell your data.

📋

Overview

This Privacy Policy explains what data Serializd Tracker Bot ("the Bot", "we", "our") collects when you add it to a Discord server or interact with its commands, how that data is used, how long it is kept, and what controls you have over it. We are committed to collecting only the minimum data necessary to operate the Bot's features.

📥

Data We Collect

All data is stored in a private SQLite database. Here is exactly what is stored and why:

Server (Guild) Configuration

  • Discord Guild ID and server name
  • Channel IDs you configure for diary posts, commands, changelogs, episode announcements, and recaps
  • Custom embed colour, timezone, and ping role preferences
  • 20+ diary and group diary display toggle settings
  • Anonymous mode toggle (whether your server name appears in global leaderboards)
  • Permission group assignments (admin / mod / user roles)

Purpose: To deliver diary posts and responses to the correct channels with your chosen settings.

Tracked Serializd Usernames

  • Serializd usernames added via /adduser, the guild ID they belong to, and when they were added
  • A Discord User ID linked to each tracked Serializd username

Purpose: To know which Serializd accounts to poll and where to post new diary entries.

Diary Entry Activity

  • IDs of diary entries that have already been posted, stored for 14 days to prevent duplicate posts
  • Aggregated statistics per entry (show name, show ID, username, guild ID, posted timestamp) stored for 90 days
  • Temporarily buffered group diary entry JSON for the group diary feature (held until the grouping window closes)
  • Full diary entry JSON temporarily stored for failed-post retries, automatically deleted after 7 days if the post cannot be delivered

Purpose: Deduplication, per-server statistics, group diary bundling, and reliable delivery via retry.

Watching List & Episode Tracking

  • Show IDs, names, TVMaze IDs, and poster URLs for shows on your server's current watching list (kept for 30 days after a show is removed)
  • Episode IDs and air dates for episodes that have already been announced, to prevent duplicate episode alerts (kept for 90 days)
  • Failed episode announcement data temporarily stored for retry, automatically deleted after 7 days

Purpose: Episode announcement feature.

Share Links (Voluntary)

  • Discord display name and User ID
  • Profile URLs voluntarily submitted by the user for any combination of: Serializd, Letterboxd, Backloggd, BookDigits, Instagram, X (Twitter), YouTube, TikTok, Twitch, Spotify, Goodreads, StoryGraph
  • The Discord message ID and channel ID of the posted share card
  • Submission timestamp

Purpose: Displays a community profile card in your server. This data is entirely optional and user-initiated.

User Preferences

  • A per-user timezone preference set via /timezone (defaults to Europe/Copenhagen)

Purpose: Displaying timestamps in your local time.

Settings Audit Log

  • A log of every admin setting change, including: guild ID, the Discord User ID and display name of who made the change, the setting name, old value, new value, and timestamp. Entries are automatically deleted after 90 days.

Purpose: Allows server admins to audit configuration changes via their configured audit log channel.

Patreon Supporters

  • Serializd usernames of Patreon supporters, along with the date they were added, displayed via the /patreon command as a thank-you list

Purpose: Acknowledging supporters publicly. Only added by the bot owner, and only the Serializd username is stored - no payment details or Discord IDs.

Command Usage Statistics

  • Guild ID, command name, Discord User ID, and timestamp for each command invocation

Purpose: Internal analytics to understand feature usage and improve the Bot. This data is not shared externally.

TVMaze Cache

  • TV show metadata from the TVMaze public API: show name, TVMaze ID, status (Running/Ended), poster image URL, runtime, premiere year

Purpose: Reduces redundant calls to the TVMaze API. Cached data is refreshed periodically. No personal data is involved.

🚫

What We Do NOT Collect

  • Message content or conversation history from your Discord server.
  • Passwords, authentication tokens, or any credentials.
  • Private Serializd account data - only publicly visible diary entries are accessed.
  • IP addresses or device information.
  • Payment or financial data of any kind.
  • Email addresses.
🔗

External Services We Contact

The Bot communicates with the following external services to function. All connections are over HTTPS.

Serializd.com API

The Bot polls the public Serializd API approximately every 5 minutes to check for new diary entries for each tracked username. It sends only the Serializd username and receives publicly available diary entry data (show title, episode, rating, tags, watch status). No authentication credentials are sent. The Bot retries failed requests with exponential backoff and respects rate limit (HTTP 429) responses.

TVMaze API

Show names and IDs are sent to the TVMaze public API to retrieve metadata such as episode air dates, poster images, and show status. No API key is required. Results are cached for up to 30 days to minimise repeated calls.

Discord API

All standard Discord bot communication is performed through Discord's official API in accordance with Discord's Privacy Policy.

Top.gg

The total number of servers the Bot is in is periodically reported to Top.gg to keep the Bot's public listing up to date. No user or server-specific data is sent - only a guild count.

Developer Monitoring

To keep the Bot running smoothly, the developer receives automated alerts for things like servers joining or leaving, API errors, and rate limit warnings. These include basic info such as server name and member count. This data is used only for operational health checks and is never shared with anyone.

🗂️

Data Retention

7

Days - Failed Post Retry Buffer

Diary entries and episode announcements that couldn't be delivered are held for up to 7 days while the bot retries, then automatically deleted.

14

Days - Seen Entries

Diary entry IDs used for duplicate detection are purged after 14 days.

30

Days - Watching List Data

Show data from your server's watching list is cleaned up 30 days after a show is removed from the list.

90

Days - Entry Statistics, Audit Logs, Aired Episode Records & TVMaze Cache

Aggregated per-entry stats, settings audit log entries, announced episode records, and TVMaze show metadata are all automatically deleted after 90 days of age (or inactivity, in the case of the TVMaze cache).

48h

Hours - After Bot Removal

All data associated with a server (tracked usernames, settings, stats, share links, watching lists, audit logs, etc.) is permanently and automatically deleted 48 hours after the Bot is removed from that server.

Indefinite - While Bot is Active

Guild configuration, role settings, share links, user preferences, and command usage statistics are kept for as long as the Bot remains in your server.

🛡️

Your Privacy Controls

The following built-in commands give you control over your data:

/privacy

Displays a summary of what data the Bot stores for your server, including tracked usernames and configuration.

/listusers

Lists all Serializd usernames currently being tracked in your server.

/removeuser

Removes a Serializd username from tracking. Associated seen-entry records are deleted immediately.

/clearallusers

Removes all tracked usernames from your server in one action.

/setanonymous

Toggles your server's participation in global statistics and leaderboards. When enabled, your server name is hidden from public-facing stats.

/clearsharelink

Permanently removes a user's share link card and all associated profile URL data from the database.

/timezone

Sets your personal timezone preference. You can remove this preference by contacting support.

To request complete deletion of all data for your server, simply remove the Bot - all data will be purged within 48 hours. For individual data deletion requests or any other privacy concern, contact us via our support server.

📊

Global Statistics & Leaderboards

The /stats command can display global leaderboards showing the top 20 most-active watchers, servers, and trending shows across all servers using the Bot. By default, server names are included in these rankings. You can opt your server out entirely using /setanonymous. Individual Serializd usernames that appear in leaderboards reflect publicly available activity data.

🔐

Security Practices

  • All external API requests use HTTPS with Brotli/gzip compression where available.
  • The database uses prepared statements to prevent SQL injection.
  • Database uses WAL (Write-Ahead Logging) mode with foreign key constraints and automatic rollbacks on errors.
  • Rate limiting is enforced per-user, per-channel, and globally to protect against abuse.
  • A circuit breaker system prevents cascading failures from API outages.
  • Sensitive configuration (tokens, webhook URLs) is stored as environment variables, never in the database.
📝

Changes to This Policy

We may update this Privacy Policy from time to time. When we do, we will update the effective date at the top of this page. We encourage you to review this page periodically. Continued use of the Bot after changes are posted constitutes your acceptance of the revised policy.

✉️

Contact & Data Requests

For privacy questions, data deletion requests, or any other concern, please reach out via our Discord support server:

Join Support Server →

Your privacy, your choice.

We collect only what's necessary. Add the bot and track your shows with confidence.