Docs
Inboxes
Create, list, rename and delete inboxes. One inbox per agent, per user or per task.
An inbox is an email address your agent owns. Creating one is a single API call; there is nothing to configure on a mail server.
Create
username: the local part, lowercase letters, digits, dots, dashes and underscores. Random when empty.domain: a verified custom domain of your organization. The platform shared domain when empty.display_name: the name shown to recipients, up to 200 characters.client_id: your own identifier. Repeating it returns the existing inbox with status200instead of201, so create calls are safe to retry.
curl -s -X POST https://api.162-55-213-24.sslip.io/v0/inboxes \
-H "Authorization: Bearer $MAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "billing", "domain": "agents.your-domain.eu", "display_name": "Billing agent", "client_id": "billing"}'Errors: 403 limit_exceeded when the plan's inbox limit is reached, 403 domain_not_verified when the domain is not verified for your organization, 409 already_exists when the address is taken, 409 address_quarantined when it belonged to an inbox deleted less than 90 days ago.
Identify an inbox
Paths take the inbox email address as {inbox}, for example /v0/inboxes/billing@agents.your-domain.eu. URL encode it when your HTTP client does not do it for you.
Delete
Deleting an inbox deletes all its threads, messages and attachments, including the stored raw messages and files. It cannot be undone. The address is then reserved for 90 days: no organization can create it again in that window (409 address_quarantined), so nobody receives mail meant for the previous owner.
Endpoints
POST/v0/inboxes
Create an inbox (repeat client_id to get the same inbox)
Body (CreateInbox)
| Name | Type | Notes |
|---|---|---|
username | string | pattern ^[a-z0-9]([a-z0-9._-]{0,62}[a-z0-9])?$ |
domain | string | |
display_name | string | max length 200 |
client_id | string | pattern ^[A-Za-z0-9._~-]{1,256}$ |
Responses
200Existing inbox for this client_id: Inbox201Created: Inbox403Error envelope: Error409Error envelope: Error
GET/v0/inboxes
List inboxes, newest first
Parameters
| Name | Type | Notes |
|---|---|---|
limit | integer | in query, min 1, max 100, default 20 |
page_token | string | in query |
Responses
200OK: InboxList
GET/v0/inboxes/{inbox}
Get an inbox
Parameters
| Name | Type | Notes |
|---|---|---|
inbox | string (email) | in path, required |
Responses
200OK: Inbox404Error envelope: Error
PATCH/v0/inboxes/{inbox}
Update display name, or turn the inbox into a support intake
Parameters
| Name | Type | Notes |
|---|---|---|
inbox | string (email) | in path, required |
Body
| Name | Type | Notes |
|---|---|---|
display_name | string | max length 200 |
ticket_intake | boolean | New threads on this inbox become tickets in the support queue. |
Responses
200OK: Inbox
DELETE/v0/inboxes/{inbox}
Delete an inbox and all its mail
Parameters
| Name | Type | Notes |
|---|---|---|
inbox | string (email) | in path, required |
Responses
204Deleted404Error envelope: Error
Inbox object
| Name | Type | Notes |
|---|---|---|
id | string (uuid) | |
inbox_id | string (email) | |
email | string (email) | |
display_name | string | |
client_id | string | |
ticket_intake | boolean | New threads on this inbox become tickets. |
sending_paused_at | string (date-time) | Set when the bounce breaker paused sending (hard bounce rate above 5% over at least 20 sends in 24 hours); an operator resumes it. |
sending_paused_reason | string | |
created_at | string (date-time) | |
updated_at | string (date-time) |