Developers

Webhooks

Receive inbound email events at your endpoint the moment they happen. Every delivery is signed, retried on failure, and replayable from the dashboard.

Events

Subscribe to the events you care about when you create a webhook endpoint.

EventFires when
message.receivedA new inbound message is parsed and ready.
message.routedA routing rule matched and acted on a message.
delivery.failedA forward or webhook delivery exhausted its retries.

Payload

Each delivery is a JSON POST. The body is stable and versioned, so you can parse it with confidence.

{
  "event": "message.received",
  "domain": "acme.com",
  "to": "invoices@acme.com",
  "from": "vendor@example.com",
  "subject": "Invoice #1042 attached",
  "routing_rule": "invoices-to-erp",
  "received_at": "2026-05-10T14:22:31Z"
}

Signing

Every request carries an InletOps-Signature header computed over the raw body with your endpoint's signing secret. Verify it before trusting the payload, and reject anything that does not match.

InletOps-Signature: t=1715351,
  v1=4f9a…c2

Retries & replay

If your endpoint returns a non-2xx status or times out, InletOps retries with exponential backoff over several hours. Because delivery is at-least-once, make your handler idempotent by keying on the event id.

  • Automatic retries with backoff and jitter.
  • One-click replay of any past event from the dashboard.
  • Searchable delivery logs with status and response codes.
Get started

Make inbound email programmable.

Turn email-driven workflows into structured, observable automation.

Try it for free