Email receiving

Inbound email,
built for developers

Receive, store, thread, and reply to email. Structured JSON, named inboxes, Reply API, and AI agent support. No MIME parsing.

Start receiving free

Free plan available. No credit card required.

The problem

Other providers hand you a MIME payload and walk away

Legacy inbound email webhooks POST a raw payload to your server: the full MIME message, base64-encoded attachments, all headers. You are then responsible for parsing it, decoding attachments, persisting messages, grouping threads, handling duplicates, and scaling your receiver. Behind the checkbox is a basic HTTP forwarder. Nuntly handles all of that for you.

How it works

From inbox to API in five steps

01

Email arrives

An email is sent to your domain. MX records route it to Nuntly.

02

Parse and route

Nuntly parses the MIME payload and routes it to the matching inbox.

03

Store as JSON

The message is stored as structured JSON with sender, subject, body, and attachments.

04

Thread and notify

The message is grouped into a thread. A webhook event fires in real time.

05

Read and reply

Your app reads the message via REST and sends a reply with the Reply API.

Code example

Read threads and reply via REST

No MIME parsing, no base64 decoding, no infrastructure. Access messages as structured JSON and reply with a single API call.

read-and-reply.tstypescript
import { Nuntly } from '@nuntly/sdk';
const nuntly = new Nuntly({ apiKey: process.env.NUNTLY_API_KEY });
// List recent threads in an inbox
const { data: threads } = await nuntly.inbound.threads.list({
domainId: 'dom_xxx',
inboxId: 'inb_xxx',
labels: ['unread'],
});
// Fetch message content (no MIME parsing required)
const content = await nuntly.inbound.messages.content('msg_xxx');
console.log(content.text); // Plain text body
console.log(content.html); // HTML body
// Reply to a message, linked to its thread
await nuntly.inbound.messages.reply('msg_xxx', {
subject: 'Re: Your support request',
html: '<p>Thanks for reaching out. Here is how we can help...</p>',
});

Ready to receive email?

Verify your domain and start receiving in minutes.

Get started free
Features

Everything in the inbound stack

Nuntly handles every layer of inbound email, from MX routing to AI agent assignment.

Named inboxes

Create named inboxes to route incoming emails. Route support@, billing@, and hello@ to separate handlers. Default catch-all for unmatched addresses.

Automatic thread grouping

Nuntly groups emails by conversation thread automatically using In-Reply-To, References headers, and subject matching. Full conversation history via REST.

Structured message storage

Messages are stored as structured JSON with 30-day retention. Access sender, subject, headers, body, and attachments without parsing raw MIME payloads.

Reply API

Send replies programmatically, linked to the original thread. Supports reply-all and forward. Requires the domain to have sending enabled.

Real-time webhook events

Receive message.received events the moment an email arrives. Also available: message.security.flagged, message.agent.triggered, and message.sent.

AI agent support

Assign AI agents to inboxes. Agents receive structured payloads and have access to per-inbox and per-thread memory for context-aware responses.

Multi-tenant namespaces

Group inboxes into namespaces with an externalId to map your internal customer or tenant IDs. Provision per-customer receiving pipelines from a single domain.

FAQ

Frequently asked questions

Common questions about this topic.

Explore more

Get started

Ship emails,
Not infrastructure

Trusted by Echo Analytics, DiliTrust, Ogury, and 100+ developer teams.

Free plan available. No credit card required.