Skip to content

Move reviewed resources to another project

POST
/v1/admin/orgs/{org_id}/projects/{project_id}/transfers
org_id
required
string
project_id
required
string
Idempotency-Key
string

Required unless client_id is supplied in the body.

object
client_id

Stable idempotency key for execution; required unless Idempotency-Key is sent. Reuse the same value when retrying the same request.

string
kind
required
string
Allowed values: domain inbox agent
resource_id
required
string
destination_project_id
required
string
confirm_domain_transfer

Required true at execution when the reviewed preview requires_domain_confirmation is true. Confirms every listed inbox and owner in domain_groups moves together; the preview_token binds the exact group membership.

boolean
include_related

Optionally expand persona and connection or webhook dependencies. Custom-domain inboxes always move with their entire domain group regardless of this flag.

boolean
reconfirm_drafts

Invalidate prior review assignments and mark pending drafts stale so they require a fresh review after the move. Active reviews and sends still block execution.

boolean
reauthorize_connection_ids

Explicitly consent to moving these authorizer-owned project connections to the entire destination project. Omit to retain their source project.

Array<string>
<= 100 items
preview_token

Required for execution; returned by preview. State changes require a new preview.

string

Reviewed transfer inventory and authorization impact.

object
domain_groups
required

Mandatory custom-domain groups; count inboxes and agents from their member arrays.

Array<object>
<= 100 items
object
domain_id
required
string
domain_name
required
string
inboxes
required
Array<object>
<= 100 items
object
id
required
string
name
required
string
agents
required
Array<object>
<= 100 items
object
id
required
string
name
required
string
requires_domain_confirmation
required

At least one custom domain includes multiple inboxes; execution requires confirm_domain_transfer and the matching preview_token.

boolean
webhooks
Array<object>
object
id
required
string
name
required
string
pending_drafts
integer
project_connections

Project-wide connections whose authorizer may explicitly consent to destination reach.

Array<object>
object
id
required
string
name
required
string
source_project_id
required
string
destination_project_id
required
string
domains
required
Array<object>
object
id
required
string
name
required
string
inboxes
required
Array<object>
object
id
required
string
name
required
string
agents
required
Array<object>
object
id
required
string
name
required
string
worker_keys
required
Array<object>
object
id
required
string
name
required
string
connections
required
Array<object>
object
id
required
string
name
required
string
blockers
required
Array<string>
notices
required
Array<string>
preview_token
required
string

Invalid request.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Missing or invalid credential.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Authenticated but lacking the required scope, or out of quota.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

Resource not found.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope
reason

Machine-readable quota reason. inbox_limit_exceeded means billing account inbox capacity across all organizations and projects sharing that account; enrollment_token_mailbox_budget_exhausted means the enrollment key lifetime creation allowance. Read message for recovery; inbox counts are separate from sending quotas.

string
used

Consumed plus reserved units.

integer format: int64
delta

Requested additional units.

integer format: int64
limit
integer format: int64
remaining
integer format: int64
consumed
integer format: int64
reserved
integer format: int64
next_reset_at

Next UTC usage-period boundary; pending reservations survive this boundary.

string format: date-time
upgrade_required
boolean

State changed or a transfer blocker remains. Refresh the preview.