SendGrid Inbound Parse alternative

The SendGrid Inbound Parse alternative
that sends JSON.

Inbound Parse posts each email to your URL as a multipart form. GhostParse sends clean, typed JSON, signed by default, with the reply already separated from the quoted history and the sender's authentication checked for you.

What you get

Inbound email, done properly.

Starts free

1,000 emails a month on the free plan, then pay as you go: £0 a month and £1.50 per 1,000 emails, so a quiet month costs nothing.

Signed, typed JSON

Every webhook is signed (Standard Webhooks), and every field is always there: null when the email doesn't have it.

The reply, not the thread

reply_text is what the person actually wrote, with the quoted history and signatures removed.

Is the sender real?

SPF, DKIM and DMARC are checked for every email, with one verdict to trust, plus spam and virus checks.

Never stored

Email is parsed in memory and delivered. We keep a short log of metadata, never the message.

Fields, not just text

Pull order numbers, totals and tracking codes out of email with rules or AI, from ready-made parsers or your own.

Route it anywhere

Routing rules send email to your webhook, Slack, Microsoft Teams, Google Sheets, Make or n8n, with up to 100 rules on every plan.

Test on localhost

The CLI streams real email to your laptop, and simulate fires signed test webhooks offline, before you even have a domain.

Attachments to your bucket

Files can go straight to your own S3, R2, B2 or Google Cloud bucket, with download links in the webhook instead of base64.

About SendGrid

What to know about SendGrid Inbound Parse.

From SendGrid's public pages and documentation, October 2026. Plans and prices change: check SendGrid's site for the latest.

Format
SendGrid Inbound Parse posts multipart/form-data (fields such as from, to, subject, text, html, envelope, plus each attachment as a file).
Signing
SendGrid offers signature verification (ECDSA) and OAuth for Inbound Parse as a security policy you set up.
Free plan
SendGrid replaced its permanent free plan with a 60-day trial in 2025.
Switching

Move over in an afternoon.

01

Add your domain

Create a free account, add the domain (or a subdomain), and add the DNS records the dashboard shows you, automatically if you use Cloudflare.

02

Test locally first

Run npx @wildye/email-parser-cli simulate http://localhost:3000/your-endpoint to see the exact payload your code will get, signed, before any mail moves.

03

Switch the MX

Point the domain's MX record at us instead of mx.sendgrid.net, or start with a subdomain such as inbound.yourapp.com. Change your endpoint to read JSON instead of the form fields.

Field by field

Where each SendGrid Inbound Parse field is in our webhook payload.

SendGrid Inbound ParseGhostParse
from / todata.from / data.to (parsed objects, not strings)
envelope (JSON string)data.envelope
subjectdata.subject
text / htmldata.text / data.html
headers (raw text)data.headers (an object)
attachments, attachment1…data.attachments[] (filename, content_type, size, content)
SPF / dkimdata.authentication (SPF, DKIM, DMARC and an overall verdict)
(none)data.reply_text: the reply without the quoted history
Questions

Before you switch.

Can I keep sending with SendGrid?

Yes. Receiving and sending are separate: move only your inbound email (the MX record) and keep sending with SendGrid, or send with us too.

Can I try it without moving my main domain?

Yes. Use a subdomain such as inbound.yourapp.com, or your account's instant inbox address, which needs no DNS at all. Your main mailbox carries on as it is.

How do I check the webhooks are really from you?

Each webhook carries a webhook-signature header (Standard Webhooks, HMAC-SHA256). Our SDKs for Node.js, Python, PHP, Ruby and Go verify it in one line.

Do you store the emails?

No. Email is parsed in memory and delivered to you; we keep a short log of metadata (who, when, what happened), never the message itself. How we handle data.

Try it on a subdomain today.

Also compared: Postmark Inbound · Mailgun Routes.