# Plans and limits

Every limit below is enforced by the API and shown in your dashboard. This page explains what each one means in practice and what actually happens when you reach it.

## The ladder

Volume is the only thing that changes as you move up a step inside a plan. Features change when you move between plans.

| Step | Price a month | Emails included | Each extra 1,000 |
| --- | --- | --- | --- |
| Free | £0 | 5,000 | Not available |
| Pro 50k | £12 | 50,000 | £0.60 |
| Pro 100k | £25 | 100,000 | £0.55 |
| Growth 250k | £60 | 250,000 | £0.45 |
| Growth 500k | £110 | 500,000 | £0.40 |
| Growth 1M | £220 | 1,000,000 | £0.35 |
| Growth 2.5M | £450 | 2,500,000 | £0.30 |
| Enterprise | Custom | Custom | Custom |

Prices are in GBP and exclude VAT. The month is a calendar month in UTC, and it resets at midnight on the 1st.

## What changes between plans

| Limit | Free | Pro | Growth | Enterprise |
| --- | --- | --- | --- | --- |
| Domains | 1 | Unlimited | Unlimited | Unlimited |
| Team members | 1 | 5 | 10 | Unlimited |
| Log retention | 1 day | 7 days | 30 days | 90 days |
| Requests a second, per key | 10 | 10 | 25 | 50 |
| Support | Docs and email, best effort | Email support | Priority email support | Priority support with a named contact |

## What each feature means

| Feature | What it means |
| --- | --- |
| Emails per month | Emails you can send each calendar month before overage applies. Resets on the 1st. Test-mode sends don't count. |
| Overage | What you pay per additional 1,000 emails once you pass your included volume. Billed at the end of the month. Not available on Free. |
| Domains | Domains you can verify and send from. Each one gets its own DKIM signing so mail is authenticated as yours. |
| Team members | People who can log in to the dashboard for this account. Each gets their own login link and can be removed at any time. |
| Log retention | How long we keep each email's content. After this the record and its events stay, but the body is deleted. |
| Webhooks | HTTP callbacks to your server for delivery, bounce and complaint events, signed so you can verify them. |
| Support | How to reach us and how quickly we aim to respond. Email support is answered by the people who built Avelto. |
| Dedicated IP | A sending IP used only by you, so your reputation is your own. Best for steady senders over 3,000 emails a day. |
| Uptime SLA | A contractual commitment to API availability, with service credits if we miss it. |
| EU data residency | Your data is stored and processed in the EU. This is true on every plan; Enterprise gets it in writing. |
| Named contact | A specific person who knows your account and answers your questions, rather than a shared queue. |
| Priority support | Your emails go to the front of the queue with a same-business-day target. |

## What happens when you reach a limit

### Monthly emails

**On Free, sending stops.** A send past the included volume is refused with a `429` and the error code `plan_limit`. The message says the same thing the banner in your dashboard says: sending resumes on the 1st, or you can move to a paid plan to keep sending now. Nothing is lost, and nothing is queued up to be sent later.

**On a paid plan, sending continues and overage applies.** Emails past your included volume are charged at your step's rate per 1,000, billed at the end of the month. Your dashboard shows the count and the running cost as soon as you pass the line, so it is never a surprise on an invoice.

Your dashboard warns you at 80% of your included volume on both the overview and the usage page, and the warning names the step above you and its price.

### Domains

Free includes one sending domain. Every paid plan is unlimited. Adding a domain past your limit is refused with `plan_limit`, and the message names the plan that lifts it.

Separately, every new account is capped for its first 7 days, whatever its plan: at most 5 domains, and at most 100 live emails a day. A send past the daily cap is refused with `429` and the error code `plan_limit`, and the cap resets at midnight UTC. That is an anti-abuse measure rather than a plan limit, and it lifts by itself after the 7 days.

### Team members

A seat is a person who can sign in to your dashboard. **A pending invite holds a seat**, so five members and one outstanding invite is six seats used. Revoking an invite gives the seat back immediately.

When your seats are full, the invite form says so and names the plan that gives you more. The last owner on an account cannot be removed.

An email address belongs to exactly one account. If someone already has a login somewhere else, they cannot be invited to yours until that account is closed.

### Owners and members

Everyone on the account can do the daily work. A handful of actions belong to owners,
chosen by how much they affect — not by seniority.

**Owners only**

- Delete the account, or schedule and cancel that deletion
- Request a billable add-on such as a dedicated IP
- Delete a domain
- Invite and remove people
- Create or revoke a **live** API key
- Change notification settings

**Everyone**

- Send email and read the logs
- Create and revoke **test** API keys
- Add a domain
- Manage webhooks and suppressions

Creating a live key is an owner's call because a live key is the account's full sending
authority handed to a program. That is also why a test key cannot delete a domain even
though a member can create one: otherwise the rule above would be trivially avoidable.

If you hit one of these as a member, the error names the action and says to ask an owner.

Asking us to change your plan is open to everyone — [get in touch](/contact) whoever you
are. The person who runs into a limit is usually not the person who pays the bill, and
making them find that person before they can even tell us would be a strange way to
learn we need to sell you something.

### Request rate

Each API key is limited to a number of requests a second. Going over returns `429` with a `retry-after` header; the SDK honours it and retries for you. This limit is per key, so splitting work across keys splits the budget rather than multiplying it.

### Log retention

Retention is how long we keep each email's **content**. After it passes, the email's record, its status and its events all stay queryable; the body is deleted. The dashboard says so on the email rather than showing you an empty preview.

## Domain health

Once a domain is verified we keep checking it. Every night we re-resolve its DKIM, SPF and DMARC records and compare them with what we expect.

If a DKIM or SPF record stops resolving, or resolves to something else, the domain is marked **action needed**, a banner appears in your dashboard, and an entry is written to your audit log. You can also re-check a domain yourself at any time from the domains page; that button is limited to once a minute per domain so a refresh loop cannot hammer the DNS.

A missing DMARC record is advice rather than a fault. It will never mark a domain as action needed, because plenty of domains run without one. Publishing one is still worth doing: see [Domains](/docs/domains) for the three policy levels and where to start.

## Webhooks

Every delivery attempt is recorded with the response code, how long it took and how many attempts it has taken. Opening a delivery shows the exact body we sent, the signature header that came with it, and the body your endpoint sent back, truncated if it was very large.

Two buttons on that page help when you are wiring up a handler:

- **Send test event** posts a synthetic `email.delivered` payload to your endpoint, so you can build and verify your handler before sending any real mail.
- **Send again** delivers an event you have already had as a new delivery, which is how you test a handler you have just fixed against a past event.

Both are signed exactly like a real delivery, so your signature check is being tested too. Both are dashboard tools rather than API routes. Retrying a failed delivery is the different one: it re-attempts the same delivery and keeps its attempt count, it is what you script after an outage, and it is on the API. See [Retry vs send again](/docs/webhooks).

## Alerts

Your dashboard can email you when something needs attention. Each alert is off or on per account, and goes to whichever address you choose, defaulting to the account owner.

| Alert | Sent when |
| --- | --- |
| Domain health | A verified domain's DKIM or SPF records stop resolving as we expect. |
| Bounce rate | Your bounce rate passes 3%, once at least 50 emails have reached a final state. |
| Complaint rate | Your complaint rate passes 0.08%, on the same sample rule. |
| Usage | You pass 80% of the emails included in your plan this month. |
| API key created | A new API key is created on your account. |

The bounce and complaint thresholds sit deliberately below the levels our upstream sending infrastructure enforces. By the time a rate reaches those, sending is already at risk for everyone on the platform, so the warning has to arrive with enough room to fix the cause. The same alert is never sent twice within 24 hours.

Those higher levels are where sending is paused: a daily bounce rate over 5% or a daily complaint rate over 0.1%, judged once at least 20 emails have reached a final state that day. A paused account gets `403 account_paused` on every send; the dashboard shows the reason, and we lift the pause once you have written in and the cause is fixed.

## Dedicated IPs

A dedicated IP is a sending address used only by you, so your sending reputation is yours alone rather than shared.

- £35 a month on Pro, £25 a month on Growth and Enterprise, on top of your plan.
- Available from Pro up, for senders steadily over 3,000 emails a day. Not offered on Free.
- Arranged by talking to us. There is no self-serve provisioning.

It is worth having only if you send steadily. A dedicated IP with low or irregular volume has no reputation to speak of, which is usually worse than sharing one that does. A new IP also has to be **warmed**: volume is raised gradually over a few weeks so receiving networks learn to trust it. We do that with you rather than handing you an IP and wishing you luck.

To ask for one, use the button in your dashboard under Settings, or [talk to us](/contact). We set these up by hand today.

## Changing plan

The Billing page in your dashboard is where a plan changes. Pick the step you want: the first time, checkout takes a card and starts the plan that day; after that, a change shows you the prorated difference before you confirm, and moving down to Free ends the plan when the period you have paid for closes. The same page holds your invoices and the card. Where checkout is not yet open on your account, the page says so and the Upgrade buttons open our contact form with your current step and the suggested next one already filled in.

If none of the steps fit, say so. Custom volume, an agreed monthly cap, an uptime commitment and a named contact are all things we do on Enterprise; see [Enterprise](/enterprise).

## Where to see all of this

- **Usage** shows sends a day for the current month, your total against your included volume, a projection for the month, and the overage cost so far.
- **Team** shows members, pending invites and seats used.
- **Domains** shows every DNS record we expect, what actually resolved, and each domain's health.
- **Settings** shows your plan and every entitlement on it, your alert preferences and your dedicated IPs.
- **Support** shows your support tier and what response time to expect.

---

Rendered page: https://avelto.dev/docs/plans-and-limits
