PutOut privacy notice

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.

What we store

For each Discord user who registers:

FieldWhy
Discord user idWho to remind
Optional guild idHousehold channel ping (if enabled)
Council id / nameWhich schedule source
Notify preferencesDM vs channel
Last notified dateAvoid duplicate pings
Schedule windowShort 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.

Caps (property seal)

BeatsDoes 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.”

Schedule lookups (not identity sharing; not processors)

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.

ServiceWhat we sendWhat we do not send
Postcodes.ioUK postcodeDiscord identity
Mid Suffolk Placecube (national fallback)Postcode (± house filter)Discord identity
UK Bin DayUPRN / council / postcode as neededDiscord identity
mijnafvalwijzer.nlNL postcode + house numberDiscord identity
Ximmio waste APIsNL postcode + house numberDiscord identity
Jumomind / MyMüllCity / street / house (service id)Discord identity
Your ICS hostCalendar URL fetchDiscord identity
DiscordDM / 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.

Lawful basis

We process this data to provide the reminder service you asked for (registration + scheduled notifies).

Your controls

CommandEffect
/i-putoutRegister or update your reminder (DM or server)
/putout-exportSee what we store about you (unseals property when the bot has the key)
/putout-clearErase your subscription
/putout-privacyShort in-bot summary of this notice

Retention

Data is kept while your subscription exists. Use /putout-clear to delete it. Operators may purge idle accounts later.

Channel pings

By default PutOut reminds you by DM only. A server notify channel is optional household mode (/putout-channel + channel notify enabled).