Live · sending through customer-owned SES accounts

Run twenty brands on Amazon SES without their reputations touching.

Every brand gets its own isolated sending identity — SES Tenant, DKIM, custom MAIL FROM, DMARC, suppression list, reputation policy — provisioned into your own AWS account. The mail ships on your quota, your invoice, your reputation. We never touch it.

No per-email fee. You already pay Amazon $0.10 per 1,000.

POST /v1/emails
$ curl -X POST https://api.mycompany.email/v1/emails \
    -H "Authorization: Bearer $MYCO_API_KEY" \
    -d '{"from":"billing@acme.com", ...}'

{
  "status": "accepted",
  "brand_id": "brand_d9b63ab8",
  "routed_from": "organization"
}

# 1.2s later, from your own SES account:
 DELIVERY  outgoing_ip=54.240.8.43

One bad brand shouldn't stop the others

On a shared sending platform, a single client's list hygiene can put the whole account under review. Every brand you run is exposed to every other brand's worst week.

Reputation you rent is reputation you can lose

Shared IP pools mean your deliverability depends on strangers. An account suspension is someone else's decision about your business, delivered without notice.

Per-email pricing punishes the thing you want

Volume is growth. Paying a markup on every message you send — on top of infrastructure you could own outright — makes success expensive.

How it works

Five steps, and only one of them happens in the AWS console.

01

Connect your AWS account

One click launches a CloudFormation stack in your account. It creates a single IAM role that we can assume only when presenting an ExternalId we generated. No access keys. Nothing to copy back — we derive the role ARN.

02

We prove the lock works

We assume the role twice: once with the ExternalId, once without. If the second attempt succeeds, your trust policy is missing its condition and we refuse to store the connection. AWS's own IAM docs tell third parties to run this test.

03

Create a brand

We provision an SES Tenant, configuration set, SNS topic and event destination inside your account — one isolated reputation boundary per brand, so a bad week for one never reaches another.

04

Add a sending domain

We generate the six records — three DKIM CNAMEs, MX and SPF for a DMARC-aligned return path, and DMARC itself — and publish them automatically if the zone is on Cloudflare. Then we poll until SES confirms each one.

05

Send

One REST call. We resolve which of your AWS accounts to use from the From domain, check suppression, respect that account's real send rate, and hand the message to SES with the right tenant and configuration set attached.

Reputation isolation

One brand's hard bounce shouldn't be another brand's problem.

Each brand maps to its own SES Tenant — Amazon's own isolation primitive — with its own configuration set, event stream, suppression list and reputation policy. That is the smallest thing that can be paused without stopping anything else.

We watch bounce and complaint rates per brand and pause at 2% and 0.05%. AWS reviews accounts at 5% and 0.1% and will not tell you how close you are. We act first, on one brand, and tell you which numbers moved.

A soft bounce is not a hard bounce. Mailbox-full and greylisting arrive as the same SES event as a permanent failure — treating them alike is how senders quietly destroy their own lists. We suppress on permanent bounces and complaints only.
BrandBounceComplaintStatus
Northwind2.41%0.012%Paused by us
Acme Retail1.08%0.031%Warning
Contoso0.21%0.004%Sending
Fabrikam0.17%0.002%Sending

What "your account" actually means

We are not in the delivery path.

Your quota

Sends count against your SES account's limits, not a plan allowance we sell you. Raise them with AWS directly.

Your invoice

Amazon bills you for email at their published rate. We never mark it up, because we never buy it.

Your reputation

The IPs, the domains and the standing with mailbox providers are yours. If you leave, they stay with you.

The honest flip side: we do not warm IPs, we have no ISP relationships, and we cannot call Gmail on your behalf. If you want someone to own your deliverability outcomes, buy a managed sender. We make owning it survivable at twenty brands.

For developers

Routing is the API. You send from an address; we work out whose account.

curl https://api.mycompany.email/v1/emails \
  -H "Authorization: Bearer $MYCO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "billing@acme-client.com",
    "to": "customer@example.com",
    "subject": "Your invoice",
    "html": "<p>Thanks for your order.</p>"
  }'

No account id, no region, no tenant name. The From domain determines everything.

{
  "id": "msg_456e62e7421e4316",
  "ses_message_id": "0100019fa04e0539-7a285e21",
  "status": "accepted",
  "brand_id": "brand_d9b63ab8c30b4a65",
  "ses_account_id": "sesacct_800556b3b4a8",
  "routed_from": "organization"
}

routed_from tells you which level of the hierarchy chose the account — domain, brand, or organization default.

Errors that say what to do

Every failure carries a requirementverify_domain, remove_suppression — not just a sentence to parse.

A request log you can read

Every call, its status, duration and error code, queryable by API. No reproducing a bug to find out what you sent.

Full event history per message

Send, delivery, bounce, complaint — with the sending IP, the SMTP diagnostic, and the exact time SES saw it.

Own the infrastructure. Rent the software.

Free for one brand, with every feature. You become a customer the moment you need a second isolated reputation.