Data retention
How long COSS keeps your emails, delivery history and account data, and what happens after.
COSS keeps message data only as long as it is useful for delivery, debugging and abuse prevention. A background job deletes data once it passes the period below, for every organization and environment (sandbox and live alike). Deletion is permanent: COSS cannot restore deleted data.
| Data | Kept | Details |
|---|---|---|
| Emails | 45 days | Subject, bodies, addresses, headers, tags, recipient statuses, delivery events, opens, clicks and attachment names. Queued and scheduled emails are kept until they are sent or canceled. |
| Attachment content | Until the email is sent | The bytes of attachments; only their name, type, size and checksum stay with the email. |
| Idempotency keys | 24 hours | A request repeated with the same Idempotency-Key replays the first response. |
| Webhook deliveries | 30 days | Event payloads, delivery statuses and attempt logs (including response excerpts). Deliveries still being retried are kept until they finish. |
| Log drain batches | 7 days | The lines sent to your log drains and their delivery attempts (including response excerpts). Lines that could not be sent within 3 days are dropped. |
| Content screening results | 90 days | Verdicts of the automated abuse screening. The screened content itself is never stored. |
| Reputation statistics | 31 days | Hourly bounce and complaint counts behind your account standing. |
| Standing notification emails | 90 days | Records of the emails sent to owners and admins about a warning or suspension. |
| Account standing history | 2 years | Warnings, suspensions and reinstatements. The latest change is kept while the organization exists. |
| Admin audit log | 2 years | Actions COSS staff take on organizations and users. |
| Expired sessions and invitations | 7 days after expiry | Sign-in sessions, verification and reset tokens, and invitations that were never accepted. |
| Invoices and payments | 10 years | Invoices with their line items, payments and credit notes, as tax law requires. Kept after your account is closed. |
| Usage records | 400 days | Hourly counts of billable usage per environment. Each invoice keeps its month's totals. |
| Billing notification emails | 90 days | Records of usage alerts and payment reminders sent to your billing contacts. |
| Payment provider events | 30 days | Notifications from our payment processor about invoices and payments. |
| Suppressions | Until you delete it | Addresses that sends skip. Never removed automatically, so a bounced address stays protected. |
| Account and configuration | While your account exists | Users, organizations, projects, environments, API keys, domains, webhook endpoints, log drains, settings, and billing details (plan, contracts and credits). Items you delete (a key, a domain, an endpoint, a drain) are removed right away. |
Periods start when the data is created (for example, when you call coss.email.send()), unless
the table says otherwise. Deletion runs continuously, so data may disappear shortly after its
period ends, never before.
Emails
An email is deleted 45 days after it was created, together with everything recorded about it: recipients and their statuses, delivery events, opens and clicks, tracked links and attachment names. Emails that are still queued or scheduled are kept until they are sent or canceled.
After deletion:
coss.email.get(),coss.email.listEvents()and the dashboard returnnot_foundfor it.- If it had open or click tracking, its tracked links stop redirecting and its open pixel stops counting.
- Suppressions created by its bounces and complaints stay in place: they still name the email's id, which no longer resolves.
Attachment content is discarded much earlier: as soon as the email is sent, fails or is canceled. Only each attachment's name, type, size and checksum stay with the email.
Webhook deliveries
Every event sent to your webhook endpoints, with its delivery status and the log of attempts (status codes, timing and up to 1 KB of each response), is deleted 30 days after the event. A delivery that is still being retried is kept until it succeeds or gives up.
Keeping your own records
To keep message history longer, store it on your side as it happens: subscribe a webhook endpoint
to the events you need (email.sent, email.delivered, email.bounced, …) and record them in
your own database. Event payloads include the email's id, sender, recipients, subject, tags and
category.
What is never deleted automatically
- Suppressions stay until you remove them, so an address that bounced or complained stays protected however long ago that was. See suppressions.
- Account and configuration data: your organization, its members, projects, environments, API keys, domains, webhook endpoints and settings. Anything you delete yourself (a key, a domain, an endpoint) is removed right away.
Abuse prevention
COSS screens a sample of live messages for abuse and keeps the verdict (never the content) for 90 days. Your account standing's history (warnings, suspensions and reinstatements) is kept for 2 years, and the latest change is kept for as long as the organization exists.