curl --request POST \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/migration-assistant \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--json '{"region":"us-east1"}'{
"bucket_grantee": "arn:aws:iam::123456789012:role/example-role",
"cluster_id": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"created_at": "2026-07-30T18:00:00Z",
"deployed_region": "us-east1",
"health": "HEALTHY",
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"last_error": "",
"password": "example_password",
"status": "RUNNING",
"updated_at": "2026-07-30T18:05:00Z",
"url": "https://molt-ai.example.crdb.io",
"username": "example_username"
}{
"code": 123,
"details": [
{
"@type": "<string>"
}
],
"message": "<string>"
}Provision a Migration Assistant for a cluster.
The assistant is a per-cluster, dedicated-cluster-only migration tool. Poll GetMigrationAssistant until its status is RUNNING to retrieve the URL and credentials used to sign in, or FAILED to inspect last_error.
Can be used by the following roles assigned at the organization, folder or cluster scope:
- ORG_ADMIN
- CLUSTER_ADMIN
curl --request POST \
--url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/migration-assistant \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--json '{"region":"us-east1"}'{
"bucket_grantee": "arn:aws:iam::123456789012:role/example-role",
"cluster_id": "9f8e7d6c-5b4a-3210-fedc-ba9876543210",
"created_at": "2026-07-30T18:00:00Z",
"deployed_region": "us-east1",
"health": "HEALTHY",
"id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"last_error": "",
"password": "example_password",
"status": "RUNNING",
"updated_at": "2026-07-30T18:05:00Z",
"url": "https://molt-ai.example.crdb.io",
"username": "example_username"
}{
"code": 123,
"details": [
{
"@type": "<string>"
}
],
"message": "<string>"
}Authorizations
Body
CreateMigrationAssistantRequest provisions a Migration Assistant on a cluster.
The cluster region to deploy into. Optional; empty selects a default region (the cluster's first region ordered by locality, which is not necessarily its original primary region). Must be one of the cluster's existing regions. The chosen region is reported as the assistant's deployed_region.
Response
A successful response.
MigrationAssistant is a per-cluster migration assistant deployment. The url, username, password, and bucket_grantee are populated only while the status is RUNNING. The last_error is populated only when the status is FAILED.
- NOT_COMPUTED: Health is not computed; the assistant is not RUNNING.
- HEALTHY: The assistant is ready and serving.
- UNAVAILABLE: The assistant is RUNNING but not currently serving. This is usually transient (for example, its pod is restarting); retry shortly.
- UNKNOWN: The live health probe could not be reached, so serving health is not known. This is usually transient; retry shortly.
NOT_COMPUTED, HEALTHY, UNAVAILABLE, UNKNOWN - PENDING: The assistant has been requested and is being provisioned.
- RUNNING: The assistant is ready; its URL and credentials are available.
- DELETING: Deletion has been requested and is in progress.
- FAILED: A provisioning or deletion operation failed; see last_error.
PENDING, RUNNING, DELETING, FAILED 
