<!-- Canonical: https://staging.startupmail.dev/docs/usage-limits -->
<!-- Documentation index: https://staging.startupmail.dev/llms.txt -->

# Usage and limits

> Understand email events, storage, recipient and attachment limits, and workspace safety caps.

## Included capacity

Each workspace is $12/year—the equivalent of $1/month, billed annually—and includes 1,000 email
events each month. Creating an account does not start a subscription; every customer must explicitly
choose a paid plan before any charge can occur.

Additional capacity is not currently available through self-service billing. Storage, mailbox, domain, and organization-seat allowances are not sold as capacity packs and should not be treated as contractual limits until they are implemented and published here.

## Storage and retention

Accepted messages remain in the mailbox until a user deletes the thread or the workspace is
deleted. A deleted thread stays in trash for 30 days before its stored messages and attachments
are removed permanently.

Workspace data can be downloaded as a portable NDJSON export. The export includes message
content only when the requesting person can read the mailbox. Attachment files are not embedded
in the export. Startup Mail does not currently publish a general storage quota, so do not treat
the absence of one as a contractual unlimited-storage promise.

## What counts as an event

- One accepted incoming mailbox delivery is one event.
- Each outbound recipient is one event.
- Each forwarded copy is one event.
- Rejected spam, quarantined mail, and duplicate provider events are not billed.

## Message limits

| Limit              | Current boundary          |
| ------------------ | ------------------------- |
| To recipients      | 10 per message            |
| CC recipients      | 10 per message            |
| BCC recipients     | 10 per message            |
| Subject            | 240 characters            |
| Plain or HTML body | 250,000 characters each   |
| Attachments        | 10 per message            |
| Single attachment  | 5 MB                      |
| Complete message   | 10 MB configured boundary |

## Sending caps

New workspaces use conservative daily sending limits. Monthly event limits and daily outbound limits are checked before a message is queued. A request that exceeds a cap returns `429` with a specific error code such as `monthly_limit` or `daily_limit`.

Rate limiting can also return `429` when too many send requests arrive in a short window. Use bounded backoff and do not create an uncontrolled retry loop.

## Billing state

Paid workspace access follows the Stripe subscription state. Expired legacy trials and inactive
subscriptions cannot send. Incoming mail remains available when outbound sending is paused for
delivery-reputation review.
