Checked
Sendtier vs Amazon SES: what you build yourself
Compare Sendtier's public preview with Amazon SES on price, regions, sandbox access, suppressions, and webhooks.
Sendtier sends through Amazon SES in eu-central-1 (Frankfurt). The choice is what you build and run yourself, not a different delivery network.
Live sending is limited during the public preview. MB Tobuli operates Sendtier. The API, workers, Postgres database and its automated backups, and the queues run in AWS eu-central-1. Email is sent through Amazon SES in that Region. AWS is a subprocessor, and the subprocessor list is still a draft.
The GDPR summary says the customer selects the AWS Region for customer data. AWS will not transfer that data outside the selected Region. A transfer is allowed where necessary to provide or maintain customer-initiated services, or to comply with the law or a valid, binding order. Ask your data protection officer to read the Data Processing Addendum before you rely on that statement.
Using Amazon SES directly
Events and message storage
The monitoring guide says bounces and complaints need feedback notifications or event publishing. The event destinations guide describes how SES publishes sending events to CloudWatch, Data Firehose, EventBridge, Pinpoint, or SNS. Pinpoint does not support delivery-delay events. SNS can deliver these events to an HTTPS endpoint, where your application verifies and processes the notifications. SNS is a separate charge on the pricing page.
SES bounce events can include diagnosticCode, the receiving server's reply recorded in a delivery status notification (DSN). The event data guide says "This field may be absent in the DSN (and therefore also absent in the JSON)." A delivery can include smtpResponse.
Optional Mail Manager archiving stores sent and received mail, and you can override the default retention period of 180 days. The pricing page lists $2 per GB ingested and $0.19 per GB each month.
Sendtier stores the sender, recipients, subject, HTML and text bodies, tags, status, and delivery events. The default retention period is 30 days; expired daily partitions are removed. Raw MIME is not stored. Organization owners can export the data and delete the organization, with a 30-day restore window. See retention.
A bounce event keeps the SES type (Permanent, Transient, or Undetermined) and the subtype. When SES reports them, the event also keeps the action, a status such as 5.1.1, and the diagnostic code.
Reporting MTA and remote MTA IP are kept when present, and a delivery event keeps the SMTP response and the remote MTA. Classification follows the SES bounce type, not the SMTP digits.
The Sendtier-Signature header contains a timestamp and an HMAC-SHA256 signature over <t>.<raw body>. Verification allows five minutes of clock skew. After secret rotation, both secrets remain valid for 24 hours, and the header carries two v1 signatures. Failed webhook deliveries retry for up to 24 hours. The webhook guide lists the retry intervals. You can inspect and resend webhook deliveries. Webhooks are delivered for email.delivered, email.bounced, email.complained, email.delayed, and provider failures. There is no webhook for email.queued or email.sent.
Suppressions
The account-level list is per AWS account and Region. Accounts that began using SES after 25 November 2019 have account-level suppression enabled by default for bounces and complaints. The page says "Only hard bounces are added to your account-level suppression list." The reasons can be BOUNCE, COMPLAINT, or both. Gmail does not provide these complaint reports to SES. This also limits the complaint events available to Sendtier.
Hard bounces are also added to the global list. If an address is on that global list and not on your account list, SES still attempts delivery. An enabled tenant list replaces the account list.
Sendtier automatically suppresses addresses after permanent bounces or complaints. Transient and undetermined bounces do not trigger suppression. Sending to a suppressed address returns 422 recipient_suppressed. You can add, list, and remove addresses. See suppressions and errors.
Sandbox, identities, and DNS
The production access guide says "We place all new accounts in the Amazon SES sandbox." The status is separate in each Region. While it applies, "You can only send mail to verified email addresses and domains, or to the Amazon SES mailbox simulator." The caps on that page are 200 messages per 24 hours and 1 message per second. You request production access in the console or with the AWS CLI. "The AWS Support team provides an initial response to your request within 24 hours." Approval can take longer if AWS needs more information. From, Source, Sender, and Return-Path identities still have to be verified.
The endpoints page lists Frankfurt as eu-central-1 (email.eu-central-1.amazonaws.com, SMTP email-smtp.eu-central-1.amazonaws.com) among other commercial and GovCloud Regions. Frankfurt DKIM uses dkim.amazonses.com, and the MAIL FROM feedback host is feedback-smtp.eu-central-1.amazonses.com.
Sendtier checks six records. Three DKIM CNAMEs point <token>._domainkey.<domain> to <token>.dkim.amazonses.com. On send.<domain>, publish MX 10 feedback-smtp.eu-central-1.amazonses.com and TXT v=spf1 include:amazonses.com ~all. At _dmarc.<domain>, publish TXT v=DMARC1; p=none;. Pending domains are rechecked every 30 seconds until verified, then every 6 hours. A verified domain loses verification only after two failed checks in a row. See domains. A st_test_ key accepts a send before DNS is verified. Test messages never reach SES and are never delivered. Test keys allow up to 1 000 recipients per day, and an st_live_ key needs a verified domain.
Comparison
Outbound SES email is charged per recipient. The FAQ says "Sending limits for bulk emailing are based on recipients rather than on messages." Sendtier counts recipients, not messages. A message addressed to ten recipients uses ten recipients of the allowance.
| Feature | Amazon SES | Sendtier (public preview) |
|---|---|---|
| Pricing model | À-la-carte outbound is $0.10 per 1,000 emails, plus $0.12 per GB of attachment data, with no minimum fee. Since 21 July 2026, new SES accounts and account–Region combinations with no metered SES activity since 1 June 2025 default to Essentials. Its first monthly tier costs $0.16 per 1,000 emails, up to 10 million. SES Pro is $0.22 per 1,000 in that band, plus $105 per account per Region per month. SES Enterprise is $0.23 per 1,000 in that monthly tier, plus $500 per account per Region per month. Outbound is charged per recipient. Pricing. | No paid rate is on sale. Pro and Scale are planned. Limits count recipients, not messages. Pricing. |
| Free usage | Up to 3,000 message charges each month for the first 12 months after you start using SES, for outbound, inbound, and Virtual Deliverability Manager processing. FAQ. From 15 July 2025, new AWS accounts also receive up to $200 in Free Tier credits. The free account plan ends after six months or when its credits run out, whichever comes first. Credits expire 12 months after account creation. | 3 000 recipients a month and 100 a day. The daily allowance resets at 00:00 UTC each day; the monthly allowance resets at 00:00 UTC on the first day of each month. |
| Sandbox and production access | New accounts start in the sandbox in each Region: 200 messages per 24 hours, 1 message per second, and recipients must be verified identities or the mailbox simulator. Production access is a console or CLI request. Support sends an initial response within 24 hours. From identities stay verified afterward. Production access. | A live key needs a verified domain. Live sending is limited during the public preview. |
| Regions | SES supports multiple Regions, including Frankfurt (eu-central-1). Endpoints. | eu-central-1, through Amazon SES. |
| Event data and message storage | You publish events. diagnosticCode may be absent. Delivery events can include smtpResponse. Optional Mail Manager archiving stores email content, with a default retention period of 180 days. Event data, archiving. | Stored with the email under the default 30-day retention policy: SES type, subtype, and the recipient action, status, and diagnostic code when SES reports them. |
| Suppressions | Account-level list, per account and Region. Enabled by default when SES use began after 25 November 2019. Addresses are added automatically for the configured reasons: hard bounces, complaints, or both. Tenant lists are also documented. Suppression list. | Permanent bounces and complaints add the address. Transient and undetermined bounces do not. A later send returns 422 recipient_suppressed. |
| Webhooks and events | Destinations are CloudWatch, Data Firehose, EventBridge, Pinpoint, or SNS. Pinpoint does not support delivery-delay events. You select the event types. SNS supports HTTPS notifications with configurable retry policies. Event destinations. | Signed webhooks for email.delivered, email.bounced, email.complained, email.delayed, and provider failures. Retries run for up to 24 hours. |
| Signing | SNS signs HTTP(S) notifications. Your application verifies the signature using the SNS signing certificate. Verify signatures. | Sendtier-Signature is HMAC-SHA256 over the timestamp, a period, and the raw body. Tolerance is 5 minutes. |
| Testing before verification | Sandbox mail goes to verified identities or the mailbox simulator. Simulator messages are charged and are not delivered to real recipients. FAQ. | A test key accepts a send before DNS is verified. The message is never delivered and does not reach SES. Cap: 1 000 recipients a day. |
| Templates | SendTemplatedEmail and SendBulkTemplatedEmail. A rendering failure is published when template data does not match. Event destinations. | Not supported. |
| Attachments | The FAQ describes MIME attachments and SendRawEmail. The v2 API and SMTP accept messages up to 40 MB. Attachment data is $0.12 per GB on à-la-carte. FAQ. | Not supported. |
| SMTP | Available in listed Regions, including email-smtp.eu-central-1.amazonaws.com. The SMTP interface requires TLS, by STARTTLS or TLS Wrapper. Security protocols. | Not supported. |
| Dedicated IPs | À-la-carte rates: Standard: $24.95 per month per IP. Managed: $15 per month per account plus $0.08 per 1,000 for the first 10 million emails. Bring-your-own-IP: $24.95 per address per month, minimum 256 addresses ($6,387.20 per month). Pricing. | Not supported. |
| SDKs | AWS SDKs support SES and handle authentication, request signing, and retries. SES API guide. | Not published. TypeScript, Go, and PHP source is in the repository. Use HTTP. |
When to call Amazon SES directly
Call Amazon SES when you want its published charge per 1,000 emails and you want to configure the AWS services directly. À-la-carte is $0.10 per 1,000, and Essentials is $0.16 per 1,000 for the first 10 million. SES provides suppression lists, and your application still needs to process events and manage any additional storage it requires.
Virtual Deliverability Manager is an Amazon SES feature: SES deliverability for mail sent through SES, and global deliverability for a sample across other providers. À-la-carte SES deliverability starts at $0.07 per 1,000 emails for the first 10 million, plus a query fee. On à-la-carte pricing, global deliverability is $1,250 per month per Region per account. Both figures are on the pricing page.
The security guide requires TLS to the SMTP interface, by STARTTLS or TLS Wrapper. Delivery to the receiving server uses opportunistic TLS unless a configuration set requires it. The FAQ documents attachments, custom header fields, and a 40 MB limit on the v2 API and SMTP.
When Sendtier fits
Sendtier fits when you want domain verification, stored bounce details, and signed webhooks through one API in eu-central-1. Live sending is limited during the public preview.
POST https://api.sendtier.com/emails takes Authorization: Bearer st_live_… or st_test_…. The fields are from, to (1 to 50 addresses), subject, and html and/or text. You can also set tags (a string map), scheduled_at (up to 72 hours ahead), and resend_of. The optional Idempotency-Key header lets you repeat the same request and receive its stored response. A changed body returns 409 idempotency_conflict.
POST /emails/batch takes 1 to 100 messages, and the request body cap is 10 MiB. Each key allows 10 requests a second, with a burst of 20. Over the limit, the API returns 429 rate_limited and a Retry-After header. See sending and rate limits.
Use your own test key and a sender on a domain you added. The test message is not delivered. Templates, attachments, SMTP, cc, bcc, reply_to, custom headers, and dedicated IPs are not supported. TypeScript, Go, and PHP clients in the repository are not published to registries yet, so use HTTP.
How these facts were checked
Public AWS pages in the source list were checked on 7 October 2026, and Sendtier facts were checked against the code that day. Inbox placement and uptime were not measured.
Sendtier stores the bounce details Amazon SES provides, including a diagnostic code when the receiving server returns one. Start free with a test key in the quickstart.
Sources
- Navigating GDPR compliance, in summary
- Monitoring sending activity
- Event destinations
- Amazon SNS HTTPS notifications
- Amazon SES pricing
- Event data published to Amazon SNS
- Email archiving
- Account-level suppression list
- Request production access
- Amazon SES endpoints and quotas
- Amazon SES FAQs
- AWS Free Tier
- Amazon SNS delivery retries
- Verify Amazon SNS message signatures
- Amazon SES and security protocols
- Send email with the Amazon SES API
- Virtual Deliverability Manager