{
"code": "Resource.QuotaExceeded",
"message": "The resource quota is not enough.",
"request_id": "req-xxxx",
"details": {}
}
SandboxTemplate
Create a Template and start its initial Build
Creates a logical Template together with its initial Build. The initial
Build is created and started from the required build definition in the
same request.
Idempotency-Key is required and acts as the idempotency key because Template
creation can complete after an upstream timeout; a keyless retry would build a
second Template. Repeating the request with identical parameters replays the
same Template/Build (with Idempotency-Replayed: true); a different body under
the same key returns 400 Sandbox.IdempotentParameterMismatch; after the
Template is deleted the key answers 409 Sandbox.IdempotentKeyConsumed. Keys
are remembered for 24 hours. (X-Request-ID is trace-only and server-generated.)
resources supports two mutually exclusive forms:
Preset: {"type":"preset","product":"gmi.sandbox.x-large"}. The
product value is the catalog SKU (see GET /api/v2/products); the
service resolves the active entry from the product catalog. Preset values are used as configured and
are not constrained by custom resource limits.
Custom: {"type":"custom","cpu_count":4,"memory_mb":8192, "disk_size_mb":32768,"architecture":"x86_64"}. All three numeric
fields are required. Custom resources are limited to 16 vCPU,
65536 MiB memory, and 65536 MiB boot disk, and must also be
representable by the selected IDC.
Caller-generated key that makes the mutation safe to retry (a UUID is
recommended). Matched byte-for-byte: 1-64 printable ASCII characters,
no whitespace. 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.
Resource values may be selected by catalog product SKU or supplied as a
custom configuration. Active presets use operator-managed IDC product
values without custom-resource limit validation. Only custom values
must pass the 16 vCPU / 64 GiB memory / 64 GiB boot disk limits and the
selected IDC's representability checks.
IDC that permanently owns the Template. Optional: omitted, empty, and whitespace-only values are equivalent — the organization's configured default data center is used (maintained by the platform administrator; the same setting used by sandbox creation). If the organization has no default configured, the request returns 400.
Initial Build definition created and started with the Template
(combined flow, every IDC supports it). Omitting build selects the
split flow: the Template and a waiting initial Build are created
without starting anything, and the Build is started later via
POST /templates/{template_id}/builds/{id}. The split flow is not
supported in every IDC; unsupported IDCs reject it with 422.
Show child attributes
Response
The Template record is created and immediately addressable: GET /templates/{id} works right away. Build readiness is reported by
status, not by the status code.
{"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":"6ae39a80805d62ff212cfdd9","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":"per-site-search-delta","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":"editor-private-page-search","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}],"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/sandboxtemplate/create-a-template-and-start-its-initial-build","slug":"/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build","pageMetadata":{"title":"Create a Template and start its initial Build","description":"Creates a logical Template together with its initial Build. The initial\nBuild is created and started from the required `build` definition in the\nsame request.\n\n`Idempotency-Key` is required and acts as the idempotency key because Template\ncreation can complete after an upstream timeout; a keyless retry would build a\nsecond Template. Repeating the request with identical parameters replays the\nsame Template/Build (with `Idempotency-Replayed: true`); a different body under\nthe same key returns 400 `Sandbox.IdempotentParameterMismatch`; after the\nTemplate is deleted the key answers 409 `Sandbox.IdempotentKeyConsumed`. Keys\nare remembered for 24 hours. (`X-Request-ID` is trace-only and server-generated.)\n\n`resources` supports two mutually exclusive forms:\n\n- Preset: `{\"type\":\"preset\",\"product\":\"gmi.sandbox.x-large\"}`. The\n `product` value is the catalog SKU (see `GET /api/v2/products`); the\n service resolves the active entry from the product catalog. Preset values are used as configured and\n are not constrained by custom resource limits.\n- Custom: `{\"type\":\"custom\",\"cpu_count\":4,\"memory_mb\":8192,\n \"disk_size_mb\":32768,\"architecture\":\"x86_64\"}`. All three numeric\n fields are required. Custom resources are limited to 16 vCPU,\n 65536 MiB memory, and 65536 MiB boot disk, and must also be\n representable by the selected IDC.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates","href":"/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build","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 li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a logical Template together with its initial Build. The initial\\nBuild is created and started from the required \", _jsx(_components.code, {\n children: \"build\"\n }), \" definition in the\\nsame request.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" is required and acts as the idempotency key because Template\\ncreation can complete after an upstream timeout; a keyless retry would build a\\nsecond Template. Repeating the request with identical parameters replays the\\nsame Template/Build (with \", _jsx(_components.code, {\n children: \"Idempotency-Replayed: true\"\n }), \"); a different body under\\nthe same key returns 400 \", _jsx(_components.code, {\n children: \"Sandbox.IdempotentParameterMismatch\"\n }), \"; after the\\nTemplate is deleted the key answers 409 \", _jsx(_components.code, {\n children: \"Sandbox.IdempotentKeyConsumed\"\n }), \". Keys\\nare remembered for 24 hours. (\", _jsx(_components.code, {\n children: \"X-Request-ID\"\n }), \" is trace-only and server-generated.)\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"resources\"\n }), \" supports two mutually exclusive forms:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Preset: \", _jsx(_components.code, {\n children: \"{\\\"type\\\":\\\"preset\\\",\\\"product\\\":\\\"gmi.sandbox.x-large\\\"}\"\n }), \". The\\n\", _jsx(_components.code, {\n children: \"product\"\n }), \" value is the catalog SKU (see \", _jsx(_components.code, {\n children: \"GET /api/v2/products\"\n }), \"); the\\nservice resolves the active entry from the product catalog. Preset values are used as configured and\\nare not constrained by custom resource limits.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Custom: \", _jsx(_components.code, {\n children: \"{\\\"type\\\":\\\"custom\\\",\\\"cpu_count\\\":4,\\\"memory_mb\\\":8192, \\\"disk_size_mb\\\":32768,\\\"architecture\\\":\\\"x86_64\\\"}\"\n }), \". All three numeric\\nfields are required. Custom resources are limited to 16 vCPU,\\n65536 MiB memory, and 65536 MiB boot disk, and must also be\\nrepresentable by the selected IDC.\"]\n }), \"\\n\"]\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 Template and start its initial Build","description":"Creates a logical Template together with its initial Build. The initial\nBuild is created and started from the required `build` definition in the\nsame request.\n\n`Idempotency-Key` is required and acts as the idempotency key because Template\ncreation can complete after an upstream timeout; a keyless retry would build a\nsecond Template. Repeating the request with identical parameters replays the\nsame Template/Build (with `Idempotency-Replayed: true`); a different body under\nthe same key returns 400 `Sandbox.IdempotentParameterMismatch`; after the\nTemplate is deleted the key answers 409 `Sandbox.IdempotentKeyConsumed`. Keys\nare remembered for 24 hours. (`X-Request-ID` is trace-only and server-generated.)\n\n`resources` supports two mutually exclusive forms:\n\n- Preset: `{\"type\":\"preset\",\"product\":\"gmi.sandbox.x-large\"}`. The\n `product` value is the catalog SKU (see `GET /api/v2/products`); the\n service resolves the active entry from the product catalog. Preset values are used as configured and\n are not constrained by custom resource limits.\n- Custom: `{\"type\":\"custom\",\"cpu_count\":4,\"memory_mb\":8192,\n \"disk_size_mb\":32768,\"architecture\":\"x86_64\"}`. All three numeric\n fields are required. Custom resources are limited to 16 vCPU,\n 65536 MiB memory, and 65536 MiB boot disk, and must also be\n representable by the selected IDC.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates","href":"/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/gmicloud/fa3784330bb16240/syft.js"],"openApiReferenceData":{"operation":{"tags":["SandboxTemplate"],"summary":"Create a Template and start its initial Build","description":"Creates a logical Template together with its initial Build. The initial\nBuild is created and started from the required `build` definition in the\nsame request.\n\n`Idempotency-Key` is required and acts as the idempotency key because Template\ncreation can complete after an upstream timeout; a keyless retry would build a\nsecond Template. Repeating the request with identical parameters replays the\nsame Template/Build (with `Idempotency-Replayed: true`); a different body under\nthe same key returns 400 `Sandbox.IdempotentParameterMismatch`; after the\nTemplate is deleted the key answers 409 `Sandbox.IdempotentKeyConsumed`. Keys\nare remembered for 24 hours. (`X-Request-ID` is trace-only and server-generated.)\n\n`resources` supports two mutually exclusive forms:\n\n- Preset: `{\"type\":\"preset\",\"product\":\"gmi.sandbox.x-large\"}`. The\n `product` value is the catalog SKU (see `GET /api/v2/products`); the\n service resolves the active entry from the product catalog. Preset values are used as configured and\n are not constrained by custom resource limits.\n- Custom: `{\"type\":\"custom\",\"cpu_count\":4,\"memory_mb\":8192,\n \"disk_size_mb\":32768,\"architecture\":\"x86_64\"}`. All three numeric\n fields are required. Custom resources are limited to 16 vCPU,\n 65536 MiB memory, and 65536 MiB boot disk, and must also be\n representable by the selected IDC.\n","operationId":"createTemplate","parameters":["00a3f874-9715-40c7-8635-125f0ca2318c"],"requestBody":"8f90faf8-c56a-4d58-8194-ec572ae72ca4","responses":{"201":"b854e30a-8558-421a-ad45-5ddc4fd1faa7","400":"6db0b185-a678-432b-95a7-ab13f52e0678","401":"26ae70c3-2788-41bd-b57b-3289bbfd107e","403":"6936f609-e29b-4f72-88e4-fc9063e394a1","409":"9e2e4375-aa17-408d-8514-beaa086494fe","422":"0ad2183d-4a59-400f-8526-a3d774f4d73b","429":"860cf638-3760-4304-b2e2-02b05bdd57dc","500":"b9357021-0a66-4c77-8a6e-01fbaf54aec6","502":"285eb28e-2ec9-4258-b536-9ddf2b913085"},"method":"post","type":"path","servers":["72c48b8c-9e84-407e-94b9-ce05318da4ca"],"security":["a1245993-e05e-44d3-8867-bef586be20df"],"path":"/templates","baseUrlOptions":["https://console.gmicloud.ai/api/v2"],"title":"Create a Template and start its initial Build","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"00a3f874-9715-40c7-8635-125f0ca2318c":{"name":"Idempotency-Key","in":"header","required":true,"description":"Caller-generated key that makes the mutation safe to retry (a UUID is\nrecommended). Matched byte-for-byte: 1-64 printable ASCII characters,\nno whitespace. The same key with a different request body returns 400\nSandbox.IdempotentParameterMismatch. Echoed on responses; replays add\nIdempotency-Replayed: true. Keys are remembered for 24 hours.\n","schema":{"type":"string","minLength":1,"maxLength":64,"isRequired":true,"description":"Caller-generated key that makes the mutation safe to retry (a UUID is\nrecommended). Matched byte-for-byte: 1-64 printable ASCII characters,\nno whitespace. The same key with a different request body returns 400\nSandbox.IdempotentParameterMismatch. Echoed on responses; replays add\nIdempotency-Replayed: true. Keys are remembered for 24 hours.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["name","resources"],"properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9_-]+$","description":"Organization-scoped Template display name.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"resources":{"oneOf":[{"type":"object","description":"Resource values may be selected by catalog product SKU or supplied as a\ncustom configuration. Active presets use operator-managed IDC product\nvalues without custom-resource limit validation. Only custom values\nmust pass the 16 vCPU / 64 GiB memory / 64 GiB boot disk limits and the\nselected IDC's representability checks.\n","required":["type","product"],"properties":{"type":{"type":"string","enum":["preset"],"isRequired":true,"uniqueKey":"resources.oneOf.0.type","typeLabel":"enum\u003cstring>"},"product":{"type":"string","description":"Sandbox product specification id (catalog SKU, for example\n`gmi.sandbox.x-large`).\n","isRequired":true,"uniqueKey":"resources.oneOf.0.product","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"resources.oneOf.0","typeLabel":"object"},{"type":"object","description":"Resource values may be selected by catalog product SKU or supplied as a\ncustom configuration. Active presets use operator-managed IDC product\nvalues without custom-resource limit validation. Only custom values\nmust pass the 16 vCPU / 64 GiB memory / 64 GiB boot disk limits and the\nselected IDC's representability checks.\n","required":["type","cpu_count","memory_mb","disk_size_mb"],"properties":{"type":{"type":"string","enum":["custom"],"isRequired":true,"uniqueKey":"resources.oneOf.1.type","typeLabel":"enum\u003cstring>"},"cpu_count":{"type":"integer","minimum":1,"maximum":16,"description":"Requested integer vCPU count. Custom resources allow at most\n16 vCPU.\n","isRequired":true,"uniqueKey":"resources.oneOf.1.cpu_count","typeLabel":"integer"},"memory_mb":{"type":"integer","minimum":1,"maximum":65536,"description":"Requested integer memory size in MiB. Custom resources allow at\nmost 65536 MiB (64 GiB).\n","isRequired":true,"uniqueKey":"resources.oneOf.1.memory_mb","typeLabel":"integer"},"disk_size_mb":{"type":"integer","minimum":1,"maximum":65536,"description":"Requested integer boot disk size in MiB. Custom resources allow at\nmost 65536 MiB (64 GiB).\n","isRequired":true,"uniqueKey":"resources.oneOf.1.disk_size_mb","typeLabel":"integer"},"architecture":{"type":"string","enum":["x86_64","arm64"],"default":"x86_64","description":"Requested CPU architecture. If omitted, x86_64 is used. The\nselected IDC must support the value.\n","uniqueKey":"resources.oneOf.1.architecture","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"resources.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"resources","typeLabel":"object"},"description":{"type":"string","maxLength":256,"description":"Human-readable Template description.","uniqueKey":"description","typeLabel":"string"},"idc_name":{"type":"string","description":"IDC that permanently owns the Template. Optional: omitted, empty, and whitespace-only values are equivalent — the organization's configured default data center is used (maintained by the platform administrator; the same setting used by sandbox creation). If the organization has no default configured, the request returns 400.\n","uniqueKey":"idc_name","typeLabel":"string"},"labels":{"type":"object","maxProperties":64,"description":"User-defined labels used for filtering.","additionalProperties":{"type":"string","maxLength":256,"uniqueKey":"labels.additionalProperties","typeLabel":"string"},"uniqueKey":"labels","typeLabel":"object"},"build":{"type":"object","description":"Initial Build definition created and started with the Template\n(combined flow, every IDC supports it). Omitting `build` selects the\nsplit flow: the Template and a `waiting` initial Build are created\nwithout starting anything, and the Build is started later via\n`POST /templates/{template_id}/builds/{id}`. The split flow is not\nsupported in every IDC; unsupported IDCs reject it with 422.\n","required":["source"],"properties":{"source":{"oneOf":[{"type":"object","description":"Manual Build source. Sandbox sources use the snapshot endpoint.","required":["type","image"],"properties":{"type":{"type":"string","enum":["image"],"isRequired":true,"uniqueKey":"build.source.oneOf.0.type","typeLabel":"enum\u003cstring>"},"image":{"type":"string","minLength":1,"description":"Debian or Ubuntu container image reference. The server validates\nthe image against the IDC-supported base OS policy.\n","isRequired":true,"uniqueKey":"build.source.oneOf.0.image","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"build.source.oneOf.0","typeLabel":"object"},{"type":"object","description":"Manual Build source. Sandbox sources use the snapshot endpoint.","required":["type","template_id"],"properties":{"type":{"type":"string","enum":["template"],"isRequired":true,"uniqueKey":"build.source.oneOf.1.type","typeLabel":"enum\u003cstring>"},"template_id":{"type":"string","description":"Parent Template identifier in the same IDC.","isRequired":true,"uniqueKey":"build.source.oneOf.1.template_id","typeLabel":"string"},"build_id":{"type":"string","description":"Optional parent Build identifier. When omitted, the parent's\ncurrent successful Build is used.\n","uniqueKey":"build.source.oneOf.1.build_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"build.source.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"build.source","typeLabel":"object"},"commands":{"type":"array","maxItems":100,"description":"Shell command strings executed sequentially during the Build.","items":{"type":"string","minLength":1,"maxLength":8192,"uniqueKey":"build.commands.items.[INDEX]","typeLabel":"string"},"uniqueKey":"build.commands","typeLabel":"string[]"},"envs":{"type":"object","maxProperties":256,"additionalProperties":{"type":"string","maxLength":32768,"uniqueKey":"build.envs.additionalProperties","typeLabel":"string"},"description":"Environment variables available only during the Template Build.\nThey are visible to subsequent build commands/steps and are not persisted\ninto the resulting template artifact as sandbox runtime environment\nvariables. Pass runtime env when creating a Sandbox instead. Write-only:\nvalues are never returned on Template or TemplateBuild responses.\nKeys must be unique (JSON object); the server orders them\ndeterministically by key. Key names must match\n`[A-Za-z_][A-Za-z0-9_]*`.\n","uniqueKey":"build.envs","typeLabel":"object"},"start_cmd":{"type":"string","minLength":1,"maxLength":8192,"description":"Launch command persisted with the Build and applied when Sandboxes\ncreated from this Template start.\n","uniqueKey":"build.start_cmd","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"build","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","resources":{"type":"preset","product":"\u003cstring>"},"description":"\u003cstring>","idc_name":"\u003cstring>","labels":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b854e30a-8558-421a-ad45-5ddc4fd1faa7":{"description":"The Template record is created and immediately addressable: `GET\n/templates/{id}` works right away. Build readiness is reported by\n`status`, not by the status code.\n","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["request_id","data"],"properties":{"request_id":{"type":"string","description":"HTTP request correlation identifier.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"data":{"type":"object","additionalProperties":false,"required":["id","build_id","status"],"properties":{"id":{"type":"string","description":"Created Template identifier.","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"build_id":{"type":"string","description":"Created initial or snapshot Build identifier.","isRequired":true,"uniqueKey":"data.build_id","typeLabel":"string"},"status":{"type":"string","enum":["waiting","building","ready","error"],"description":"Normalized Template Build status.","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"request_id":"\u003cstring>","data":{"id":"\u003cstring>","build_id":"\u003cstring>","status":"waiting"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6db0b185-a678-432b-95a7-ab13f52e0678":{"description":"Invalid request parameters","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"},"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"},"26ae70c3-2788-41bd-b57b-3289bbfd107e":{"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"},"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"},"6936f609-e29b-4f72-88e4-fc9063e394a1":{"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"},"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","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"9e2e4375-aa17-408d-8514-beaa086494fe":{"description":"State conflict","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"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Resource.StateConflict","message":"Resource state conflict","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.StateConflict","message":"Resource state conflict","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"0ad2183d-4a59-400f-8526-a3d774f4d73b":{"description":"The request is valid but the selected IDC does not support\nthe requested capability or resolved resource specification.\n","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"},"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","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"860cf638-3760-4304-b2e2-02b05bdd57dc":{"description":"The configured or temporary resource quota would be exceeded.","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"},"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","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"b9357021-0a66-4c77-8a6e-01fbaf54aec6":{"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"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Internal.ServerError","message":"An internal server error occurred","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Internal.ServerError","message":"An internal server error occurred","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"285eb28e-2ec9-4258-b536-9ddf2b913085":{"description":"An upstream Sandbox service is unavailable or returned an 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"},"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","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a1245993-e05e-44d3-8867-bef586be20df":{"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":{"72c48b8c-9e84-407e-94b9-ce05318da4ca":{"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 Template and start its initial Build - GMI Cloud Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T19:06:36.946Z","originalFileLocation":"agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build.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 logical Template together with its initial Build. The initial Build is created and started from the required build definition in the same request. Idempotency-Key is required and acts as the idempotency key because Template creation can complete after an upstream timeout; a keyless retry would build a second Template. Repeating the request with identical parameters replays the same Template/Build (with Idempotency-Replayed: true); a different body under the same key returns 400 Sandbox.IdempotentParameterMismatch; after the Template is deleted the key answers 409 Sandbox.IdempotentKeyConsumed. Keys are remembered for 24 hours. (X-Request-ID is trace-only and server-generated.) resources supports two mutually exclusive forms: - Preset: {\u0026quot;type\u0026quot;:\u0026quot;preset\u0026quot;,\u0026quot;product\u0026quot;:\u0026quot;gmi.sandbox.x-large\u0026quot;}. The product value is the catalog SKU (see GET /api/v2/products); the service resolves the active entry from the product catalog. Preset values are used as configured and are not constrained by custom resource limits. - Custom: {\u0026quot;type\u0026quot;:\u0026quot;custom\u0026quot;,\u0026quot;cpu_count\u0026quot;:4,\u0026quot;memory_mb\u0026quot;:8192, \u0026quot;disk_size_mb\u0026quot;:32768,\u0026quot;architecture\u0026quot;:\u0026quot;x86_64\u0026quot;}. All three numeric fields are required. Custom resources are limited to 16 vCPU, 65536 MiB memory, and 65536 MiB boot disk, and must also be representable by the selected IDC.\">\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 Template and start its initial Build - GMI Cloud Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a logical Template together with its initial Build. The initial Build is created and started from the required build definition in the same request. Idempotency-Key is required and acts as the idempotency key because Template creation can complete after an upstream timeout; a keyless retry would build a second Template. Repeating the request with identical parameters replays the same Template/Build (with Idempotency-Replayed: true); a different body under the same key returns 400 Sandbox.IdempotentParameterMismatch; after the Template is deleted the key answers 409 Sandbox.IdempotentKeyConsumed. Keys are remembered for 24 hours. (X-Request-ID is trace-only and server-generated.) resources supports two mutually exclusive forms: - Preset: {\u0026quot;type\u0026quot;:\u0026quot;preset\u0026quot;,\u0026quot;product\u0026quot;:\u0026quot;gmi.sandbox.x-large\u0026quot;}. The product value is the catalog SKU (see GET /api/v2/products); the service resolves the active entry from the product catalog. Preset values are used as configured and are not constrained by custom resource limits. - Custom: {\u0026quot;type\u0026quot;:\u0026quot;custom\u0026quot;,\u0026quot;cpu_count\u0026quot;:4,\u0026quot;memory_mb\u0026quot;:8192, \u0026quot;disk_size_mb\u0026quot;:32768,\u0026quot;architecture\u0026quot;:\u0026quot;x86_64\u0026quot;}. All three numeric fields are required. Custom resources are limited to 16 vCPU, 65536 MiB memory, and 65536 MiB boot disk, and must also be representable by the selected IDC.\">\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/sandboxtemplate/create-a-template-and-start-its-initial-build\">\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=SandboxTemplate\u0026amp;title=Create+a+Template+and+start+its+initial+Build\u0026amp;description=Creates+a+logical+Template+together+with+its+initial+Build.+The+initial%0ABuild+is+created+and+started+from+the+required+%60build%60+definition+in+the%0Asame+request.%0A%0A\u0026amp;theme=9f5734c91eff055e34aea819\u0026amp;signature=619f111857f17a5d5cabc4625587041d3d497708c2ee2bb0b3e26d721829bfee\">\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 Template and start its initial Build - GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a logical Template together with its initial Build. The initial Build is created and started from the required build definition in the same request. Idempotency-Key is required and acts as the idempotency key because Template creation can complete after an upstream timeout; a keyless retry would build a second Template. Repeating the request with identical parameters replays the same Template/Build (with Idempotency-Replayed: true); a different body under the same key returns 400 Sandbox.IdempotentParameterMismatch; after the Template is deleted the key answers 409 Sandbox.IdempotentKeyConsumed. Keys are remembered for 24 hours. (X-Request-ID is trace-only and server-generated.) resources supports two mutually exclusive forms: - Preset: {\u0026quot;type\u0026quot;:\u0026quot;preset\u0026quot;,\u0026quot;product\u0026quot;:\u0026quot;gmi.sandbox.x-large\u0026quot;}. The product value is the catalog SKU (see GET /api/v2/products); the service resolves the active entry from the product catalog. Preset values are used as configured and are not constrained by custom resource limits. - Custom: {\u0026quot;type\u0026quot;:\u0026quot;custom\u0026quot;,\u0026quot;cpu_count\u0026quot;:4,\u0026quot;memory_mb\u0026quot;:8192, \u0026quot;disk_size_mb\u0026quot;:32768,\u0026quot;architecture\u0026quot;:\u0026quot;x86_64\u0026quot;}. All three numeric fields are required. Custom resources are limited to 16 vCPU, 65536 MiB memory, and 65536 MiB boot disk, and must also be representable by the selected IDC.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://gmicloud.mintlify.app/_mintlify/api/og/v2?division=SandboxTemplate\u0026amp;title=Create+a+Template+and+start+its+initial+Build\u0026amp;description=Creates+a+logical+Template+together+with+its+initial+Build.+The+initial%0ABuild+is+created+and+started+from+the+required+%60build%60+definition+in+the%0Asame+request.%0A%0A\u0026amp;theme=9f5734c91eff055e34aea819\u0026amp;signature=619f111857f17a5d5cabc4625587041d3d497708c2ee2bb0b3e26d721829bfee\">\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/sandboxtemplate/create-a-template-and-start-its-initial-build\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build.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/sandboxtemplate/create-a-template-and-start-its-initial-build#webpage\",\"url\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build\",\"name\":\"Create a Template and start its initial Build\",\"description\":\"Creates a logical Template together with its initial Build. The initial Build is created and started from the required build definition in the same request. Idempotency-Key is required and acts as the idempotency key because Template creation can complete after an upstream timeout; a keyless retry would build a second Template. Repeating the request with identical parameters replays the same Template/Build (with Idempotency-Replayed: true); a different body under the same key returns 400 Sandbox.IdempotentParameterMismatch; after the Template is deleted the key answers 409 Sandbox.IdempotentKeyConsumed. Keys are remembered for 24 hours. (X-Request-ID is trace-only and server-generated.) resources supports two mutually exclusive forms: - Preset: {\\\"type\\\":\\\"preset\\\",\\\"product\\\":\\\"gmi.sandbox.x-large\\\"}. The product value is the catalog SKU (see GET /api/v2/products); the service resolves the active entry from the product catalog. Preset values are used as configured and are not constrained by custom resource limits. - Custom: {\\\"type\\\":\\\"custom\\\",\\\"cpu_count\\\":4,\\\"memory_mb\\\":8192, \\\"disk_size_mb\\\":32768,\\\"architecture\\\":\\\"x86_64\\\"}. All three numeric fields are required. Custom resources are limited to 16 vCPU, 65536 MiB memory, and 65536 MiB boot disk, and must also be representable by the selected IDC.\",\"dateModified\":\"2026-10-29T19:06:36.946Z\",\"isPartOf\":{\"@id\":\"https://docs.gmicloud.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build#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\":\"SandboxTemplate\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/list-the-product-catalog-unified-tenant-facing\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create a Template and start its initial Build\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build#apireference\",\"headline\":\"Create a Template and start its initial Build\",\"name\":\"Create a Template and start its initial Build\",\"description\":\"Creates a logical Template together with its initial Build. The initial Build is created and started from the required build definition in the same request. Idempotency-Key is required and acts as the idempotency key because Template creation can complete after an upstream timeout; a keyless retry would build a second Template. Repeating the request with identical parameters replays the same Template/Build (with Idempotency-Replayed: true); a different body under the same key returns 400 Sandbox.IdempotentParameterMismatch; after the Template is deleted the key answers 409 Sandbox.IdempotentKeyConsumed. Keys are remembered for 24 hours. (X-Request-ID is trace-only and server-generated.) resources supports two mutually exclusive forms: - Preset: {\\\"type\\\":\\\"preset\\\",\\\"product\\\":\\\"gmi.sandbox.x-large\\\"}. The product value is the catalog SKU (see GET /api/v2/products); the service resolves the active entry from the product catalog. Preset values are used as configured and are not constrained by custom resource limits. - Custom: {\\\"type\\\":\\\"custom\\\",\\\"cpu_count\\\":4,\\\"memory_mb\\\":8192, \\\"disk_size_mb\\\":32768,\\\"architecture\\\":\\\"x86_64\\\"}. All three numeric fields are required. Custom resources are limited to 16 vCPU, 65536 MiB memory, and 65536 MiB boot disk, and must also be representable by the selected IDC.\",\"url\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build\",\"mainEntityOfPage\":{\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build#webpage\"},\"dateModified\":\"2026-10-29T19:06:36.946Z\",\"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","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":"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-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","description":"Lists Templates visible to the authenticated organization. Results are\nsorted by creation time in descending order. Internal artifact IDs are\nnever returned.\n","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","description":"Returns the logical Template and its current and latest Build references.","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":"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":"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":"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"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/gmi-mcp-server"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides-overview"}]}]},"title":"Create a Template and start its initial Build - 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"]}