Free tier, trial and sandbox.
Neither has a free plan that simply stays. A new AWS account gets $200 in Free Tier credits for six months, but SES starts in a sandbox: you can send only to addresses you have verified until AWS grants production access, which is a request, a review and usually about a day (how the sandbox works). SendGrid retired its free plan from 27 May 2025; a new account gets a 60-day trial of 100 emails a day and sending stops when the trial ends. On SES the barrier is the review; on SendGrid it is the calendar.
Price per thousand.
SES is priced by the thousand: $0.10 à la carte, $0.16 on the Essentials plan, plus $0.12 per GB of attachments and nothing included. SendGrid Essentials starts at $19.95 a month for 50,000 to 100,000 emails, volume-priced within that band, and its Pro and Premier tiers above it carry dedicated IPs. At a million emails a month SES is a fraction of any plan-priced service; at 50,000 a month the difference is a few dollars and the product around the sending decides it.
Sending API and SMTP.
Both accept SMTP and both have an API. SES’s API is an AWS service call with IAM credentials, verified identities per region and the SDK of every AWS-supported language. SendGrid’s v3 API is a JSON endpoint with a single API key, dynamic templates, personalizations and scheduled sends. An existing SMTP integration moves to either with a credential change; an existing HTTP integration is a rewrite to SES and a smaller one to SendGrid.
SDKs.
SES is covered by every AWS SDK language, because it is an AWS service. SendGrid publishes Node, Python, PHP, Ruby, Go, Java and C#. If your stack already uses an AWS SDK, SES adds no dependency; if it does not, SendGrid’s library is the lighter import.
Webhooks and deliverability tooling.
SendGrid posts delivery, bounce and complaint webhooks configured in its dashboard and sells an email validation API on Pro and above. SES delivers the same events through SNS event destinations that you wire yourself, and offers no validation product; suppression beyond the account-level list is your code. Neither offers a pre-send check on the message itself.
Billing and SLA.
SES is billed in US dollars on the AWS bill and carries the AWS SES service level agreement. SendGrid bills in US dollars by card and states an SLA for Pro and Premier. These are the commitments each vendor publishes, not measurements of either service’s uptime.
A neutral verdict.
Pick SES if you already run on AWS, your volume makes the per-thousand price the deciding number, and you have the engineering to build suppression, event handling and a dashboard. Pick SendGrid if you want those assembled, a single API key and seven SDKs, dedicated IPs at scale, and a published SLA on the higher tiers. The cheaper transport costs engineering time; the assembled product costs a monthly plan.