Skip to main content
POST
Clone a pod

Authorizations

X-API-Key
string
header
required

A compute API key (x402c_...). Mint one in the dashboard under Settings -> API Keys. A signed-in compute session also works. Wallet signatures do not: they are bound to method+path+body and do not survive the internal hop, so signature callers must use the dashboard routes instead. Two extra scopes gate the dangerous powers: pods:wallet:write (pod wallet money, backup passphrase) and pods:control:write (connectors, full-power control socket).

Headers

Idempotency-Key
string
required

REQUIRED, so a retried clone never charges twice.

Path Parameters

id
string<uuid>
required

Pod id, as returned by create/list.

Body

application/json
passphrase
string
required

Your Agent Vault backup passphrase for the source pod.

Required string length: 8 - 1024
backup_id
string<uuid>

A specific completed backup of this pod. Default: the newest.

name
string

Default: the source name plus " (clone)".

Maximum string length: 120
term_hours
integer
Required range: x >= 24
region
string
max_total_usd
number
channels
object

Channel tokens for the new pod. Not copied from the source.

ai
object

Required when the source uses its own key: {mode: "byok", api_key, base_url, api}.

external_ref
string

Response

Pod created (replay: 200). Same body as create, plus clone: {source_pod_id, backup_id, restore: {status, message}}.

pod
object

The public projection of a pod on /pods/v1. An allowlist: it never carries the engine, its version, the provider, the region, the machine plan, the IP, or any credential, so the pod's implementation can change without breaking your integration.

clone
object