- API-key-level retention — how long outbound message logs keep PII.
- Per-number PII mode — whether inbound/outbound chat messages and conversations are stored at all.
API-key-level retention
Configured per API key on the API Keys page (/api-keys):
retentionDays > 0— PII in outbound message logs is kept for up to N days.retentionDays = 0— PII is not persisted.
destinationNumber, content) may be empty, but IDs, timestamps, status, and tracking metadata remain.
Per-number PII mode
Each WhatsApp number is configured independently with one of three modes (set on the number’s settings in the dashboard):Effect on the dashboard
Effect on v1 read endpoints
GET /v1/conversations, GET /v1/messages/unread, and GET /v1/messages/group apply the same gate:
Flow data
A WhatsApp Flow keeps three records of its own, and their windows are fixed by the platform — they are not the API key’sretentionDays, and not the number’s piiRetentionDays.
Why the exchanges get one day more than the responses. An exchange is captured while the customer is still filling the form, minutes before the submission that creates the response row. On an identical 30 days the exchanges would expire first, and a response in its last minutes of life would publish an empty
submitted beside answers that had been there the whole time.RELAY_ONLY number no exchange is stored at all — not a blanked row: no row. The call is still decrypted and forwarded to your endpoint, as everything is in that mode; what is not kept is the copy. Where a number’s redaction blanks a stored copy of the event, submitted comes back null — never [], which would read as answers hidden rather than answers absent. On the read surface, GET /v1/flows/{id}/responses, empty is spelled [] instead: there is no stored payload to redact there, and a field set to nothing would vanish from the JSON rather than arrive empty.
Forwarding is always active
Regardless of PII mode, these always work:- Outbound webhooks (delivery events and inbound events)
- The Chatwoot integration (receiving and replying)
- Sending messages