Plan allowances
| Plan | Allowance | Window | At the limit |
|---|---|---|---|
| Free | 75 emails a day and 2,000 a month | UTC calendar day and month | Refused until the day or month resets |
| Paid | 50,000 emails included per billing cycle, then $0.10 per 1,000 | Billing cycle | Never refused; extra emails are billed |
| Dedicated | 120,000 emails an hour and 2,000,000 per 24 hours | Rolling hour and 24 hours | Refused until the window has room |
Prices and plan details are on the pricing page. For the Dedicated plan, write to [email protected]. The Plan usage card on the Overview page shows the counts the next submission is checked against.
What counts as an email
An email is one message accepted at submission, with up to 50 recipients: a message to 50 people counts once. It is counted when it is accepted, not when it is delivered, so delivery retries add nothing and a message that later bounces still counts. A request refused with an error is not stored and not counted. A message refused by the content screen is recorded in Activity but not counted. A message held for review counts toward the Free and Dedicated allowances; on the Paid plan it is billed only if it is released.
At the limit
- SMTP answers
451 4.0.0 submission quota exceededafterDATA. It is a temporary reply, so a relaying mail server keeps the message and retries; an application sending directly should retry later. - The API answers
429with{"error":"submission quota exceeded"}andRetry-After: 60.
Upgrading from Free to Paid on the Billing page lifts the limit for the next message.
Per-message limits
| Limit | Value | Over the limit |
|---|---|---|
| Message size | 10 MB (10 × 1,048,576 bytes), including headers and encoded attachments | SMTP 552, API 413 |
| Recipients | 50 per message, counting To, Cc and Bcc | SMTP 452 on the next RCPT TO, API 400 |
| Line length (SMTP) | 2,000 bytes | SMTP 500, connection closed |
Date header |
Within 24 hours of Viesti's clock | SMTP 550, API 400 |
| API request body | Six times the message limit plus 64 KiB | API 413 |
Every message must come from an address at a verified domain. SMTP settings lists the header rules and the API reference the request rules.
Domains
- Up to 20 sending domains per workspace. Release one you no longer use to add another.
- Up to 10 domain additions per workspace per hour.
- A domain that never verifies is removed 30 days after it was added.
Failed authentication
Ten failed logins or API requests with a bad key from one IP address within 10 minutes block that address for 10 minutes, on SMTP and the API together. IPv6 addresses are counted per /64. A successful authentication clears the count. While the block lasts, even a valid key is refused:
- SMTP:
454 4.0.0 Too many failed authentications; retry later - API:
429with{"error":"too many failed authentications; retry later"}
A misconfigured service that keeps retrying a revoked key can lock out other services sending from the same address, so fix or stop it first.
Request rate (HTTP API)
More than 300 requests from one client IP address within 10 seconds are refused with 429 before they reach the API, without a JSON body. Pace bulk sends below that rate.
Delivery pace
Mail leaves from the shared free or paid IP pool, or from your dedicated pool, with per-destination throttling and warmup caps. When a pool is at capacity, messages wait in the queue, shown under In flight in Activity, and are handed on as capacity frees up, for up to 72 hours after submission. Bounces describes retries and what happens after.
Data retention
- Message bodies are deleted 30 days after submission once the message is in a final state: delivered, bounced, complained, failed or rejected.
- Delivery events, the Delivery timeline in Activity, are kept 180 days.
- Message metadata (sender, recipients, subject, size, status) and suppression history are kept.
The privacy policy covers retention in full.