Create an inbox
Create an inbox by specifying a local part (username) and a domain you’ve already verified for inbound email. You can also omitdomain_id to use the account’s shared inbound subdomain — no DNS setup required.
curl
support@yourdomain.com), status, and settings.
To create an instant inbox on the shared subdomain, omit both fields:
curl
List and search messages
List messages in an inbox with optional search and filtering:curl
- Search text —
filter[search]matches subject and message body - Sender —
filter[from]matches the sender address - Labels — only messages with specific labels
- Date range — messages received within a time window
- Read/unread — filter by read status
text_body_url and html_body_url — URLs you fetch separately. Headers, attachments, and labels are included inline.
Reply to a message
Reply to a message with a single call. The original message’sIn-Reply-To and References headers are set automatically:
curl
reply_all action to reply to all recipients. Both text and html are optional, but at least one must be present.
Forward a message
Forward a message to new recipients. The forwarded message body is prepended with your optional note:curl
Drafts
Create a draft, update it, and send it when ready:curl
POST /email_inboxes/{inbox_id}/messages/{message_id}/drafts endpoint.
Threads
Messages are grouped into threads by conversation. List threads in an inbox:curl
curl
GET /email_threads.
Labels
Organize messages and threads with labels:curl
/threads/{thread_id}/labels endpoints.
Sender filters
Control which senders can deliver to an inbox. Set a top-leveltype of allowlist or blocklist, and provide entries as an array of strings — exact email addresses or @domain wildcards:
curl
PUT to replace all filters at once, or DELETE to remove specific entries.
Mark messages as read or unread
Update the read state of a message. Setread_at to true for the current timestamp, an ISO-8601 string for a specific time, or null to mark as unread:
curl