Inboxes
Create and manage email inboxes for your AI agents. Each inbox gets a unique email address that can send and receive messages.
All API requests require an x-api-key header. Get your key from the dashboard. The base URL for all endpoints is https://api.agentsend.io.
The Inbox Object
All endpoints that return an inbox will include the following fields.
| Field | Type | Description |
|---|---|---|
id |
uuid | Unique identifier for the inbox. |
address |
string | The full email address assigned to this inbox, e.g. a1b2c3@agentsend.io. |
displayName |
string | Human-readable name shown in the From header when sending email. |
domainId |
uuid | null | The ID of a verified custom domain, or null when using the shared AgentSend domain. |
status |
string | One of active, suspended, or deleted. |
dailySendLimit |
integer | Maximum number of messages this inbox can send per calendar day. |
sendsToday |
integer | Number of messages sent today (resets at midnight UTC). |
totalSent |
integer | Cumulative count of all messages sent from this inbox. |
bounceCount |
integer | Number of hard bounces recorded against this inbox. |
complaintCount |
integer | Number of spam complaints recorded against this inbox. |
createdAt |
string (ISO 8601) | Timestamp of when the inbox was created. |
{
"id": "3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c",
"address": "a1b2c3@agentsend.io",
"displayName": "Support Agent",
"domainId": null,
"status": "active",
"dailySendLimit": 500,
"sendsToday": 12,
"totalSent": 1847,
"bounceCount": 2,
"complaintCount": 0,
"createdAt": "2025-03-15T10:22:00Z"
}Create inbox
Provisions a new inbox and assigns it an email address. If no address is provided, a random address on the shared agentsend.io domain is generated. To use a custom domain, pass a verified domainId.
Request body
| Parameter | Type | Description |
|---|---|---|
address |
string | Desired email address (local-part only if using a custom domain, or full address). Optional — auto-generated if omitted. |
displayName |
string | Friendly name shown in the From header. Optional. |
domainId |
uuid | ID of a verified custom domain to assign to this inbox. Optional — defaults to the shared AgentSend domain. |
Returns
201 Created with the newly created Inbox object.
curl -X POST https://api.agentsend.io/inboxes \ -H "x-api-key: $AGENTSEND_API_KEY" \ -H "Content-Type: application/json" \ -d '{"displayName": "Support Agent"}'
const res = await fetch("https://api.agentsend.io/inboxes", { method: "POST", headers: { "x-api-key": process.env.AGENTSEND_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ displayName: "Support Agent", }), }); const inbox = await res.json(); // 201 Created console.log(inbox.address); // "a1b2c3@agentsend.io"
{
"id": "3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c",
"address": "a1b2c3@agentsend.io",
"displayName": "Support Agent",
"domainId": null,
"status": "active",
"dailySendLimit": 500,
"sendsToday": 0,
"totalSent": 0,
"bounceCount": 0,
"complaintCount": 0,
"createdAt": "2025-04-16T09:00:00Z"
}List inboxes
Returns a paginated list of all inboxes in your account, ordered by creation date (most recent first).
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit |
integer | 20 |
Number of inboxes to return. Maximum 100. |
offset |
integer | 0 |
Number of inboxes to skip before returning results. Use with limit for pagination. |
Returns
200 OK with a paginated envelope containing an array of Inbox objects.
curl https://api.agentsend.io/inboxes?limit=10&offset=0 \
-H "x-api-key: $AGENTSEND_API_KEY"const res = await fetch( "https://api.agentsend.io/inboxes?limit=10&offset=0", { headers: { "x-api-key": process.env.AGENTSEND_API_KEY } } ); const { data, total, limit, offset } = await res.json(); console.log(`Showing ${data.length} of ${total} inboxes`);
{
"data": [
{
"id": "3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c",
"address": "a1b2c3@agentsend.io",
"displayName": "Support Agent",
"domainId": null,
"status": "active",
"dailySendLimit": 500,
"sendsToday": 12,
"totalSent": 1847,
"bounceCount": 2,
"complaintCount": 0,
"createdAt": "2025-03-15T10:22:00Z"
}
],
"total": 1,
"limit": 10,
"offset": 0
}Get inbox
Retrieves a single inbox by its ID, including live send counters and health metrics.
Path parameters
| Parameter | Type | Description |
|---|---|---|
id required |
uuid | The ID of the inbox to retrieve. |
Returns
200 OK with the Inbox object. Returns 404 Not Found if the inbox does not exist or belongs to a different account.
curl https://api.agentsend.io/inboxes/3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c \
-H "x-api-key: $AGENTSEND_API_KEY"const inboxId = "3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c"; const inbox = await fetch( `https://api.agentsend.io/inboxes/${inboxId}`, { headers: { "x-api-key": process.env.AGENTSEND_API_KEY } } ).then(r => r.json()); console.log(inbox.status); // "active" console.log(inbox.sendsToday); // 12
{
"id": "3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c",
"address": "a1b2c3@agentsend.io",
"displayName": "Support Agent",
"domainId": null,
"status": "active",
"dailySendLimit": 500,
"sendsToday": 12,
"totalSent": 1847,
"bounceCount": 2,
"complaintCount": 0,
"createdAt": "2025-03-15T10:22:00Z"
}Delete inbox
Permanently deletes an inbox and its email address. All messages and threads associated with the inbox are also deleted. This action cannot be undone.
Deleting an inbox is irreversible. If you only need to pause sending temporarily, consider the inbox status field instead (contact support to suspend an inbox).
Path parameters
| Parameter | Type | Description |
|---|---|---|
id required |
uuid | The ID of the inbox to delete. |
Returns
204 No Content on success with an empty response body. Returns 404 Not Found if the inbox does not exist or belongs to a different account.
curl -X DELETE https://api.agentsend.io/inboxes/3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c \
-H "x-api-key: $AGENTSEND_API_KEY"const inboxId = "3a8f1c2d-4e5b-6f7a-8b9c-0d1e2f3a4b5c"; const res = await fetch( `https://api.agentsend.io/inboxes/${inboxId}`, { method: "DELETE", headers: { "x-api-key": process.env.AGENTSEND_API_KEY }, } ); // 204 No Content — no body to parse if (res.ok) console.log("Inbox deleted");