Skip to content

Provisioning API · Internal testing only

updateInbox

PATCH
/inboxes/{inb}
curl --request PATCH \
--url https://api.builders.ac/api/provisioning/v1alpha1/inboxes/inb_01k5nc9te4vr7bd2hq8ym3xz6a \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "display_name": "Ava Stone", "persona_id": "per_01k5n7qd2vb8ye4ka3mzt9rf6x", "external_id": "crm-8421" }'
inb
required
string
>= 30 characters <= 30 characters /^[iI][nN][bB]_[0-7][0-9a-hjkmnp-tv-zA-HJKMNP-TV-Z]{25}$/

Inbox TypeIDs are accepted case-insensitively. Responses use canonical lowercase.

Media typeapplication/json
object
>= 1 properties
display_name

Non-blank; changes only the stored display name, never the email address.

string
>= 1 characters <= 255 characters /^(?![\s\S]*\u0000)(?=[\s\S]*\S)[\s\S]*$/
persona_id
One of:
string
>= 30 characters <= 30 characters /^[pP][eE][rR]_[0-7][0-9a-hjkmnp-tv-zA-HJKMNP-TV-Z]{25}$/
external_id

Opaque, case-sensitive partner identifier; unique per Account among live Inboxes.

string | null
>= 1 characters <= 255 characters /^[^\u0000]+$/

Inbox updated. The password is not included.

Media typeapplication/json
object
id
required

Canonical lowercase TypeID.

string
>= 30 characters <= 30 characters /^inb_[0-7][0-9a-hjkmnp-tv-z]{25}$/
object
required
Allowed value: inbox
workspace_id
required

Canonical lowercase TypeID.

string
>= 30 characters <= 30 characters /^wsp_[0-7][0-9a-hjkmnp-tv-z]{25}$/
domain_id
required

Canonical lowercase TypeID.

string
>= 30 characters <= 30 characters /^dom_[0-7][0-9a-hjkmnp-tv-z]{25}$/
email
required

Immutable full mailbox address.

string format: email
<= 255 characters
display_name
required
string
<= 255 characters
persona_id
required
One of:

Canonical lowercase TypeID.

string
>= 30 characters <= 30 characters /^per_[0-7][0-9a-hjkmnp-tv-z]{25}$/
state
required
string
Allowed values: pending provisioning active failed deprovisioning deprovisioned
sequencer
required
One of:
object
provider
required
string
Allowed values: smartlead instantly plusvibe bison other
remote_workspace
required
string | null
remote_id
required
string | null
state
required
string
Allowed values: not_uploaded uploading uploaded failed disconnected
external_id
required
string | null
>= 1 characters <= 255 characters
created_at
required
string | null format: date-time
updated_at
required
string | null format: date-time
Example
{
"id": "inb_01k5nc9te4vr7bd2hq8ym3xz6a",
"object": "inbox",
"workspace_id": "wsp_01k5n2rf8bd3xa9e7m4jt6vq5h",
"domain_id": "dom_01k5nb3wz7q2hj8vd4rt6ye9ma",
"email": "ava.stone@northwind-outbound.com",
"display_name": "Ava Stone",
"persona_id": "per_01k5n7qd2vb8ye4ka3mzt9rf6x",
"state": "pending",
"sequencer": {
"provider": "smartlead",
"remote_workspace": "118427",
"remote_id": "9f43a1c0",
"state": "not_uploaded"
},
"external_id": "crm-8421",
"created_at": "2026-04-15T09:15:04Z",
"updated_at": "2026-04-16T11:02:37Z"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Authentication required. The example shows authentication_required; this status is also answered with invalid_api_key. Branch on code, not on the status.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/authentication_required",
"title": "Authentication required",
"status": 401,
"detail": "Provide an active Provisioning API Key as a Bearer token.",
"code": "authentication_required",
"retryable": false,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Account inactive. The example shows account_inactive; this status is also answered with insufficient_proof. Branch on code, not on the status.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/account_inactive",
"title": "Account inactive",
"status": 403,
"detail": "This account is inactive.",
"code": "account_inactive",
"retryable": false,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Not found. The example shows not_found.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/not_found",
"title": "Not found",
"status": 404,
"detail": "The requested resource was not found.",
"code": "not_found",
"retryable": false,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Request already in progress. The example shows idempotency_in_progress; this status is also answered with external_id_conflict, persona_in_use, workspace_archived, domain_not_ready, inbox_address_unavailable, operation_cancelled, resource_operation_in_progress, workspace_limit_reached, workspace_not_empty, workspace_is_default, workspace_last_active, nameservers_not_delegated, external_id_immutable, domain_already_exists, domain_unavailable, resource_quota_exceeded, domain_inbox_capacity_exceeded, domain_inbox_count_invalid, domain_not_active, domain_traffic_unavailable, redirect_not_configured, domain_not_reconnectable, account_not_provisioned, provider_account_in_use, no_inboxes_to_upload. Branch on code, not on the status.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/idempotency_in_progress",
"title": "Request already in progress",
"status": 409,
"detail": "A request using this idempotency key is still in progress.",
"code": "idempotency_in_progress",
"retryable": true,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Validation failed. The example shows validation_error; this status is also answered with idempotency_mismatch, invalid_sealed_value, mailbox_upload_unavailable, provider_credentials_invalid, domains_not_bound, sequencer_targets_mixed. Branch on code, not on the status.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/validation_error",
"title": "Validation failed",
"status": 422,
"detail": "One or more request fields are invalid.",
"code": "validation_error",
"retryable": false,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3",
"errors": {
"display_name": [
"The display name must not be blank."
]
}
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Rate limit exceeded. The example shows rate_limit_exceeded.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/rate_limit_exceeded",
"title": "Rate limit exceeded",
"status": 429,
"detail": "Too many requests were made for this policy.",
"code": "rate_limit_exceeded",
"retryable": true,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3",
"retry_after": "2026-04-15T09:16:04Z"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.

Service unavailable. The example shows service_unavailable; this status is also answered with encryption_keys_unavailable, provider_unreachable. Branch on code, not on the status.

Media typeapplication/problem+json
object
type
required
string format: uri-reference
title
required
string
status
required
integer
detail
required
string
code
required

Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.

string
retryable
required
boolean
retry_after
string format: date-time
correlation_id
required
string
errors
object
key
additional properties
Array<string>
Example
{
"type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/service_unavailable",
"title": "Service unavailable",
"status": 503,
"detail": "Retry the request later; the service is temporarily unavailable.",
"code": "service_unavailable",
"retryable": true,
"correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"
}
x-correlation-id
string

The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.