Docs/Core Concepts/Sending Limits & Safety

Sending Limits & Safety

Understand IvyMail's sending limits, account warmup, domain warmup, reputation monitoring, and suppression list. How safety mechanisms protect your deliverability.

For API request rate limits (requests per minute), see Rate Limits.

Plan-based sending limits

Every account has sending limits based on its billing plan, enforced at three levels:

PlanHourlyDailyMonthly
Free501,0002,500
Starter5002,00010,000
Higher LimitsUpon requestUpon requestUpon request

Higher Limits requires at least 25,000 emails sent and a reputation score of 80 or above. Contact us to discuss your requirements.

If you exceed any limit, further sends are rejected with an error until the next period begins (next hour, next day, or next month).

Account warmup

All new accounts go through a warmup period regardless of billing plan. This protects the platform from abuse and gives new senders time to establish good sending practices.

First 24 hours

New workspaces are limited to 10 emails in the first 24 hours.

Ongoing warmup

After the first 24 hours, sending limits are raised but remain capped:

  • Hourly limit: the lower of your plan limit or 100
  • Daily limit: the lower of your plan limit or 100
  • Monthly limit: the lower of your plan limit or 1,000

Exiting warmup

The warmup period ends when both conditions are met:

  1. Your account has sent a total of 500 emails
  2. Your reputation score is 80 or above (healthy status)

Until both conditions are satisfied, the reduced warmup limits remain in effect. After warmup completes, your plan's standard limits apply.

Domain warmup

Newly verified domains go through a separate progressive warmup to build domain-level sender reputation and avoid triggering spam filters.

StageDaily sending limit
Stage 150 emails
Stage 2100 emails
Stage 3200 emails

Stages advance based on sending volume, not calendar days. Once you reach the cap for your current stage, the next stage unlocks automatically. After the warmup period, your plan's standard sending limits take effect.

Domain warmup and account warmup run independently. During the overlap period, the most restrictive limit applies.

Reputation monitoring

IvyMail continuously monitors your bounce rate and complaint rate. Your account is assigned a reputation status that determines whether and how you can send.

StatusConditionEffect
HealthyScore of 80 or aboveNo restrictions
DegradedScore between 50 and 79Warning alert in dashboard
At riskScore below 50Warning alert in dashboard
ThrottledBounce rate >= 5%, or complaint rate >= 0.08%Sending limited to 10 emails per hour
PausedBounce rate >= 10%, or complaint rate >= 0.5%All sending blocked

Enforcement only applies after a minimum of 75 emails sent to ensure a meaningful sample size. Status changes trigger alerts visible in your dashboard.

Recommended targets

For optimal deliverability, aim for:

  • Bounce rate below 2%
  • Complaint rate below 0.05%

If your account is throttled or paused

  1. Review your suppression list and remove problematic recipients from your own systems
  2. Investigate the source of bounces or complaints (list hygiene, content issues, expired addresses)
  3. Take corrective action and wait for your rates to improve as older events age out
  4. If you believe the restriction is in error, contact support@ivymail.io

Suppression list

IvyMail maintains a global suppression list to prevent repeated delivery to invalid or complaining recipients. When an email is sent to a suppressed address, the send is blocked before reaching SES and logged with status: suppressed.

EventSuppression behaviour
Hard bounce (permanent failure)Immediate suppression
Soft bounce (temporary failure)Suppressed after 3 occurrences
Spam complaintImmediate suppression

In the dashboard, only suppression entries relevant to your workspace are shown. See Bounce & Complaint Handling for more details.

Content limits

All emails are subject to the following payload limits:

FieldMaximum
HTML body512,000 characters
Text body512,000 characters
Subject line998 characters
From address / Reply-to320 characters

Requests exceeding these limits are rejected at the API level.

Resource limits

Each plan has limits on the number of resources you can create:

ResourceFreeStarter
Domains11
API keys13
Webhook endpoints01
Team members13

Higher Limits plans have custom resource allocations agreed upon request.

Pre-send check sequence

When you call POST /v1/send, IvyMail runs the following checks in order before any email reaches SES:

  1. Reputation check - paused status blocks all sends
  2. Domain ownership - the sending domain must belong to your workspace
  3. Domain enabled - suspended domains are rejected
  4. Rate limiting - hourly, daily, and monthly limits per plan
  5. Domain warmup - stage-based daily limits for new domains
  6. Payment status - past-due or blocked billing halts sending
  7. Suppression list - suppressed recipients are logged and skipped

If all recipients are suppressed, the send is rejected entirely.

Payment enforcement

Sending is tied to your billing status:

  • First payment failure - your account is marked as past due. Brief payment processing delays are handled gracefully.
  • Repeated failures - your account is blocked from sending until the outstanding balance is resolved.

Sending resumes automatically once payment issues are cleared.


For AI agents & LLMs

Key limits to be aware of when integrating with IvyMail:

  • New accounts: limited to 10 emails in the first 24 hours, then capped at 100/hour and 100/day until 500 emails sent with a healthy reputation score
  • New domains: start at 50 emails/day (Stage 1), increasing to 100 then 200 as you send more volume
  • Plan limits: Free accounts can send 50/hour, 1,000/day, 2,500/month. Starter accounts can send 500/hour, 2,000/day, 10,000/month
  • Reputation: if bounce rate exceeds 5% or complaint rate exceeds 0.08%, sending is throttled to 10/hour. At 10% bounce rate or 0.5% complaint rate, sending is paused entirely
  • Content: subject max 998 chars, HTML/text body max 512,000 chars, from/reply-to max 320 chars

If a send is rejected, check the error message for which limit was hit. Do not retry rate-limited or warmup-limited sends immediately; wait for the next period.