Controller: operator of this PutOut instance (self-hosted Discord bot).
Contact: via the Discord server host who runs the bot, or the project’s GitHub repo.
Practical notice for users — not legal advice. Source of truth in-repo: docs/PRIVACY.md.
For each Discord user who registers:
| Field | Why |
|---|---|
| Discord user id | Who to remind |
| Optional guild id | Household channel ping (if enabled) |
| Council id / name | Which schedule source |
| Notify preferences | DM vs channel |
| Last notified date | Avoid duplicate pings |
| Schedule window | Short cleartext list of upcoming {date, waste_type} (~28 days) for nightly notify |
| Property seal (optional) | Encrypted UPRN / postcode / ICS / label — when PROPERTY_SEAL_KEY is set |
Without sealing, we may also store cleartext UPRN, postcode, address label, and ICS URL (legacy / key-not-configured).
The Discord identity ↔ property link exists only in PutOut’s database (and Discord, when we DM you). We do not sell this data or use it for advertising.
| Beats | Does not beat |
|---|---|
Stolen putout.db / backup without the seal key |
Running bot + .env / seal key |
| Cleartext home address sitting in SQLite | The Discord snowflake ↔ reminder link inside PutOut (required to DM) |
Not claimed: zero-knowledge, homomorphic encryption, or “we never know your address.”
To fetch collection dates we query municipal / aggregator location endpoints with a postcode, UPRN, street, or ICS URL.
We do not send your Discord user id, username, or guild identity to those schedule services. They receive a location query (the same kind of lookup anyone could do on their public site), not “who on Discord asked.”
GDPR roles: these services are not PutOut processors (Art. 28). We are not instructing them to process your identity on our behalf; we are clients of their public/schedule APIs. The Discord↔property link is processed by PutOut (controller of this bot instance). Discord is the channel we use to deliver DMs — separate from schedule lookups.
We still list them for transparency (where location queries go), not because they are processors or joint controllers of your Discord account.
| Service | What we send | What we do not send |
|---|---|---|
| Postcodes.io | UK postcode | Discord identity |
| Mid Suffolk Placecube (national fallback) | Postcode (± house filter) | Discord identity |
| UK Bin Day | UPRN / council / postcode as needed | Discord identity |
| mijnafvalwijzer.nl | NL postcode + house number | Discord identity |
| Ximmio waste APIs | NL postcode + house number | Discord identity |
| Jumomind / MyMüll | City / street / house (service id) | Discord identity |
| Your ICS host | Calendar URL fetch | Discord identity |
| Discord | DM / channel delivery | — (identity channel for reminders) |
Residual technical detail: like any HTTPS client, the remote host may see our server’s IP and that a lookup occurred — still not your Discord account.
We process this data to provide the reminder service you asked for (registration + scheduled notifies).
| Command | Effect |
|---|---|
/i-putout | Register or update your reminder (DM or server) |
/putout-export | See what we store about you (unseals property when the bot has the key) |
/putout-clear | Erase your subscription |
/putout-privacy | Short in-bot summary of this notice |
Data is kept while your subscription exists. Use /putout-clear to delete it. Operators may purge idle accounts later.
By default PutOut reminds you by DM only. A server notify channel is optional household mode (/putout-channel + channel notify enabled).