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 |
| AbfallNavi (regio-it) | City / street / house (service id) | Discord identity |
| AWIDO (cubefour) | City / street / house (client id) | Discord identity |
| Abfall.IO / AbfallPlus GraphQL | City / street / house (service key) | Discord identity |
| Müllmax | Street (+ city / house; service id) | Discord identity |
| Recycle! / Fost Plus (BE) | Postcode / street / house | Discord identity |
| Gemeinde24 (AT) | Municipality / street | Discord identity |
| EcoHarmonogram (PL) | Town / street / house | Discord identity |
| Nantes Métropole open data (FR) | Street address / geocode | Discord identity |
| Toulouse Métropole open data (FR) | Street address / geocode | Discord identity |
| Angers Loire Métropole open data (FR) | Street address / geocode | Discord identity |
| Bordeaux Métropole open data (FR) | Street address / geocode | Discord identity |
| openerz (CH) | Postal code / region / area | Discord identity |
| RecycleCoach | Street / city / state (CA/US/AU munis) | Discord identity |
| ReCollect | Street / city / state (North American munis) | Discord identity |
| Your ICS host | Calendar URL fetch | Discord identity |
GitHub — only if you use /putout-feedback | Discord username + id, your provider id, and the text you write | Your address, postcode, or ICS URL (address-shaped text is stripped first) |
| 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).