SendGrid's Inbound Parse delivers incoming mail as multipart/form-data your app has to reassemble. MailKite POSTs one parsed JSON object — text, HTML, threading, and auth results — with an HMAC signature, from a platform that isn't tied to an enterprise sending bundle.
SendGrid is a deliverability heavyweight for outbound at scale, and Inbound Parse has moved a lot of mail. The friction is in the inbound developer experience and the account model around it.
Inbound Parse posts fields as a multipart form you reassemble. MailKite gives you one JSON object with the body, headers, threading, and attachment URLs already parsed.
Every inbound event carries threadId (In-Reply-To/References) and SPF/DKIM/DMARC/spam results — so replies thread and you can trust the sender without extra lookups.
You don't buy a sending suite to receive email. Start free, receive and send from one small API, and scale on volume — not seats or add-ons.
Unlimited domains free and metered overage that never hard-cuts — instead of navigating suspensions and per-plan sending limits to keep inbound flowing.
| MailKite | SendGrid Inbound Parse | |
|---|---|---|
| Inbound payload format | Parsed JSON object | multipart/form-data fields |
| Threading (In-Reply-To) | threadId on every event | Raw headers to parse yourself |
| SPF/DKIM/DMARC results | Structured auth object | In raw headers |
| HMAC-signed webhooks | Yes, every plan | Signed-event verification available |
| Per-domain / subuser fees | None — unlimited domains | Plan- and volume-tiered |
| Send from same account | Yes — shared quota | Yes — separate sending product/limits |
| Graceful overage | Metered, no hard cut | Plan limits / suspensions |
Competitor capabilities change — we re-audit these tables regularly. Spot something out of date? Tell us and we'll fix it.
No multipart boundary parsing, no charset reconciliation, no manual header splitting — just event.from.address, event.subject, event.text, and signed attachment URLs.
POST /your-webhook
Content-Type: multipart/form-data; boundary=xYzZy
--xYzZy
Content-Disposition: form-data; name="from"
Ada <ada@example.com>
--xYzZy
Content-Disposition: form-data; name="subject"
Re: invoice #1042
--xYzZy
Content-Disposition: form-data; name="text"
Looks good — approved!
--xYzZy
Content-Disposition: form-data; name="attachment1"; filename="po.pdf"
Content-Type: application/pdf
%PDF-1.7 …binary…
--xYzZy-- (+ headers[], envelope, charsets to reconcile) POST /your-webhook Content-Type: application/json
x-mailkite-signature: t=…,v1=… (HMAC-SHA256 — verify locally)
{
"id": "msg_2Hk9…",
"type": "email.received",
"from": { "address": "ada@example.com" },
"to": [{ "address": "support@myapp.ai" }],
"subject": "Re: invoice #1042",
"text": "Looks good — approved!",
"html": "<p>Looks good — approved!</p>",
"threadId": "<a1b2c3@mail.example.com>",
"auth": { "spf": "pass", "dkim": "pass", "dmarc": "pass", "spam": "ham" },
"attachments": [
{ "filename": "po.pdf", "contentType": "application/pdf",
"size": 18213, "url": "https://api.mailkite.dev/att/2Hk9…/0?sig=…" }
]
} You shouldn't need an outbound sending suite to receive email. MailKite prices on one combined volume, with domains always free.
Add our MX records (or use a managed subdomain to start immediately). No sending plan required to receive.
Delete the form-parsing middleware. Read the JSON body directly: event.from.address, event.subject, event.text, event.attachments[].
Verify x-mailkite-signature locally, then reply through the same send API — SPF/DKIM aligned to your domain.
Multipart/form-data forces you to run a form parser, split headers out of string fields, and handle attachments as file parts. JSON gives you typed fields and signed attachment URLs directly — less code and fewer edge cases.
MailKite sends over Cloudflare's network with SPF, DKIM, and DMARC aligned to your own domain, so outbound authenticates as you. For pure high-volume marketing blasts, evaluate your needs — MailKite targets transactional and inbound-first workloads.
Yes — the Free plan includes 3,000 inbound + outbound emails a month across unlimited domains, with no sending bundle to buy.
The honest SendGrid Inbound Parse alternative →
The long-form take on our blog — receipts, runnable code, and where we won't overclaim.
Point a domain, drop in a webhook URL, receive your first email. Unlimited domains, no credit card.