A SendGrid alternative for developers

Looking for a SendGrid alternative after the free plan ended? Compare free tiers, inbound email, idempotency and domain setup, then migrate in an afternoon.

Updated 2026-10-25

If you are looking for a SendGrid alternative, you are probably in one of two situations: the free plan you relied on is gone, or you want a smaller, developer-first API for transactional email. api.email sends and receives email through one API, with a free tier and inbound email included. This page compares the two honestly, as of October 2026, and shows what a migration involves.

Why teams look for a SendGrid alternative

The free plan ended. Twilio retired the SendGrid free plan in May 2025 (changelog). New accounts now get a trial of 100 emails a day for 60 days, after which sending requires a paid plan; Essentials starts at $19.95 a month. Side projects, staging environments and early-stage products that sent a few hundred emails a day for free now need a budget line or a new provider.

Transactional email is a small part of a big platform. SendGrid is part of Twilio and covers marketing campaigns, contact management and SMS-adjacent products. If all you need is to send password resets and receipts, and to receive replies, a focused API can be simpler to learn and to operate.

Inbound email is a separate world. SendGrid’s Inbound Parse posts incoming messages to your URL as multipart/form-data, which your code has to unpack. Teams that build reply-by-email or support inboxes often want a JSON payload with the reply already separated from the quoted thread.

At a glance

api.email SendGrid
Free tier 3,000 emails/month, inbound included Free plan retired May 2025; 60-day trial of 100/day
Entry paid plan $20/month for 50,000 emails Essentials from $19.95/month
Receiving email JSON webhook with reply_text, attachments as URLs Inbound Parse, multipart/form-data
Domain setup Two CNAME records Domain authentication records in your DNS
Marketing campaigns No, transactional only Yes

SendGrid figures are from its public pages in October 2026.

How the APIs map

The concepts are the same, so most of a migration is renaming fields. SendGrid’s POST /v3/mail/send uses a personalizations array and a content array; api.email’s POST /v1/emails takes flat fields.

// SendGrid: POST https://api.sendgrid.com/v3/mail/send
{
  "personalizations": [{ "to": [{ "email": "[email protected]" }] }],
  "from": { "email": "[email protected]", "name": "Acme" },
  "subject": "Reset your password",
  "content": [{ "type": "text/plain", "value": "Reset it here: https://acme.com/r/8f2c" }]
}
// api.email: POST https://api.email/v1/emails
{
  "from": "Acme <[email protected]>",
  "to": "[email protected]",
  "subject": "Reset your password",
  "text": "Reset it here: https://acme.com/r/8f2c"
}

Authentication stays a bearer token in the Authorization header. A successful send returns {"id": "em_…", "status": "queued"}, and every later event about that email carries it as email_id.

Migrating in five steps

  1. Add your domain. Create the domain in api.email and add the two CNAME records it shows: one for the sending subdomain and one for DKIM. If you use Cloudflare, set both to “DNS only”. Your existing SendGrid records can stay until you switch.
  2. Change the send call. Replace the SendGrid request with POST /v1/emails as above. Map content items of type text/plain and text/html to text and html, and add an Idempotency-Key header for anything your code might retry.
  3. Map webhook events. SendGrid’s delivered, bounce, spamreport, open and click events correspond to email.delivered, email.bounced, email.complained, email.opened and email.clicked. Verify the api-email-signature header as described in the webhooks documentation.
  4. Move inbound. If you use Inbound Parse, change the MX record of your receiving domain to mx.api.email, create a route to your handler and read JSON instead of form fields.
  5. Switch traffic. Send a share of email through api.email first, compare delivery events, then move the rest and remove the old DNS records.

If your app uses SMTP, the switch is even smaller: change the host to smtp.api.email, the username to api and the password to your API key.

Deliverability during the switch

Your sender reputation is tied mostly to your domain, not to the provider: DKIM signs messages with your domain, and mailbox providers remember how recipients treat mail from it. That is why a careful switch keeps working. Move transactional traffic gradually over a few days, watch bounce and complaint events, and keep sending the same kinds of messages from the same addresses. Avoid changing your From addresses, templates and provider all on the same day, so that if something changes in delivery you know which step caused it.

What you might miss

Be clear about the trade-offs before you switch. api.email does not do marketing campaigns, contact lists or a visual newsletter editor, and it does not offer the breadth of a large platform’s ecosystem. It focuses on transactional email: sending messages your product triggers and receiving the replies. If your team runs newsletters from SendGrid, keep a marketing tool for that and move only the transactional traffic.

Ready to try it? Start with the quickstart, compare plans on the pricing page, or read how the inbound email API works.

FAQ

Is SendGrid still free?

No. Twilio retired the SendGrid free plan in May 2025. New accounts get a trial of 100 emails a day for 60 days, and paid Essentials plans start at $19.95 a month, as of October 2026.

How long does it take to switch from SendGrid?

For most apps, an afternoon: add two CNAME records for your domain, change the endpoint and the request body, and map your webhook handler to the new event names. SMTP users only change the host and credentials.

Can I receive email like SendGrid Inbound Parse?

Yes. Point an MX record at mx.api.email and create a route. Messages arrive as a JSON webhook with the reply text already separated from the quoted thread, instead of multipart form data.

Does api.email send marketing campaigns?

No. api.email is for transactional email: messages triggered by what a user does in your product. If you rely on SendGrid's marketing campaigns and contact lists, keep a marketing tool for those.

Get API key

Create your api.email account

What do you need?

Early access: accounts open in batches. By continuing you agree to the Terms and Privacy Policy.