Creates a durable snapshot from a running sandbox in the current tenant.
The snapshot can be queried immediately, while creation completes asynchronously.
Poll GET /snapshots/ until status becomes ready or error.
A ready snapshot can be supplied as snapshot_id to POST /sandboxes.
A snapshot captures the sandbox filesystem only: running processes and
in-memory state are not preserved, and a sandbox created from it boots fresh
from the saved disk. The source sandbox keeps running.
If snapshot creation is unsupported for the source sandbox, the request
returns 422 Snapshot.UnsupportedOnProvider.
Idempotency-Key is optional. Within the 24-hour deduplication window,
repeating a key with identical parameters returns the same snapshot with its
current status and Idempotency-Replayed: true, including while creating
and after it becomes ready. Different parameters return 400
Sandbox.IdempotentParameterMismatch. Without the header, no deduplication
is performed.
The source sandbox must be running, otherwise 409 Snapshot.SourceNotRunning.
While another snapshot of the same sandbox is being created, a new request
may return 409 Snapshot.CreateInProgress, including temporarily after a
previous snapshot was cancelled with DELETE. Wait before retrying and ensure
the source sandbox is running.
A definitive snapshot creation failure returns 201 with a queryable snapshot in
error and failure_code: Snapshot.ProviderCreateFailed. Replaying that
key returns the same error snapshot without creating another.
Some failed creation attempts consume the idempotency key; replay returns
409 Sandbox.IdempotentKeyConsumed. Error details include failure_code
and snapshot_id; the failed snapshot remains readable through GET.
Retry with a new Idempotency-Key. A deleted snapshot also consumes its
original key.
Non-empty names are case-sensitive and unique within the organization across
all IDCs. A name held by another snapshot returns 409 Resource.AlreadyExists.
Empty names may be shared. Creation failure clears the name atomically;
the failed record remains readable by snapshot_id. Use a new Idempotency-Key
to retry with the same name once the source sandbox is running again.
Name release does not change whether a key can be replayed. A definitive
Snapshot.ProviderCreateFailed result remains replayable and returns the
current record, whose name is cleared on failure. Failures detected while
the create request is being handled, such as a source lease or workflow
handoff failure, consume the key; replay returns 409
Sandbox.IdempotentKeyConsumed without a snapshot record. Failures settled
later in the background, such as a failed creation workflow or an expired
creation deadline, leave the key replayable; replay returns the current
error record with its cleared name.
Use snapshot_id to query a failed attempt; use a new key to create another.
Optional caller-generated idempotency key (a UUID is recommended).
Matched byte-for-byte: 1-64 printable ASCII characters, no whitespace.
Absent means no deduplication. The same key with a different request
body returns 400 Sandbox.IdempotentParameterMismatch. Echoed on
responses; replays add Idempotency-Replayed: true. Keys are remembered
for 24 hours.
Customer-defined name. Leading and trailing whitespace is removed;
whitespace-only names become empty.
Non-empty names are unique within the organization across all IDCs;
conflicts return 409 Resource.AlreadyExists. Creation failure clears the name.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"GMI Cloud Documentation","description":"Inference Endpoints, GPU Compute, AI Workflows, and Agent Deployment","colors":{"primary":"#6e7a0e","light":"#DDEA4E","dark":"#DDEA4E"},"logo":{"light":"https://mintcdn.com/gmicloud/NMovxHyNviV7LUYd/logo/gmi-cloud-logo.svg?fit=max\u0026auto=format\u0026n=NMovxHyNviV7LUYd\u0026q=85\u0026s=17a2b497b7719739248dfca2ae9d6c4a","dark":"https://mintcdn.com/gmicloud/NMovxHyNviV7LUYd/logo/gmi-logo-white.svg?fit=max\u0026auto=format\u0026n=NMovxHyNviV7LUYd\u0026q=85\u0026s=aa77416cbe67a81b8e7029a8425d31e9"},"favicon":{"light":"https://mintcdn.com/gmicloud/np5vsfVwdGGHAKEu/favicon.ico?fit=max\u0026auto=format\u0026n=np5vsfVwdGGHAKEu\u0026q=85\u0026s=ceee7fb6e73ccace00b3b7cf8b040dc3","dark":"https://mintcdn.com/gmicloud/np5vsfVwdGGHAKEu/favicon.ico?fit=max\u0026auto=format\u0026n=np5vsfVwdGGHAKEu\u0026q=85\u0026s=ceee7fb6e73ccace00b3b7cf8b040dc3"},"navbar":{"links":[{"href":"https://discord.gg/TkBT7r2D97","label":"Discord"},{"href":"https://github.com/GMISWE","label":"GitHub"},{"href":"https://www.gmicloud.ai/contact#sales","label":"Support"}],"primary":{"type":"button","label":"Open Console","href":"https://console.gmicloud.ai/"}},"footer":{"socials":{"discord":"https://discord.gg/TkBT7r2D97","x":"https://x.com/gmi_cloud","github":"https://github.com/GMISWE","linkedin":"https://www.linkedin.com/company/gmi-cloud-ai","youtube":"https://www.youtube.com/@GMICloud"}},"fonts":{"family":"https://fonts.googleapis.com/css2?family=DM+Sans"},"integrations":{"gtm":{"tagId":"GTM-P5WZVMXP"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"gmicloud","hasAudioNarration":false,"actualSubdomain":"gmicloud","customDomains":["docs.gmicloud.ai"],"gitSource":{"type":"gitlab","owner":"product-center","repo":"mintlify-doc-site","deployBranch":"main","contentDirectory":"","isPrivate":true,"projectId":73773841,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae39866b150d6fc53036f23","collectionId":"cffa4653-0bca-48cc-bb56-a5cc0f6d43d3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae39866b150d6fc53036f23"},"entitlements":{},"buildId":"6ae4878f516c780aa3755d08","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Guides","count":236},{"language":"default","tag":"Model Quickstarts","count":222},{"language":"default","tag":"Video","count":94},{"language":"default","tag":"API Reference","count":77},{"language":"default","tag":"Text","count":75},{"language":"default","tag":"GMI Agentbox","count":50},{"language":"default","tag":"GMI Studio","count":46},{"language":"default","tag":"Compute Service APIs","count":41},{"language":"default","tag":"Node Reference","count":38},{"language":"default","tag":"Image","count":34}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a:has(>span.bg-primary-dark) .text-white,a:has(>span.bg-primary-dark) svg{color:#000!important}"}],"page":{"pagePath":"agentbox-api/sandboxsnapshot/create-a-durable-snapshot","slug":"/agentbox-api/sandboxsnapshot/create-a-durable-snapshot","pageMetadata":{"title":"Create a durable snapshot","description":"Creates a durable snapshot from a running sandbox in the current tenant.\nThe snapshot can be queried immediately, while creation completes asynchronously.\nPoll GET /snapshots/{snapshot_id} until `status` becomes `ready` or `error`.\nA ready snapshot can be supplied as `snapshot_id` to POST /sandboxes.\nA snapshot captures the sandbox filesystem only: running processes and\nin-memory state are not preserved, and a sandbox created from it boots fresh\nfrom the saved disk. The source sandbox keeps running.\nIf snapshot creation is unsupported for the source sandbox, the request\nreturns 422 `Snapshot.UnsupportedOnProvider`.\n\n`Idempotency-Key` is optional. Within the 24-hour deduplication window,\nrepeating a key with identical parameters returns the same snapshot with its\ncurrent status and `Idempotency-Replayed: true`, including while `creating`\nand after it becomes `ready`. Different parameters return 400\n`Sandbox.IdempotentParameterMismatch`. Without the header, no deduplication\nis performed.\n\nThe source sandbox must be `running`, otherwise 409 `Snapshot.SourceNotRunning`.\nWhile another snapshot of the same sandbox is being created, a new request\nmay return 409 `Snapshot.CreateInProgress`, including temporarily after a\nprevious snapshot was cancelled with DELETE. Wait before retrying and ensure\nthe source sandbox is `running`.\n\nA definitive snapshot creation failure returns 201 with a queryable snapshot in\n`error` and `failure_code: Snapshot.ProviderCreateFailed`. Replaying that\nkey returns the same error snapshot without creating another.\n\nSome failed creation attempts consume the idempotency key; replay returns\n409 `Sandbox.IdempotentKeyConsumed`. Error details include `failure_code`\nand `snapshot_id`; the failed snapshot remains readable through GET.\nRetry with a new `Idempotency-Key`. A deleted snapshot also consumes its\noriginal key.\n\nNon-empty names are case-sensitive and unique within the organization across\nall IDCs. A name held by another snapshot returns 409 `Resource.AlreadyExists`.\nEmpty names may be shared. Creation failure clears the name atomically;\nthe failed record remains readable by snapshot_id. Use a new Idempotency-Key\nto retry with the same name once the source sandbox is running again.\nName release does not change whether a key can be replayed. A definitive\nSnapshot.ProviderCreateFailed result remains replayable and returns the\ncurrent record, whose name is cleared on failure. Failures detected while\nthe create request is being handled, such as a source lease or workflow\nhandoff failure, consume the key; replay returns 409\nSandbox.IdempotentKeyConsumed without a snapshot record. Failures settled\nlater in the background, such as a failed creation workflow or an expired\ncreation deadline, leave the key replayable; replay returns the current\nerror record with its cleared name.\nUse snapshot_id to query a failed attempt; use a new key to create another.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /snapshots","href":"/agentbox-api/sandboxsnapshot/create-a-durable-snapshot","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a durable snapshot from a running sandbox in the current tenant.\\nThe snapshot can be queried immediately, while creation completes asynchronously.\\nPoll GET /snapshots/\", \" until \", _jsx(_components.code, {\n children: \"status\"\n }), \" becomes \", _jsx(_components.code, {\n children: \"ready\"\n }), \" or \", _jsx(_components.code, {\n children: \"error\"\n }), \".\\nA ready snapshot can be supplied as \", _jsx(_components.code, {\n children: \"snapshot_id\"\n }), \" to POST /sandboxes.\\nA snapshot captures the sandbox filesystem only: running processes and\\nin-memory state are not preserved, and a sandbox created from it boots fresh\\nfrom the saved disk. The source sandbox keeps running.\\nIf snapshot creation is unsupported for the source sandbox, the request\\nreturns 422 \", _jsx(_components.code, {\n children: \"Snapshot.UnsupportedOnProvider\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" is optional. Within the 24-hour deduplication window,\\nrepeating a key with identical parameters returns the same snapshot with its\\ncurrent status and \", _jsx(_components.code, {\n children: \"Idempotency-Replayed: true\"\n }), \", including while \", _jsx(_components.code, {\n children: \"creating\"\n }), \"\\nand after it becomes \", _jsx(_components.code, {\n children: \"ready\"\n }), \". Different parameters return 400\\n\", _jsx(_components.code, {\n children: \"Sandbox.IdempotentParameterMismatch\"\n }), \". Without the header, no deduplication\\nis performed.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The source sandbox must be \", _jsx(_components.code, {\n children: \"running\"\n }), \", otherwise 409 \", _jsx(_components.code, {\n children: \"Snapshot.SourceNotRunning\"\n }), \".\\nWhile another snapshot of the same sandbox is being created, a new request\\nmay return 409 \", _jsx(_components.code, {\n children: \"Snapshot.CreateInProgress\"\n }), \", including temporarily after a\\nprevious snapshot was cancelled with DELETE. Wait before retrying and ensure\\nthe source sandbox is \", _jsx(_components.code, {\n children: \"running\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A definitive snapshot creation failure returns 201 with a queryable snapshot in\\n\", _jsx(_components.code, {\n children: \"error\"\n }), \" and \", _jsx(_components.code, {\n children: \"failure_code: Snapshot.ProviderCreateFailed\"\n }), \". Replaying that\\nkey returns the same error snapshot without creating another.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Some failed creation attempts consume the idempotency key; replay returns\\n409 \", _jsx(_components.code, {\n children: \"Sandbox.IdempotentKeyConsumed\"\n }), \". Error details include \", _jsx(_components.code, {\n children: \"failure_code\"\n }), \"\\nand \", _jsx(_components.code, {\n children: \"snapshot_id\"\n }), \"; the failed snapshot remains readable through GET.\\nRetry with a new \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \". A deleted snapshot also consumes its\\noriginal key.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Non-empty names are case-sensitive and unique within the organization across\\nall IDCs. A name held by another snapshot returns 409 \", _jsx(_components.code, {\n children: \"Resource.AlreadyExists\"\n }), \".\\nEmpty names may be shared. Creation failure clears the name atomically;\\nthe failed record remains readable by snapshot_id. Use a new Idempotency-Key\\nto retry with the same name once the source sandbox is running again.\\nName release does not change whether a key can be replayed. A definitive\\nSnapshot.ProviderCreateFailed result remains replayable and returns the\\ncurrent record, whose name is cleared on failure. Failures detected while\\nthe create request is being handled, such as a source lease or workflow\\nhandoff failure, consume the key; replay returns 409\\nSandbox.IdempotentKeyConsumed without a snapshot record. Failures settled\\nlater in the background, such as a failed creation workflow or an expired\\ncreation deadline, leave the key replayable; replay returns the current\\nerror record with its cleared name.\\nUse snapshot_id to query a failed attempt; use a new key to create another.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create a durable snapshot","description":"Creates a durable snapshot from a running sandbox in the current tenant.\nThe snapshot can be queried immediately, while creation completes asynchronously.\nPoll GET /snapshots/{snapshot_id} until `status` becomes `ready` or `error`.\nA ready snapshot can be supplied as `snapshot_id` to POST /sandboxes.\nA snapshot captures the sandbox filesystem only: running processes and\nin-memory state are not preserved, and a sandbox created from it boots fresh\nfrom the saved disk. The source sandbox keeps running.\nIf snapshot creation is unsupported for the source sandbox, the request\nreturns 422 `Snapshot.UnsupportedOnProvider`.\n\n`Idempotency-Key` is optional. Within the 24-hour deduplication window,\nrepeating a key with identical parameters returns the same snapshot with its\ncurrent status and `Idempotency-Replayed: true`, including while `creating`\nand after it becomes `ready`. Different parameters return 400\n`Sandbox.IdempotentParameterMismatch`. Without the header, no deduplication\nis performed.\n\nThe source sandbox must be `running`, otherwise 409 `Snapshot.SourceNotRunning`.\nWhile another snapshot of the same sandbox is being created, a new request\nmay return 409 `Snapshot.CreateInProgress`, including temporarily after a\nprevious snapshot was cancelled with DELETE. Wait before retrying and ensure\nthe source sandbox is `running`.\n\nA definitive snapshot creation failure returns 201 with a queryable snapshot in\n`error` and `failure_code: Snapshot.ProviderCreateFailed`. Replaying that\nkey returns the same error snapshot without creating another.\n\nSome failed creation attempts consume the idempotency key; replay returns\n409 `Sandbox.IdempotentKeyConsumed`. Error details include `failure_code`\nand `snapshot_id`; the failed snapshot remains readable through GET.\nRetry with a new `Idempotency-Key`. A deleted snapshot also consumes its\noriginal key.\n\nNon-empty names are case-sensitive and unique within the organization across\nall IDCs. A name held by another snapshot returns 409 `Resource.AlreadyExists`.\nEmpty names may be shared. Creation failure clears the name atomically;\nthe failed record remains readable by snapshot_id. Use a new Idempotency-Key\nto retry with the same name once the source sandbox is running again.\nName release does not change whether a key can be replayed. A definitive\nSnapshot.ProviderCreateFailed result remains replayable and returns the\ncurrent record, whose name is cleared on failure. Failures detected while\nthe create request is being handled, such as a source lease or workflow\nhandoff failure, consume the key; replay returns 409\nSandbox.IdempotentKeyConsumed without a snapshot record. Failures settled\nlater in the background, such as a failed creation workflow or an expired\ncreation deadline, leave the key replayable; replay returns the current\nerror record with its cleared name.\nUse snapshot_id to query a failed attempt; use a new key to create another.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /snapshots","href":"/agentbox-api/sandboxsnapshot/create-a-durable-snapshot","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/gmicloud/fa3784330bb16240/syft.js"],"openApiReferenceData":{"operation":{"tags":["SandboxSnapshot"],"summary":"Create a durable snapshot","description":"Creates a durable snapshot from a running sandbox in the current tenant.\nThe snapshot can be queried immediately, while creation completes asynchronously.\nPoll GET /snapshots/{snapshot_id} until `status` becomes `ready` or `error`.\nA ready snapshot can be supplied as `snapshot_id` to POST /sandboxes.\nA snapshot captures the sandbox filesystem only: running processes and\nin-memory state are not preserved, and a sandbox created from it boots fresh\nfrom the saved disk. The source sandbox keeps running.\nIf snapshot creation is unsupported for the source sandbox, the request\nreturns 422 `Snapshot.UnsupportedOnProvider`.\n\n`Idempotency-Key` is optional. Within the 24-hour deduplication window,\nrepeating a key with identical parameters returns the same snapshot with its\ncurrent status and `Idempotency-Replayed: true`, including while `creating`\nand after it becomes `ready`. Different parameters return 400\n`Sandbox.IdempotentParameterMismatch`. Without the header, no deduplication\nis performed.\n\nThe source sandbox must be `running`, otherwise 409 `Snapshot.SourceNotRunning`.\nWhile another snapshot of the same sandbox is being created, a new request\nmay return 409 `Snapshot.CreateInProgress`, including temporarily after a\nprevious snapshot was cancelled with DELETE. Wait before retrying and ensure\nthe source sandbox is `running`.\n\nA definitive snapshot creation failure returns 201 with a queryable snapshot in\n`error` and `failure_code: Snapshot.ProviderCreateFailed`. Replaying that\nkey returns the same error snapshot without creating another.\n\nSome failed creation attempts consume the idempotency key; replay returns\n409 `Sandbox.IdempotentKeyConsumed`. Error details include `failure_code`\nand `snapshot_id`; the failed snapshot remains readable through GET.\nRetry with a new `Idempotency-Key`. A deleted snapshot also consumes its\noriginal key.\n\nNon-empty names are case-sensitive and unique within the organization across\nall IDCs. A name held by another snapshot returns 409 `Resource.AlreadyExists`.\nEmpty names may be shared. Creation failure clears the name atomically;\nthe failed record remains readable by snapshot_id. Use a new Idempotency-Key\nto retry with the same name once the source sandbox is running again.\nName release does not change whether a key can be replayed. A definitive\nSnapshot.ProviderCreateFailed result remains replayable and returns the\ncurrent record, whose name is cleared on failure. Failures detected while\nthe create request is being handled, such as a source lease or workflow\nhandoff failure, consume the key; replay returns 409\nSandbox.IdempotentKeyConsumed without a snapshot record. Failures settled\nlater in the background, such as a failed creation workflow or an expired\ncreation deadline, leave the key replayable; replay returns the current\nerror record with its cleared name.\nUse snapshot_id to query a failed attempt; use a new key to create another.\n","operationId":"createSandboxSnapshot","parameters":["cf7d1c6a-d1da-4ded-8b3c-3c5bcaa6702f"],"requestBody":"956303ea-9ffe-4a8a-9382-89415a5d57e4","responses":{"201":"cdbe3dd5-87cc-42a1-b0dd-5101455792d8","400":"b249a565-f116-45b4-b2f6-6488c5cc33db","401":"b4762eea-7fd1-400a-8ce7-cd55cd81ad82","403":"fa12271c-026e-479c-a83f-d7f25c482533","404":"3a5c1df4-270e-4491-b7c2-7d9fcc99590d","409":"21386f6c-f875-4612-8a6a-bf5e5a7beb9d","422":"f15c4d17-563d-484c-b5a8-62a549c639d3","500":"3b6ee354-2fcf-4bdf-a0f8-82d076cf1e6c"},"method":"post","type":"path","servers":["f4224fd0-c6e4-4efe-8420-8b23a5d9c9bb"],"security":["79078e5c-3ec2-43f2-9339-906a68febafe"],"path":"/snapshots","baseUrlOptions":["https://console.gmicloud.ai/api/v2"],"title":"Create a durable snapshot","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"cf7d1c6a-d1da-4ded-8b3c-3c5bcaa6702f":{"name":"Idempotency-Key","in":"header","required":false,"description":"Optional caller-generated idempotency key (a UUID is recommended).\nMatched byte-for-byte: 1-64 printable ASCII characters, no whitespace.\nAbsent means no deduplication. The same key with a different request\nbody returns 400 Sandbox.IdempotentParameterMismatch. Echoed on\nresponses; replays add Idempotency-Replayed: true. Keys are remembered\nfor 24 hours.\n","schema":{"type":"string","minLength":1,"maxLength":64,"isRequired":false,"description":"Optional caller-generated idempotency key (a UUID is recommended).\nMatched byte-for-byte: 1-64 printable ASCII characters, no whitespace.\nAbsent means no deduplication. The same key with a different request\nbody returns 400 Sandbox.IdempotentParameterMismatch. Echoed on\nresponses; replays add Idempotency-Replayed: true. Keys are remembered\nfor 24 hours.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sandbox_id"],"properties":{"sandbox_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"sandbox_id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","maxLength":255,"description":"Customer-defined name. Leading and trailing whitespace is removed;\nwhitespace-only names become empty.\nNon-empty names are unique within the organization across all IDCs;\nconflicts return 409 Resource.AlreadyExists. Creation failure clears the name.\n","uniqueKey":"name","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"sandbox_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","name":"\u003cstring>","metadata":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"cdbe3dd5-87cc-42a1-b0dd-5101455792d8":{"description":"Snapshot record is addressable; status may be creating, ready, or error.","headers":{"Idempotency-Replayed":{"description":"Present and true when the original request was replayed.","schema":{"type":"boolean"}},"Idempotency-Key":{"description":"The accepted idempotency key, when supplied.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["request_id","data"],"properties":{"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"data":{"type":"object","required":["snapshot_id","idc_name","name","status","source_sandbox_id","source_template_id","source_build_id","vcpu","ram_mb","disk_size_mb","architecture","metadata","created_at","updated_at"],"properties":{"snapshot_id":{"type":"string","format":"uuid","description":"Stable durable snapshot identifier.","isRequired":true,"uniqueKey":"data.snapshot_id","typeLabel":"string\u003cuuid>"},"idc_name":{"type":"string","isRequired":true,"uniqueKey":"data.idc_name","typeLabel":"string"},"name":{"type":"string","maxLength":255,"isRequired":true,"uniqueKey":"data.name","typeLabel":"string"},"status":{"type":"string","enum":["creating","ready","error","deleting","delete_failed"],"isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"source_sandbox_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.source_sandbox_id","typeLabel":"string\u003cuuid>"},"source_template_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.source_template_id","typeLabel":"string\u003cuuid>"},"source_build_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"data.source_build_id","typeLabel":"string\u003cuuid>"},"vcpu":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"data.vcpu","typeLabel":"integer\u003cint64>"},"ram_mb":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"data.ram_mb","typeLabel":"integer\u003cint64>"},"disk_size_mb":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"data.disk_size_mb","typeLabel":"integer\u003cint64>"},"architecture":{"type":"string","isRequired":true,"uniqueKey":"data.architecture","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"data.metadata.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.metadata","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"},"product":{"type":"string","description":"Catalog SKU inherited from the source sandbox, when available.","uniqueKey":"data.product","typeLabel":"string"},"product_name":{"type":"string","description":"Product display name inherited from the source sandbox.","uniqueKey":"data.product_name","typeLabel":"string"},"failure_code":{"type":"string","description":"Stable failure code, present on creation or deletion failure.","uniqueKey":"data.failure_code","typeLabel":"string"},"status_reason":{"type":"string","description":"Failure detail, present on creation or deletion failure.","uniqueKey":"data.status_reason","typeLabel":"string"},"ready_at":{"type":"string","format":"date-time","description":"Time the snapshot became ready.","uniqueKey":"data.ready_at","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"request_id":"\u003cstring>","data":{"snapshot_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","idc_name":"\u003cstring>","name":"\u003cstring>","status":"creating","source_sandbox_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","source_template_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","source_build_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","vcpu":123,"ram_mb":123,"disk_size_mb":123,"architecture":"\u003cstring>","metadata":{},"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","product":"\u003cstring>","product_name":"\u003cstring>","failure_code":"\u003cstring>","status_reason":"\u003cstring>","ready_at":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b249a565-f116-45b4-b2f6-6488c5cc33db":{"description":"Invalid request parameters. Two code families are used: `Request.InvalidParameter` for request parsing and format validation (unknown or malformed body fields, malformed IDs, invalid enum values, out-of-range paging) and `Parameter.Invalid` for business validation (for example a template or IDC that cannot be found, or a `timeout` over the limit). Unknown or invalid fields inside the `params` of `POST /sandboxes/{id}/actions` are reported as `Parameter.Invalid`. Other 400 codes are specific to an operation, for example `Sandbox.SourceConflict` (both or neither of `template_id` and `snapshot_id`) and `Sandbox.IdempotentParameterMismatch` (an `Idempotency-Key` reused with different parameters). Both code families share the same HTTP status, so decide by the `code` value, not the status alone.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Parameter.Invalid","message":"Invalid request parameters","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Parameter.Invalid","message":"Invalid request parameters","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"b4762eea-7fd1-400a-8ce7-cd55cd81ad82":{"description":"Unauthenticated","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Auth.Unauthorized","message":"Authentication required","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Auth.Unauthorized","message":"Authentication required","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"fa12271c-026e-479c-a83f-d7f25c482533":{"description":"The caller cannot access the organization-scoped resource.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.QuotaExceeded","message":"The resource quota is not enough.","request_id":"req-xxxx","trace_id":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"3a5c1df4-270e-4491-b7c2-7d9fcc99590d":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Resource.NotFound","message":"The requested resource was not found","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.NotFound","message":"The requested resource was not found","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"21386f6c-f875-4612-8a6a-bf5e5a7beb9d":{"description":"Name conflict (Resource.AlreadyExists), source not running (Snapshot.SourceNotRunning), capture in progress (Snapshot.CreateInProgress), consumed key (Sandbox.IdempotentKeyConsumed), or IDC maintenance (IDC.UnderMaintenance).","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.QuotaExceeded","message":"The resource quota is not enough.","request_id":"req-xxxx","trace_id":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"f15c4d17-563d-484c-b5a8-62a549c639d3":{"description":"The request is valid, but the requested capability is not supported in the selected environment.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Template.ProviderNotSupported","message":"The selected IDC does not support this template operation","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Template.ProviderNotSupported","message":"The selected IDC does not support this template operation","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"3b6ee354-2fcf-4bdf-a0f8-82d076cf1e6c":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"System.Internal","message":"An internal server error occurred","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"System.Internal","message":"An internal server error occurred","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"79078e5c-3ec2-43f2-9339-906a68febafe":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API Key or Access Token, always sent as `Authorization: Bearer \u003ctoken>`. The gateway recognizes the token type automatically.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"f4224fd0-c6e4-4efe-8420-8b23a5d9c9bb":{"url":"https://console.gmicloud.ai/api/v2","description":"Control plane"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API Key or Access Token, always sent as `Authorization: Bearer \u003ctoken>`. The gateway recognizes the token type automatically.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API Key or Access Token, always sent as `Authorization: Bearer \u003ctoken>`. The gateway recognizes the token type automatically.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-spec/sandbox_api.yaml"},"subdomain":"gmicloud","siteName":"GMI Cloud Documentation","title":"Create a durable snapshot - GMI Cloud Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T12:03:43.805Z","originalFileLocation":"agentbox-api/sandboxsnapshot/create-a-durable-snapshot.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a durable snapshot from a running sandbox in the current tenant. The snapshot can be queried immediately, while creation completes asynchronously. Poll GET /snapshots/{snapshot_id} until status becomes ready or error. A ready snapshot can be supplied as snapshot_id to POST /sandboxes. A snapshot captures the sandbox filesystem only: running processes and in-memory state are not preserved, and a sandbox created from it boots fresh from the saved disk. The source sandbox keeps running. If snapshot creation is unsupported for the source sandbox, the request returns 422 Snapshot.UnsupportedOnProvider. Idempotency-Key is optional. Within the 24-hour deduplication window, repeating a key with identical parameters returns the same snapshot with its current status and Idempotency-Replayed: true, including while creating and after it becomes ready. Different parameters return 400 Sandbox.IdempotentParameterMismatch. Without the header, no deduplication is performed. The source sandbox must be running, otherwise 409 Snapshot.SourceNotRunning. While another snapshot of the same sandbox is being created, a new request may return 409 Snapshot.CreateInProgress, including temporarily after a previous snapshot was cancelled with DELETE. Wait before retrying and ensure the source sandbox is running. A definitive snapshot creation failure returns 201 with a queryable snapshot in error and failure_code: Snapshot.ProviderCreateFailed. Replaying that key returns the same error snapshot without creating another. Some failed creation attempts consume the idempotency key; replay returns 409 Sandbox.IdempotentKeyConsumed. Error details include failure_code and snapshot_id; the failed snapshot remains readable through GET. Retry with a new Idempotency-Key. A deleted snapshot also consumes its original key. Non-empty names are case-sensitive and unique within the organization across all IDCs. A name held by another snapshot returns 409 Resource.AlreadyExists. Empty names may be shared. Creation failure clears the name atomically; the failed record remains readable by snapshot_id. Use a new Idempotency-Key to retry with the same name once the source sandbox is running again. Name release does not change whether a key can be replayed. A definitive Snapshot.ProviderCreateFailed result remains replayable and returns the current record, whose name is cleared on failure. Failures detected while the create request is being handled, such as a source lease or workflow handoff failure, consume the key; replay returns 409 Sandbox.IdempotentKeyConsumed without a snapshot record. Failures settled later in the background, such as a failed creation workflow or an expired creation deadline, leave the key replayable; replay returns the current error record with its cleared name. Use snapshot_id to query a failed attempt; use a new key to create another.\">\u003cmeta data-mint-head name=\"application-name\" content=\"GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a durable snapshot - GMI Cloud Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a durable snapshot from a running sandbox in the current tenant. The snapshot can be queried immediately, while creation completes asynchronously. Poll GET /snapshots/{snapshot_id} until status becomes ready or error. A ready snapshot can be supplied as snapshot_id to POST /sandboxes. A snapshot captures the sandbox filesystem only: running processes and in-memory state are not preserved, and a sandbox created from it boots fresh from the saved disk. The source sandbox keeps running. If snapshot creation is unsupported for the source sandbox, the request returns 422 Snapshot.UnsupportedOnProvider. Idempotency-Key is optional. Within the 24-hour deduplication window, repeating a key with identical parameters returns the same snapshot with its current status and Idempotency-Replayed: true, including while creating and after it becomes ready. Different parameters return 400 Sandbox.IdempotentParameterMismatch. Without the header, no deduplication is performed. The source sandbox must be running, otherwise 409 Snapshot.SourceNotRunning. While another snapshot of the same sandbox is being created, a new request may return 409 Snapshot.CreateInProgress, including temporarily after a previous snapshot was cancelled with DELETE. Wait before retrying and ensure the source sandbox is running. A definitive snapshot creation failure returns 201 with a queryable snapshot in error and failure_code: Snapshot.ProviderCreateFailed. Replaying that key returns the same error snapshot without creating another. Some failed creation attempts consume the idempotency key; replay returns 409 Sandbox.IdempotentKeyConsumed. Error details include failure_code and snapshot_id; the failed snapshot remains readable through GET. Retry with a new Idempotency-Key. A deleted snapshot also consumes its original key. Non-empty names are case-sensitive and unique within the organization across all IDCs. A name held by another snapshot returns 409 Resource.AlreadyExists. Empty names may be shared. Creation failure clears the name atomically; the failed record remains readable by snapshot_id. Use a new Idempotency-Key to retry with the same name once the source sandbox is running again. Name release does not change whether a key can be replayed. A definitive Snapshot.ProviderCreateFailed result remains replayable and returns the current record, whose name is cleared on failure. Failures detected while the create request is being handled, such as a source lease or workflow handoff failure, consume the key; replay returns 409 Sandbox.IdempotentKeyConsumed without a snapshot record. Failures settled later in the background, such as a failed creation workflow or an expired creation deadline, leave the key replayable; replay returns the current error record with its cleared name. Use snapshot_id to query a failed attempt; use a new key to create another.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"GMI Cloud Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://gmicloud.mintlify.app/_mintlify/api/og/v2?division=SandboxSnapshot\u0026amp;title=Create+a+durable+snapshot\u0026amp;description=Creates+a+durable+snapshot+from+a+running+sandbox+in+the+current+tenant.%0AThe+snapshot+can+be+queried+immediately%2C+while+creation+completes+asynchronously.%0APoll+\u0026amp;theme=9f5734c91eff055e34aea819\u0026amp;signature=cb08c73bad4a4a792b5fbfbe3c1ab4b59e7ba85840ab90eac1e68b4592136b4c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a durable snapshot - GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a durable snapshot from a running sandbox in the current tenant. The snapshot can be queried immediately, while creation completes asynchronously. Poll GET /snapshots/{snapshot_id} until status becomes ready or error. A ready snapshot can be supplied as snapshot_id to POST /sandboxes. A snapshot captures the sandbox filesystem only: running processes and in-memory state are not preserved, and a sandbox created from it boots fresh from the saved disk. The source sandbox keeps running. If snapshot creation is unsupported for the source sandbox, the request returns 422 Snapshot.UnsupportedOnProvider. Idempotency-Key is optional. Within the 24-hour deduplication window, repeating a key with identical parameters returns the same snapshot with its current status and Idempotency-Replayed: true, including while creating and after it becomes ready. Different parameters return 400 Sandbox.IdempotentParameterMismatch. Without the header, no deduplication is performed. The source sandbox must be running, otherwise 409 Snapshot.SourceNotRunning. While another snapshot of the same sandbox is being created, a new request may return 409 Snapshot.CreateInProgress, including temporarily after a previous snapshot was cancelled with DELETE. Wait before retrying and ensure the source sandbox is running. A definitive snapshot creation failure returns 201 with a queryable snapshot in error and failure_code: Snapshot.ProviderCreateFailed. Replaying that key returns the same error snapshot without creating another. Some failed creation attempts consume the idempotency key; replay returns 409 Sandbox.IdempotentKeyConsumed. Error details include failure_code and snapshot_id; the failed snapshot remains readable through GET. Retry with a new Idempotency-Key. A deleted snapshot also consumes its original key. Non-empty names are case-sensitive and unique within the organization across all IDCs. A name held by another snapshot returns 409 Resource.AlreadyExists. Empty names may be shared. Creation failure clears the name atomically; the failed record remains readable by snapshot_id. Use a new Idempotency-Key to retry with the same name once the source sandbox is running again. Name release does not change whether a key can be replayed. A definitive Snapshot.ProviderCreateFailed result remains replayable and returns the current record, whose name is cleared on failure. Failures detected while the create request is being handled, such as a source lease or workflow handoff failure, consume the key; replay returns 409 Sandbox.IdempotentKeyConsumed without a snapshot record. Failures settled later in the background, such as a failed creation workflow or an expired creation deadline, leave the key replayable; replay returns the current error record with its cleared name. Use snapshot_id to query a failed attempt; use a new key to create another.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://gmicloud.mintlify.app/_mintlify/api/og/v2?division=SandboxSnapshot\u0026amp;title=Create+a+durable+snapshot\u0026amp;description=Creates+a+durable+snapshot+from+a+running+sandbox+in+the+current+tenant.%0AThe+snapshot+can+be+queried+immediately%2C+while+creation+completes+asynchronously.%0APoll+\u0026amp;theme=9f5734c91eff055e34aea819\u0026amp;signature=cb08c73bad4a4a792b5fbfbe3c1ab4b59e7ba85840ab90eac1e68b4592136b4c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6e7a0e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/agentbox-api/sandboxsnapshot/create-a-durable-snapshot.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.gmicloud.ai/#organization\",\"name\":\"GMI Cloud Documentation\",\"url\":\"https://docs.gmicloud.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/gmicloud/NMovxHyNviV7LUYd/logo/gmi-cloud-logo.svg?fit=max\u0026auto=format\u0026n=NMovxHyNviV7LUYd\u0026q=85\u0026s=17a2b497b7719739248dfca2ae9d6c4a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.gmicloud.ai#website\",\"name\":\"GMI Cloud Documentation\",\"url\":\"https://docs.gmicloud.ai\",\"publisher\":{\"@id\":\"https://docs.gmicloud.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot#webpage\",\"url\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot\",\"name\":\"Create a durable snapshot\",\"description\":\"Creates a durable snapshot from a running sandbox in the current tenant. The snapshot can be queried immediately, while creation completes asynchronously. Poll GET /snapshots/{snapshot_id} until status becomes ready or error. A ready snapshot can be supplied as snapshot_id to POST /sandboxes. A snapshot captures the sandbox filesystem only: running processes and in-memory state are not preserved, and a sandbox created from it boots fresh from the saved disk. The source sandbox keeps running. If snapshot creation is unsupported for the source sandbox, the request returns 422 Snapshot.UnsupportedOnProvider. Idempotency-Key is optional. Within the 24-hour deduplication window, repeating a key with identical parameters returns the same snapshot with its current status and Idempotency-Replayed: true, including while creating and after it becomes ready. Different parameters return 400 Sandbox.IdempotentParameterMismatch. Without the header, no deduplication is performed. The source sandbox must be running, otherwise 409 Snapshot.SourceNotRunning. While another snapshot of the same sandbox is being created, a new request may return 409 Snapshot.CreateInProgress, including temporarily after a previous snapshot was cancelled with DELETE. Wait before retrying and ensure the source sandbox is running. A definitive snapshot creation failure returns 201 with a queryable snapshot in error and failure_code: Snapshot.ProviderCreateFailed. Replaying that key returns the same error snapshot without creating another. Some failed creation attempts consume the idempotency key; replay returns 409 Sandbox.IdempotentKeyConsumed. Error details include failure_code and snapshot_id; the failed snapshot remains readable through GET. Retry with a new Idempotency-Key. A deleted snapshot also consumes its original key. Non-empty names are case-sensitive and unique within the organization across all IDCs. A name held by another snapshot returns 409 Resource.AlreadyExists. Empty names may be shared. Creation failure clears the name atomically; the failed record remains readable by snapshot_id. Use a new Idempotency-Key to retry with the same name once the source sandbox is running again. Name release does not change whether a key can be replayed. A definitive Snapshot.ProviderCreateFailed result remains replayable and returns the current record, whose name is cleared on failure. Failures detected while the create request is being handled, such as a source lease or workflow handoff failure, consume the key; replay returns 409 Sandbox.IdempotentKeyConsumed without a snapshot record. Failures settled later in the background, such as a failed creation workflow or an expired creation deadline, leave the key replayable; replay returns the current error record with its cleared name. Use snapshot_id to query a failed attempt; use a new key to create another.\",\"dateModified\":\"2026-10-30T12:03:43.805Z\",\"isPartOf\":{\"@id\":\"https://docs.gmicloud.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sandbox APIs\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandbox/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandbox/list-active-sandboxes\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SandboxSnapshot\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/list-durable-snapshots\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create a durable snapshot\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot#apireference\",\"headline\":\"Create a durable snapshot\",\"name\":\"Create a durable snapshot\",\"description\":\"Creates a durable snapshot from a running sandbox in the current tenant. The snapshot can be queried immediately, while creation completes asynchronously. Poll GET /snapshots/{snapshot_id} until status becomes ready or error. A ready snapshot can be supplied as snapshot_id to POST /sandboxes. A snapshot captures the sandbox filesystem only: running processes and in-memory state are not preserved, and a sandbox created from it boots fresh from the saved disk. The source sandbox keeps running. If snapshot creation is unsupported for the source sandbox, the request returns 422 Snapshot.UnsupportedOnProvider. Idempotency-Key is optional. Within the 24-hour deduplication window, repeating a key with identical parameters returns the same snapshot with its current status and Idempotency-Replayed: true, including while creating and after it becomes ready. Different parameters return 400 Sandbox.IdempotentParameterMismatch. Without the header, no deduplication is performed. The source sandbox must be running, otherwise 409 Snapshot.SourceNotRunning. While another snapshot of the same sandbox is being created, a new request may return 409 Snapshot.CreateInProgress, including temporarily after a previous snapshot was cancelled with DELETE. Wait before retrying and ensure the source sandbox is running. A definitive snapshot creation failure returns 201 with a queryable snapshot in error and failure_code: Snapshot.ProviderCreateFailed. Replaying that key returns the same error snapshot without creating another. Some failed creation attempts consume the idempotency key; replay returns 409 Sandbox.IdempotentKeyConsumed. Error details include failure_code and snapshot_id; the failed snapshot remains readable through GET. Retry with a new Idempotency-Key. A deleted snapshot also consumes its original key. Non-empty names are case-sensitive and unique within the organization across all IDCs. A name held by another snapshot returns 409 Resource.AlreadyExists. Empty names may be shared. Creation failure clears the name atomically; the failed record remains readable by snapshot_id. Use a new Idempotency-Key to retry with the same name once the source sandbox is running again. Name release does not change whether a key can be replayed. A definitive Snapshot.ProviderCreateFailed result remains replayable and returns the current record, whose name is cleared on failure. Failures detected while the create request is being handled, such as a source lease or workflow handoff failure, consume the key; replay returns 409 Sandbox.IdempotentKeyConsumed without a snapshot record. Failures settled later in the background, such as a failed creation workflow or an expired creation deadline, leave the key replayable; replay returns the current error record with its cleared name. Use snapshot_id to query a failed attempt; use a new key to create another.\",\"url\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot\",\"mainEntityOfPage\":{\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxsnapshot/create-a-durable-snapshot#webpage\"},\"dateModified\":\"2026-10-30T12:03:43.805Z\",\"publisher\":{\"@id\":\"https://docs.gmicloud.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.gmicloud.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"GMI Cloud Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"GMI Cloud Documentation","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Inference","pages":[{"title":"Inference","href":"/inference-engine/ie-intro"}]},{"tab":"GPU Compute","pages":[{"title":"GPU Compute","href":"/cluster-engine"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"GMI Studio","pages":[{"title":"GMI Studio","href":"/gmi-studio/gmi-studio-user-manual/introduction"}]},{"tab":"GMI Agentbox","groups":[{"group":"GMI Agentbox","pages":[{"title":"Overview","href":"/agentbox-marketplace/overview"},{"title":"Search and use an agent","href":"/agentbox-marketplace/search-and-use"},{"title":"Register an agent","href":"/agentbox-marketplace/register-an-agent"},{"title":"Managing your deployment","href":"/agentbox-marketplace/managing-your-deployment"},{"title":"List an agent","href":"/agentbox-marketplace/list-an-agent"},{"title":"Agents I use","href":"/agentbox-marketplace/agents-i-use"},{"title":"Verified agents","href":"/agentbox-marketplace/verified-agents"},{"title":"Handle long-running requests","href":"/agentbox-marketplace/handle-long-running-requests"}]},{"group":"Agentbox SDK","pages":[{"title":"Agentbox SDK","href":"/agentbox-sdk/overview"},{"title":"Quickstart","href":"/agentbox-sdk/quickstart"},{"title":"Agents and image builds","href":"/agentbox-sdk/agents"},{"title":"Sandboxes","href":"/agentbox-sdk/sandboxes"},{"title":"Commands and files","href":"/agentbox-sdk/commands-and-files"},{"title":"Interactive shell (Beta)","href":"/agentbox-sdk/shell"},{"title":"Snapshots","href":"/agentbox-sdk/snapshots"},{"title":"Errors and limits","href":"/agentbox-sdk/errors-and-limits"},{"title":"Python SDK reference","href":"/agentbox-sdk/python-reference"},{"title":"Go SDK reference","href":"/agentbox-sdk/go-reference"}]},{"group":"Sandbox SDK","pages":[{"title":"GMI Sandbox SDK Usage","href":"/agentbox-api/sandbox-sdk/usage"},{"title":"GMI Sandbox SDK Reference","href":"/agentbox-api/sandbox-sdk/sdk-reference"}]},{"group":"Sandbox APIs","pages":[{"title":"Sandbox API Overview","href":"/agentbox-api/sandbox/overview"},{"group":"Endpoints","pages":[{"group":"Sandbox","pages":[{"title":"List active sandboxes","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /sandboxes","href":"/agentbox-api/sandbox/list-active-sandboxes"},{"title":"Create a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes","href":"/agentbox-api/sandbox/create-a-sandbox"},{"title":"Get sandbox details","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /sandboxes/{id}","href":"/agentbox-api/sandbox/get-sandbox-details"},{"title":"Delete (kill) a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml delete /sandboxes/{id}","href":"/agentbox-api/sandbox/delete-kill-a-sandbox"},{"title":"Update sandbox metadata","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml patch /sandboxes/{id}","href":"/agentbox-api/sandbox/update-sandbox-metadata"},{"title":"Connect to a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/connect","href":"/agentbox-api/sandbox/connect-to-a-sandbox"},{"title":"Pause a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/pause","href":"/agentbox-api/sandbox/pause-a-sandbox"},{"title":"Resume a paused sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/resume","href":"/agentbox-api/sandbox/resume-a-paused-sandbox"},{"title":"Execute a sandbox runtime action","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/actions","href":"/agentbox-api/sandbox/execute-a-sandbox-runtime-action"},{"title":"Set sandbox timeout","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/timeout","href":"/agentbox-api/sandbox/set-sandbox-timeout"}]},{"group":"Sandbox-Exec","pages":[{"title":"Execute a command in a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /executions","href":"/agentbox-api/sandbox-exec/execute-a-command-in-a-sandbox"},{"title":"Get a sandbox execution","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /executions/{execution_id}","href":"/agentbox-api/sandbox-exec/get-a-sandbox-execution"},{"title":"Cancel a sandbox execution","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /executions/{execution_id}/cancel","href":"/agentbox-api/sandbox-exec/cancel-a-sandbox-execution"}]},{"group":"Sandbox-Shell","pages":[{"title":"Launch the sandbox interactive shell","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /shell","href":"/agentbox-api/sandbox-shell/launch-the-sandbox-interactive-shell"},{"title":"Attach to the sandbox shell (WebSocket)","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /shell/connect","href":"/agentbox-api/sandbox-shell/attach-to-the-sandbox-shell-websocket"},{"title":"Control the sandbox shell (resize / close)","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /shell/control","href":"/agentbox-api/sandbox-shell/control-the-sandbox-shell-resize-close"}]},{"group":"Sandbox-Files","pages":[{"title":"Download a sandbox file","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /files","href":"/agentbox-api/sandbox-files/download-a-sandbox-file"},{"title":"Upload a sandbox file","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /files","href":"/agentbox-api/sandbox-files/upload-a-sandbox-file"}]},{"group":"SandboxTemplate","pages":[{"title":"List the product catalog (unified, tenant-facing)","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /products","href":"/agentbox-api/sandboxtemplate/list-the-product-catalog-unified-tenant-facing"},{"title":"List Templates","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates","href":"/agentbox-api/sandboxtemplate/list-templates"},{"title":"Create a Template and start its initial Build","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates","href":"/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build"},{"title":"Get a Template","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{id}","href":"/agentbox-api/sandboxtemplate/get-a-template"},{"title":"Delete a Template","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml delete /templates/{id}","href":"/agentbox-api/sandboxtemplate/delete-a-template"},{"title":"Update mutable Template metadata","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml patch /templates/{id}","href":"/agentbox-api/sandboxtemplate/update-mutable-template-metadata"},{"title":"Initialize a Template build-context upload","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/files","href":"/agentbox-api/sandboxtemplate/initialize-a-template-build-context-upload"},{"title":"Get Template build-context status","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/files/{file_id}","href":"/agentbox-api/sandboxtemplate/get-template-build-context-status"},{"title":"List Template Builds","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/builds","href":"/agentbox-api/sandboxtemplate/list-template-builds"},{"title":"Create and start a rebuild","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/builds","href":"/agentbox-api/sandboxtemplate/create-and-start-a-rebuild"},{"title":"Get a Template Build","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/builds/{id}","href":"/agentbox-api/sandboxtemplate/get-a-template-build"},{"title":"Start an existing Build","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/builds/{id}","href":"/agentbox-api/sandboxtemplate/start-an-existing-build"},{"title":"Get live Template Build logs","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/builds/{id}/logs","href":"/agentbox-api/sandboxtemplate/get-live-template-build-logs"}]},{"group":"SandboxSnapshot","pages":[{"title":"List durable snapshots","description":"Lists snapshots in the current tenant, including `deleting` and `delete_failed`.\nDeleted snapshots are excluded. Filtering by `status=deleted` returns 400.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /snapshots","href":"/agentbox-api/sandboxsnapshot/list-durable-snapshots"},{"title":"Create a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /snapshots","href":"/agentbox-api/sandboxsnapshot/create-a-durable-snapshot"},{"title":"Get a durable snapshot","description":"Returns a snapshot in the current tenant. Missing, deleted, or other-tenant\nsnapshots return 404. Malformed snapshot identifiers return 400.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /snapshots/{snapshot_id}","href":"/agentbox-api/sandboxsnapshot/get-a-durable-snapshot"},{"title":"Delete a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml delete /snapshots/{snapshot_id}","href":"/agentbox-api/sandboxsnapshot/delete-a-durable-snapshot"},{"title":"Update a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml patch /snapshots/{snapshot_id}","href":"/agentbox-api/sandboxsnapshot/update-a-durable-snapshot"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/gmi-mcp-server"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides-overview"}]}]},"title":"Create a durable snapshot - GMI Cloud Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}