Skip to main content
Inbound email to any of your inboxes is parsed, threaded, and delivered to you two ways: webhooks (push, recommended) or polling with GET /messages.

Register a webhook

The response returns a signing secret — shown once. Store it; you’ll use it to verify every delivery.

Events

Payload & signature

Each delivery is a JSON POST with two headers:
The body is { "event": "...", ...payload }. Verify it by computing an HMAC-SHA256 of the raw request body with your webhook secret:
Verify the signature on every request and reject mismatches. Always hash the raw body bytes — re-serializing the JSON will change the signature.

Delivery & retries

Deliveries are retried with backoff on non-2xx responses, so your endpoint can be briefly unavailable without losing events. Respond 2xx quickly (do heavy work async). Attachment metadata — including short-lived signed download URLs — is included in the payload; see Attachments.

Polling alternative

No public endpoint? Poll recent mail instead: