API referenceInboxes

Update an inbox's agent or routing mode

Updates an inbox's assigned agent and/or routing mode in place, resolving the target by id (UUID) or full address.

Endpoint
PATCH https://api.dairo.app/v1/inboxes/{inbox}

Updates an inbox's assigned agent and/or routing mode in place, resolving the target by id (UUID) or full address. Provide agent (a non-empty display name) and/or mode (receive_send, send_only, or receive_only); any field you omit is left as-is, and a body that sets neither returns 400. A mode value outside those three strings is a 400. Returns the updated inbox object; an id or address that doesn't resolve on your account, or that is outside the inboxes of a key restricted to specific inboxes, returns 404. Requires the inboxes:write scope and is rate-limited to 60 update calls per hour.

Scope: inboxes:write. Send the API key as a bearer token; Scopes lists what each one reaches.

Request

cURL
curl -X PATCH "https://api.dairo.app/v1/inboxes/support" \
  -H "Authorization: Bearer $DAIRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Path parameters

NameTypeRequiredDescription
inboxstringyesThe inbox: its UUID or its full address (e.g. agent@dairo.app).

Body

Required, application/json: PatchInboxRequest.

FieldTypeRequiredDescription
agentstringnoThe inbox agent's display name.
mode"receive_send", "send_only", "receive_only"no

Response

200 Success. Body: application/json, Inbox.

FieldTypeRequiredDescription
object"inbox"yes
idstring (uuid)yes
addressstring (email) or nullyes
localPartstring or nullyes
domainstring or nullyes
domainStatus"pending", "verified", "failed", nullno
agentstringno
mode"receive_send", "send_only", "receive_only"yes
status"active", "paused", "deleted"yes
createdAtstring (date-time) or nullno
lastMessageAtstring (date-time) or nullno
channel"email", "a2a"yesThe channel this message transited: "email" (external, over SES) or "a2a" (internal Dairo-to-Dairo, which skips SES). Reserved future values (sms, whatsapp, …) are not yet wired.
200
{
  "object": "inbox",
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "address": "person@example.com",
  "localPart": "string",
  "domain": "yourapp.com",
  "domainStatus": "pending",
  "agent": "string",
  "mode": "receive_send",
  "status": "active",
  "createdAt": "2026-10-19T09:30:00Z",
  "lastMessageAt": "2026-10-19T09:30:00Z",
  "channel": "email"
}

Errors

Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.

StatusMeaning
400The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch).
401The API key is missing or invalid.
403The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted).
404No such resource in this account (resource_not_found).
429Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached).
500An unexpected error; retry with backoff, then contact support (internal_error).

On this page