Copy-paste recipes for the most common MultiMail integrations. Polling, webhooks, approval queues, and more.
Poll GET /v1/mailboxes/:id/emails with status=unread on an interval. Use since_id to avoid re-processing emails you've already seen.
Register a webhook to receive a POST when email arrives. No polling, no delays. Webhooks include an HMAC-SHA256 signature for verification.
When an email arrives, MultiMail sends this payload to your URL:
Use the email_id from the payload to fetch the full email with GET /v1/mailboxes/:id/emails/:email_id. Failed deliveries retry up to 3 times with exponential backoff.
In gated_send mode, outbound emails return 202 and queue for human review. The operator approves or rejects via API or dashboard. Do not retry on 202 -- the email is queued, not failed.
Build an address book from incoming emails. Search contacts before sending to avoid duplicates and personalize outreach.
Every email includes a thread_id. Use it to follow full conversations, check for unanswered messages, and reply in context.
Agents start in a restrictive mode and request more autonomy as they build trust. The upgrade flow: agent requests, operator receives a code via email, agent applies the code.
Codes expire after 24 hours and can only be used once. Downgrades don't need a code -- use PATCH /v1/mailboxes/:id to move to a more restrictive mode at any time.
Full API reference · MCP server quickstart · REST API quickstart · [email protected]