Skip to main content

Email Infrastructure Made Simple

Stop juggling email providers. Start building. Inbound gives you programmable email addresses that automatically process incoming messages and trigger webhooks in your app. Think of it as email infrastructure that actually works the way you’d want it to.

Send & Receive Emails

Send transactional emails and receive webhooks for incoming messages with a simple API

Webhook Processing

Automatically parse and route incoming emails to your webhook endpoints with full email content

Domain Management

Add and verify your own domains with automated DNS configuration and monitoring

Email Parsing

Full HTML/text extraction, attachment handling, and spam filtering built-in

What is Inbound?

Inbound is a modern email infrastructure platform that provides:
  • REST API with OpenAPI specification for easy integration
  • Webhooks with signature verification for real-time email processing
  • Email parsing with automatic HTML/text extraction
  • Attachment handling with S3 storage and download URLs
  • Spam filtering and comprehensive security checks
  • Domain verification and DNS management
  • Usage tracking and billing integration

Why Use Inbound?

Create unlimited email addresses that automatically trigger webhooks in your application. No manual forwarding or IMAP polling required.
Built on AWS SES with automatic scaling, deliverability monitoring, and reputation management. Focus on your product, not email infrastructure.
Simple SDK, comprehensive API documentation, and TypeScript support. Get from API key to working code in under 5 minutes.
Automatic parsing, attachment handling, spam filtering, and thread management. Everything you need to handle emails in your app.

Quick Example

Send an email and receive webhooks for replies:
import { Inbound } from 'inboundemail'

const inbound = new Inbound(process.env.INBOUND_API_KEY)

// Send an email
const email = await inbound.emails.send({
  from: 'Inbound User <[email protected]>',
  to: '[email protected]',
  subject: 'Welcome!',
  html: '<p>Thanks for signing up!</p>',
  tags: [{ name: 'campaign', value: 'welcome' }]
})

console.log(`Email sent: ${email.id}`)
Receive and process incoming emails:
import { NextRequest, NextResponse } from 'next/server'
import { Inbound, isInboundWebhookPayload } from 'inboundemail'

const inbound = new Inbound(process.env.INBOUND_API_KEY)

export async function POST(request: NextRequest) {
  const payload = await request.json()
  
  if (!isInboundWebhookPayload(payload)) {
    return NextResponse.json({ error: 'Invalid webhook' }, { status: 400 })
  }
  
  const { email } = payload
  console.log(`📧 Received: ${email.subject} from ${email.from?.addresses?.[0]?.address}`)
  
  // Auto-reply to support emails
  if (email.subject?.toLowerCase().includes('support')) {
    await inbound.reply(email, {
      from: '[email protected]',
      text: 'Thanks for contacting support! We\'ll get back to you within 24 hours.'
    })
  }
  
  return NextResponse.json({ success: true })
}

Key Benefits

No Infrastructure Management

Skip the complexity of managing email servers, DNS records, and deliverability. We handle it all.

Instant Webhook Delivery

Receive parsed email content in your webhook endpoint within milliseconds of delivery.

Built-in Security

Automatic spam filtering, virus scanning, SPF/DKIM/DMARC verification on all incoming emails.

Flexible Email Routing

Route different email addresses to different webhooks. Perfect for multi-tenant applications.

Next Steps

Quickstart

Get started with Inbound in under 5 minutes

API Reference

Explore the complete API documentation

SDK Documentation

Learn about the TypeScript SDK features

Webhook Examples

See real-world webhook processing examples
Ready to get started? Sign up at inbound.new and get your API key.

Build docs developers (and LLMs) love