Data Retention
Retention windows for rendered email bodies, API request logs, and idempotency keys — and what survives them
Records of every email you send stay in Bitelio forever. What gets aged out is the heavier payload data attached to those records, cleaned up on a fixed schedule so storage stays bounded.
| Data | Kept for | What happens after |
|---|---|---|
| Email metadata and metrics | Indefinitely | Never removed |
| Rendered email HTML | 90 days | Body is cleared; the email row remains |
| API request logs | 30 days | Log entry is deleted |
| Idempotency keys | 24 hours | Key is deleted and becomes reusable |
Email content
Each outgoing email is saved together with its fully rendered HTML body — the same content the Preview button in a contact's activity feed shows you. Since that body accounts for the bulk of per-email storage, Bitelio clears it once the email is 90 days old.
The email itself survives the clearing. Everything that segmentation and analytics rely on is retained permanently:
- Recipient, subject, sender, and send time
- Delivery status, and the timestamps for delivery, opens, clicks, bounces, and complaints
- Open and click counts
- The campaign, workflow, or template the email came from
In practice the only difference you'll notice is that the dashboard can no longer preview the content of emails past the 90-day mark. Segment filters built on email activity keep working as before — they operate on event timestamps, not on the body.
Once a body is cleared, it's gone for good. If you need an exact archive of what was sent, either save a copy on your side at send time or rebuild it later from the template plus the contact's data.
API request logs
For debugging and auditing, Bitelio keeps logs of most API traffic: public API calls, resource changes, authentication attempts, and every failed request. Each entry lives for 30 days and is then deleted. Only request-level troubleshooting is affected — any emails or events those requests produced remain untouched.
Idempotency keys
Once claimed, an Idempotency-Key is held for 24 hours and then removed. That removal is what frees the key for reuse — so this cleanup is really part of the idempotency mechanism itself, not just housekeeping.
Cleanup schedule
Background jobs enforce these windows on a schedule:
| Job | Schedule |
|---|---|
| Email body cleanup | Daily |
| API request log cleanup | Daily |
| Idempotency key cleanup | Hourly, on the hour |
None of these are configurable — the 90-day body window, the 30-day log window, and the 24-hour idempotency key TTL are fixed.