Skip to content
Go To Dashboard

Your sending reputation

Your Sapiom organization has one email sending reputation. Every inbox in the organization, on every domain, contributes to it. When its bounce or complaint rate crosses a threshold, sending is suspended for the whole organization until Sapiom support lifts it.

If you run a platform on Sapiom and send mail for your own customers from one organization, all of those customers share this reputation. One customer whose list bounces heavily can stop sending for every customer on your platform. Treat the rate as yours to manage.

The rates are computed over a rolling 24-hour window. Which rule applies depends on how many messages the organization sent in that window, counted per recipient.

Messages sent in the last 24hRateWarningSuspension
1,000 or moreBounce rate5%10%
1,000 or moreComplaint rate0.5%1%
Under 1,000ComplaintsNone2 or more complaints once the complaint rate reaches 1%
  • Permanent and transient bounces both count toward the bounce rate.
  • A small sender is exposed. Under 1,000 sends, two complaints out of 200 messages suspend the organization.
  • Mail sent from a custom domain builds its own reputation with mailbox providers such as Gmail and Outlook, but its bounces and complaints still count toward the organization’s rates.
  • Sapiom does not notify you when a rate reaches the warning level. Watch the rates yourself.

A suspension blocks outbound mail only:

BlockedKeeps working
messages.send, reply, replyAll, forwardInbound mail arrives in every inbox
inboxes.createmessages.list, messages.get, threads.*, and other reads
Webhook delivery for received mail

An agent paused waiting for a reply still receives it. An agent that sends fails at the send step: the call throws EmailHttpError with HTTP 422 and body.error "agentmail_message_rejected". When the provider gives a reason, body.upstreamReason carries it. Retrying does not help; the send fails until the suspension is lifted.

Contact Sapiom support to lift a suspension.

Reinstating the organization does not reset the 24-hour window. The bounces and complaints that caused the suspension still count, so the next bounce can suspend the organization again. Find and stop the cause before you ask for the lift: pause the sending agent, remove the bad addresses, or stop sending for the customer whose list caused it.

Some events add the recipient to a suppression list automatically:

EventSuppression entry
Permanent bounceAdded
Complaint (marked as spam)Added
UnsubscribeAdded
Transient bounceNone

Suppression entries apply to the whole organization. An address suppressed because of mail sent for one of your customers is suppressed for all of them. Automatic entries cannot be removed through the API.

GET /v1/email/metrics/rates returns the organization’s current bounce and complaint rates. These are the figures that suspension decisions are based on, and they cover every inbox in the organization. The read is free.

Terminal window
curl -sS https://agentmail.services.sapiom.ai/v1/email/metrics/rates \
-H "x-sapiom-api-key: $SAPIOM_API_KEY"
{
"bounceRate": 0.012,
"complaintRate": 0.0005,
"sent": 1840,
"windowSeconds": 86400,
"windowEnd": "2026-10-13T17:00:00.000Z"
}
FieldMeaning
bounceRateBounced over sent in the window, as a fraction: 0.05 is 5%. null when nothing was sent.
complaintRateComplaints over sent in the window, as a fraction. null when nothing was sent.
sentMessages sent in the window, counted per recipient.
windowSecondsLength of the rolling window: 86400 (24 hours).
windowEndEnd of the window the rates cover, ISO 8601. The window advances hourly. null when there is no data yet.

Call it with your organization’s own API key. A key that belongs to any other tenant gets HTTP 403 with error: "agentmail_rates_internal_tenant_only", because the rates describe the whole organization.

Alert before the warning thresholds, so you have time to act before a suspension:

RateWarning thresholdSuggested alert
bounceRate0.050.03
complaintRate0.0050.003

When sent is under 1,000, the bounce thresholds do not apply, but two complaints can suspend the organization. Alert on every new complaint at that volume. To see which inbox or customer a bounce or complaint came from, subscribe to the message.bounced and message.complained webhook events.

Sapiom applies its own limits on top of the reputation rules. See Email limits for the full rules.

LimitValue
Recipient deliveries per inbox per day200, resetting at 00:00 UTC
Addresses per recipient field per call50 each in to, cc, bcc, and replyTo
  • Verify recipients before sending. Assess each address with emailSearch.verifyEmail from Email Lookup, or another verification service, and drop the ones that fail. Unverified lists are the most common cause of bounces.
  • Honor unsubscribes. Send List-Unsubscribe and List-Unsubscribe-Post headers on bulk mail, and stop sending to an address when its owner unsubscribes. A recipient who cannot unsubscribe tends to mark the mail as spam, which counts as a complaint.
  • Send cold outreach from a custom domain. A custom domain keeps its mailbox-provider reputation separate from your other sending. Its bounces and complaints still count toward the organization’s rates, so verify those recipients too.