Runs a command to completion and returns its output in a single
response, retained up to a server-side cap (see truncated). For live
or unbounded output use POST /exec/stream (Server-Sent Events) or
GET /exec/connect (WebSocket). A non-zero exit code is returned in
the body, not as an HTTP error. The sandbox must be running; a
paused sandbox returns 503. Activate it first with
POST /sandboxes/{sandbox_id}/activate (the SDKs do this
automatically).
User to run the command as: a name, a uid, name:group, or uid:gid (default the template's user). An unknown user or group fails as bad_request (400 on POST /exec).
Example:
"root"
Response
The command finished; output and exit code.
Output of a command run to completion via POST /exec.
Present and true when combined stdout/stderr exceeded the server-side retention cap (currently 8 MiB) and the tail was dropped; a notice explaining the cut is also appended to stderr. Use POST /exec/stream for unbounded output.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Superserve","colors":{"primary":"#B2FAB4","light":"#B2FAB4","dark":"#B2FAB4"},"logo":"https://mintcdn.com/superserve-ai-superserve-33/G055TX3BjwXpQedU/logo.svg?fit=max\u0026auto=format\u0026n=G055TX3BjwXpQedU\u0026q=85\u0026s=69233fb550a17b81d7d7fa083ca7f3de","favicon":"https://mintcdn.com/superserve-ai-superserve-33/G055TX3BjwXpQedU/favicon.svg?fit=max\u0026auto=format\u0026n=G055TX3BjwXpQedU\u0026q=85\u0026s=5c49ee9ed883d587b192cd419a4747d8","appearance":{"default":"dark","strict":true},"background":{"decoration":"gradient","color":{"dark":"#141414"}},"navbar":{"links":[{"href":"https://github.com/superserve-ai/superserve","label":"GitHub","type":"github"}],"primary":{"type":"button","label":"Get Started","href":"https://console.superserve.ai/auth/signup/?utm_source=docs\u0026utm_medium=navbar"}},"footer":{"socials":{"x":"https://x.com/superserve_ai","github":"https://github.com/superserve-ai","linkedin":"https://www.linkedin.com/company/super-serve-ai"},"links":[{"header":"Resources","items":[{"label":"Status","href":"https://status.superserve.ai"}]}]},"fonts":{"heading":{"family":"Instrument Sans"},"body":{"family":"Instrument Sans"}},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"vitesse-dark"}},"latex":false},"integrations":{"posthog":{"apiKey":"phc_gjpDKKKQJAnkxkqLrPGrAhoariKsaHNuTpI5rVhkYre","apiHost":"https://p.superserve.ai"}},"contextual":{"options":["copy","view","claude","mcp","add-mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"superserve-ai-superserve-33","hasAudioNarration":false,"actualSubdomain":"superserve-ai-superserve-33","customDomains":["docs.superserve.ai"],"gitSource":{"type":"github","owner":"superserve-ai","repo":"superserve","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aeee774608552e5c950997e","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"REST API","count":58},{"language":"default","tag":"Documentation","count":31},{"language":"default","tag":"Integrations","count":17},{"language":"default","tag":"Sandboxes","count":14},{"language":"default","tag":"Templates","count":13},{"language":"default","tag":"Team Management","count":13},{"language":"default","tag":"Sandbox","count":10},{"language":"default","tag":"Secrets","count":10},{"language":"default","tag":"SDK Reference","count":6},{"language":"default","tag":"Reference","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"rbac-expansion","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":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/exec/run-a-command-and-wait-for-it-to-finish","slug":"/api-reference/exec/run-a-command-and-wait-for-it-to-finish","pageMetadata":{"title":"Run a command and wait for it to finish","description":"Runs a command to completion and returns its output in a single\nresponse, retained up to a server-side cap (see `truncated`). For live\nor unbounded output use `POST /exec/stream` (Server-Sent Events) or\n`GET /exec/connect` (WebSocket). A non-zero exit code is returned in\nthe body, not as an HTTP error. The sandbox must be `running`; a\npaused sandbox returns `503`. Activate it first with\n`POST /sandboxes/{sandbox_id}/activate` (the SDKs do this\nautomatically).\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec","href":"/api-reference/exec/run-a-command-and-wait-for-it-to-finish","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {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(_components.p, {\n children: [\"Runs a command to completion and returns its output in a single\\nresponse, retained up to a server-side cap (see \", _jsx(_components.code, {\n children: \"truncated\"\n }), \"). For live\\nor unbounded output use \", _jsx(_components.code, {\n children: \"POST /exec/stream\"\n }), \" (Server-Sent Events) or\\n\", _jsx(_components.code, {\n children: \"GET /exec/connect\"\n }), \" (WebSocket). A non-zero exit code is returned in\\nthe body, not as an HTTP error. The sandbox must be \", _jsx(_components.code, {\n children: \"running\"\n }), \"; a\\npaused sandbox returns \", _jsx(_components.code, {\n children: \"503\"\n }), \". Activate it first with\\n\", _jsx(_components.code, {\n children: \"POST /sandboxes/{sandbox_id}/activate\"\n }), \" (the SDKs do this\\nautomatically).\"]\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":{"codeStyling":{"theme":{"light":"github-light","dark":"vitesse-dark"}},"config":{},"pageMetadata":{"title":"Run a command and wait for it to finish","description":"Runs a command to completion and returns its output in a single\nresponse, retained up to a server-side cap (see `truncated`). For live\nor unbounded output use `POST /exec/stream` (Server-Sent Events) or\n`GET /exec/connect` (WebSocket). A non-zero exit code is returned in\nthe body, not as an HTTP error. The sandbox must be `running`; a\npaused sandbox returns `503`. Activate it first with\n`POST /sandboxes/{sandbox_id}/activate` (the SDKs do this\nautomatically).\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec","href":"/api-reference/exec/run-a-command-and-wait-for-it-to-finish","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/superserve-ai-superserve-33/3827cde3b4df02bf/letter.min.js"],"openApiReferenceData":{"operation":{"operationId":"execRun","tags":["Exec"],"summary":"Run a command and wait for it to finish","description":"Runs a command to completion and returns its output in a single\nresponse, retained up to a server-side cap (see `truncated`). For live\nor unbounded output use `POST /exec/stream` (Server-Sent Events) or\n`GET /exec/connect` (WebSocket). A non-zero exit code is returned in\nthe body, not as an HTTP error. The sandbox must be `running`; a\npaused sandbox returns `503`. Activate it first with\n`POST /sandboxes/{sandbox_id}/activate` (the SDKs do this\nautomatically).\n","security":["8457c5f5-152f-4ab0-a357-6128944f7a66"],"requestBody":"a3616848-7611-40dc-b307-63945e8f2039","responses":{"200":"226000cf-04a4-416a-8fed-1f9ca548ca54","400":"616dc75e-8661-4815-a36f-223279b6fd6c","401":"2e8d62b6-8ed5-4392-93c7-2420bc52a2ab","404":"a5820253-d11d-476d-aed7-9f5fdf284ab4","500":"1db53aab-7661-47c9-a89e-8b486503b7c5","503":"eddb27fd-1681-4e4d-a9ad-9d434f338a0d"},"method":"post","type":"path","servers":["f7306525-4188-4f36-bcd3-85bae3cdb8f9","bbe6ba11-4c18-4cd8-a3b0-66528e53b88e"],"path":"/exec","baseUrlOptions":["https://sandbox.superserve.ai","https://boxd-{sandbox_id}.sandbox.superserve.ai"],"title":"Run a command and wait for it to finish","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["command"],"properties":{"command":{"type":"string","minLength":1,"description":"Command to execute. Wrapped in `/bin/sh -c` unless `args` is provided.","isRequired":true,"uniqueKey":"command","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"args.items.[INDEX]","typeLabel":"string"},"description":"If provided, `command` is used as the binary and `args` as arguments (no shell wrapping).","uniqueKey":"args","typeLabel":"string[]"},"env":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"env.additionalProperties","typeLabel":"string"},"description":"Environment variables for the command.","uniqueKey":"env","typeLabel":"object"},"working_dir":{"type":"string","description":"Working directory (default the template's working directory, else the user's home, which is `/home/user` for root).","uniqueKey":"working_dir","typeLabel":"string"},"timeout_s":{"type":"integer","default":30,"description":"Timeout in seconds.","uniqueKey":"timeout_s","typeLabel":"integer"},"user":{"type":"string","description":"User to run the command as: a name, a uid, `name:group`, or `uid:gid` (default the template's user). An unknown user or group fails as `bad_request` (400 on `POST /exec`).\n","example":"root","uniqueKey":"user","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"command":"\u003cstring>","args":["\u003cstring>"],"env":{},"working_dir":"\u003cstring>","timeout_s":30,"user":"root"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"226000cf-04a4-416a-8fed-1f9ca548ca54":{"description":"The command finished; output and exit code.","content":{"application/json":{"schema":{"type":"object","description":"Output of a command run to completion via `POST /exec`.","required":["stdout","stderr","exit_code"],"properties":{"stdout":{"type":"string","description":"Standard output; see `truncated`.","isRequired":true,"uniqueKey":"stdout","typeLabel":"string"},"stderr":{"type":"string","description":"Standard error; see `truncated`.","isRequired":true,"uniqueKey":"stderr","typeLabel":"string"},"exit_code":{"type":"integer","description":"Process exit code. A non-zero value is returned, not raised.","isRequired":true,"uniqueKey":"exit_code","typeLabel":"integer"},"truncated":{"type":"boolean","description":"Present and true when combined stdout/stderr exceeded the server-side retention cap (currently 8 MiB) and the tail was dropped; a notice explaining the cut is also appended to `stderr`. Use `POST /exec/stream` for unbounded output.\n","uniqueKey":"truncated","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"stdout":"\u003cstring>","stderr":"\u003cstring>","exit_code":123,"truncated":true}}},"exampleType":"generated"}},"exampleType":"generated"},"616dc75e-8661-4815-a36f-223279b6fd6c":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`,\n`trial_exhausted`, `trial_unavailable`, `trial_check_unavailable`,\n`free_allowance_exhausted`, `sandbox_exceeds_plan_limits`,\n`billing_ineligible`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"action_url":{"type":"string","format":"uri","example":"https://console.superserve.ai/plan-usage","description":"Where to resolve the error, when there is a next step. Sent with `trial_exhausted`, `trial_unavailable` and `trial_check_unavailable`: the page where the team adds a card and chooses a plan.\n","uniqueKey":"error.action_url","typeLabel":"string\u003curi>"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","action_url":"https://console.superserve.ai/plan-usage"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2e8d62b6-8ed5-4392-93c7-2420bc52a2ab":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`,\n`trial_exhausted`, `trial_unavailable`, `trial_check_unavailable`,\n`free_allowance_exhausted`, `sandbox_exceeds_plan_limits`,\n`billing_ineligible`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"action_url":{"type":"string","format":"uri","example":"https://console.superserve.ai/plan-usage","description":"Where to resolve the error, when there is a next step. Sent with `trial_exhausted`, `trial_unavailable` and `trial_check_unavailable`: the page where the team adds a card and chooses a plan.\n","uniqueKey":"error.action_url","typeLabel":"string\u003curi>"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","action_url":"https://console.superserve.ai/plan-usage"}}}},"exampleType":"generated"}},"exampleType":"generated"},"a5820253-d11d-476d-aed7-9f5fdf284ab4":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`,\n`trial_exhausted`, `trial_unavailable`, `trial_check_unavailable`,\n`free_allowance_exhausted`, `sandbox_exceeds_plan_limits`,\n`billing_ineligible`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"action_url":{"type":"string","format":"uri","example":"https://console.superserve.ai/plan-usage","description":"Where to resolve the error, when there is a next step. Sent with `trial_exhausted`, `trial_unavailable` and `trial_check_unavailable`: the page where the team adds a card and chooses a plan.\n","uniqueKey":"error.action_url","typeLabel":"string\u003curi>"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","action_url":"https://console.superserve.ai/plan-usage"}}}},"exampleType":"generated"}},"exampleType":"generated"},"1db53aab-7661-47c9-a89e-8b486503b7c5":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`,\n`trial_exhausted`, `trial_unavailable`, `trial_check_unavailable`,\n`free_allowance_exhausted`, `sandbox_exceeds_plan_limits`,\n`billing_ineligible`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"action_url":{"type":"string","format":"uri","example":"https://console.superserve.ai/plan-usage","description":"Where to resolve the error, when there is a next step. Sent with `trial_exhausted`, `trial_unavailable` and `trial_check_unavailable`: the page where the team adds a card and chooses a plan.\n","uniqueKey":"error.action_url","typeLabel":"string\u003curi>"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","action_url":"https://console.superserve.ai/plan-usage"}}}},"exampleType":"generated"}},"exampleType":"generated"},"eddb27fd-1681-4e4d-a9ad-9d434f338a0d":{"description":"The sandbox is not currently running (for example, paused) or is temporarily unavailable. For a paused sandbox, activate it with `POST /sandboxes/{sandbox_id}/activate` and retry; the SDKs do this automatically.\n","content":{"application/json":{"schema":{"type":"object","description":"Error envelope. `error.code` is a stable, machine-readable identifier\n(e.g. `bad_request`, `not_found`, `conflict`, `sandbox_pausing`,\n`rate_limited`, `too_many_builds`, `too_many_templates`, `too_many_sandboxes`,\n`image_pull_failed`, `step_failed`, `snapshot_failed`,\n`start_cmd_failed`, `ready_cmd_failed`, `capacity_unavailable`,\n`build_timed_out`, `infrastructure_failed`, `build_failed`,\n`trial_exhausted`, `trial_unavailable`, `trial_check_unavailable`,\n`free_allowance_exhausted`, `sandbox_exceeds_plan_limits`,\n`billing_ineligible`).\n`error.message` is human-readable and may change between releases;\nclients should branch on `code`, not `message`.\n","properties":{"error":{"type":"object","properties":{"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"action_url":{"type":"string","format":"uri","example":"https://console.superserve.ai/plan-usage","description":"Where to resolve the error, when there is a next step. Sent with `trial_exhausted`, `trial_unavailable` and `trial_check_unavailable`: the page where the team adds a card and chooses a plan.\n","uniqueKey":"error.action_url","typeLabel":"string\u003curi>"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","action_url":"https://console.superserve.ai/plan-usage"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"8457c5f5-152f-4ab0-a357-6128944f7a66":{"accessToken":{"type":"apiKey","in":"header","name":"X-Access-Token","description":"Per-sandbox token returned by create, resume, and activate. Grants access to a single sandbox's files and commands. Distinct from the team `X-API-Key`.\n","scopes":[],"schemeName":"accessToken"}}},"servers":{"f7306525-4188-4f36-bcd3-85bae3cdb8f9":{"url":"https://sandbox.superserve.ai","description":"Shared host — send the sandbox ID in `X-Superserve-Sandbox-Id`."},"bbe6ba11-4c18-4cd8-a3b0-66528e53b88e":{"url":"https://boxd-{sandbox_id}.sandbox.superserve.ai","description":"Per-sandbox host.","variables":{"sandbox_id":{"default":"","description":"The sandbox ID."}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Access-Token","description":"Per-sandbox token returned by create, resume, and activate. Grants access to a single sandbox's files and commands. Distinct from the team `X-API-Key`.\n","scopes":[],"schemeName":"accessToken"},"schema":{"title":"X-Access-Token","type":"string","description":"Per-sandbox token returned by create, resume, and activate. Grants access to a single sandbox's files and commands. Distinct from the team `X-API-Key`.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"accessToken","name":"X-Access-Token"}],"title":"accessToken"}]},"originalFileLocation":"https://api.superserve.ai/openapi.yaml"},"subdomain":"superserve-ai-superserve-33","siteName":"Superserve","title":"Run a command and wait for it to finish - Superserve","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-07T07:17:05.802Z","originalFileLocation":"api-reference/exec/run-a-command-and-wait-for-it-to-finish.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"Runs a command to completion and returns its output in a single response, retained up to a server-side cap (see truncated). For live or unbounded output use POST /exec/stream (Server-Sent Events) or GET /exec/connect (WebSocket). A non-zero exit code is returned in the body, not as an HTTP error. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Superserve\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Run a command and wait for it to finish - Superserve\">\u003cmeta data-mint-head property=\"og:description\" content=\"Runs a command to completion and returns its output in a single response, retained up to a server-side cap (see truncated). For live or unbounded output use POST /exec/stream (Server-Sent Events) or GET /exec/connect (WebSocket). A non-zero exit code is returned in the body, not as an HTTP error. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Superserve\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://superserve-ai-superserve-33.mintlify.site/_mintlify/api/og/v2?division=Exec\u0026amp;title=Run+a+command+and+wait+for+it+to+finish\u0026amp;description=Runs+a+command+to+completion+and+returns+its+output+in+a+single%0Aresponse%2C+retained+up+to+a+server-side+cap+%28see+%60truncated%60%29.+For+live%0Aor+unbounded+output+use+%60\u0026amp;theme=812d3aa274a9b09d054f08f6\u0026amp;signature=2c3d0f1a2044f18d0f67739be825be4c45c5fb940f9961c0c88463b54fc96a28\">\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=\"Run a command and wait for it to finish - Superserve\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Runs a command to completion and returns its output in a single response, retained up to a server-side cap (see truncated). For live or unbounded output use POST /exec/stream (Server-Sent Events) or GET /exec/connect (WebSocket). A non-zero exit code is returned in the body, not as an HTTP error. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://superserve-ai-superserve-33.mintlify.site/_mintlify/api/og/v2?division=Exec\u0026amp;title=Run+a+command+and+wait+for+it+to+finish\u0026amp;description=Runs+a+command+to+completion+and+returns+its+output+in+a+single%0Aresponse%2C+retained+up+to+a+server-side+cap+%28see+%60truncated%60%29.+For+live%0Aor+unbounded+output+use+%60\u0026amp;theme=812d3aa274a9b09d054f08f6\u0026amp;signature=2c3d0f1a2044f18d0f67739be825be4c45c5fb940f9961c0c88463b54fc96a28\">\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/superserve-ai-superserve-33/Ce0V87RVeZcleFb4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Superserve\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#B2FAB4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/exec/run-a-command-and-wait-for-it-to-finish.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.superserve.ai/#organization\",\"name\":\"Superserve\",\"url\":\"https://docs.superserve.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/superserve-ai-superserve-33/G055TX3BjwXpQedU/logo.svg?fit=max\u0026auto=format\u0026n=G055TX3BjwXpQedU\u0026q=85\u0026s=69233fb550a17b81d7d7fa083ca7f3de\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.superserve.ai#website\",\"name\":\"Superserve\",\"url\":\"https://docs.superserve.ai\",\"publisher\":{\"@id\":\"https://docs.superserve.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish#webpage\",\"url\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish\",\"name\":\"Run a command and wait for it to finish\",\"description\":\"Runs a command to completion and returns its output in a single response, retained up to a server-side cap (see truncated). For live or unbounded output use POST /exec/stream (Server-Sent Events) or GET /exec/connect (WebSocket). A non-zero exit code is returned in the body, not as an HTTP error. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically).\",\"dateModified\":\"2026-11-07T07:17:05.802Z\",\"isPartOf\":{\"@id\":\"https://docs.superserve.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Superserve\",\"item\":\"https://docs.superserve.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Run a command and wait for it to finish\",\"item\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish#apireference\",\"headline\":\"Run a command and wait for it to finish\",\"name\":\"Run a command and wait for it to finish\",\"description\":\"Runs a command to completion and returns its output in a single response, retained up to a server-side cap (see truncated). For live or unbounded output use POST /exec/stream (Server-Sent Events) or GET /exec/connect (WebSocket). A non-zero exit code is returned in the body, not as an HTTP error. The sandbox must be running; a paused sandbox returns 503. Activate it first with POST /sandboxes/{sandbox_id}/activate (the SDKs do this automatically).\",\"url\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish\",\"mainEntityOfPage\":{\"@id\":\"https://docs.superserve.ai/api-reference/exec/run-a-command-and-wait-for-it-to-finish#webpage\"},\"dateModified\":\"2026-11-07T07:17:05.802Z\",\"publisher\":{\"@id\":\"https://docs.superserve.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.superserve.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Superserve\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Superserve","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/introduction"}]},{"anchor":"SDK Reference","icon":"code","pages":[{"title":"SDK Reference","href":"/sdk-reference/sandbox"}]},{"anchor":"REST API","icon":"server","groups":[{"group":"Sandboxes","pages":[{"title":"List all sandboxes","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes","href":"/api-reference/sandboxes/list-all-sandboxes"},{"title":"Create a new sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes","href":"/api-reference/sandboxes/create-a-new-sandbox"},{"title":"Get a sandbox by ID","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}","href":"/api-reference/sandboxes/get-a-sandbox-by-id"},{"title":"Partially update a running sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /sandboxes/{sandbox_id}","href":"/api-reference/sandboxes/partially-update-a-running-sandbox"},{"title":"Delete a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /sandboxes/{sandbox_id}","href":"/api-reference/sandboxes/delete-a-sandbox"},{"title":"Pause a running sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/pause","href":"/api-reference/sandboxes/pause-a-running-sandbox"},{"title":"Resume a paused sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/resume","href":"/api-reference/sandboxes/resume-a-paused-sandbox"},{"title":"Activate a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/activate","href":"/api-reference/sandboxes/activate-a-sandbox"},{"title":"List a sandbox's egress activity","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/network","href":"/api-reference/sandboxes/list-a-sandboxs-egress-activity"},{"title":"List published preview ports","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/preview-ports","href":"/api-reference/sandboxes/list-published-preview-ports"},{"title":"Publish or update a preview port","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/preview-ports","href":"/api-reference/sandboxes/publish-or-update-a-preview-port"},{"title":"Unpublish a preview port","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /sandboxes/{sandbox_id}/preview-ports/{port}","href":"/api-reference/sandboxes/unpublish-a-preview-port"},{"title":"Mint a token for a private preview port","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/preview-ports/{port}/token","href":"/api-reference/sandboxes/mint-a-token-for-a-private-preview-port"},{"title":"Rotate a private preview port's token generation","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/preview-ports/{port}/token/rotate","href":"/api-reference/sandboxes/rotate-a-private-preview-ports-token-generation"}]},{"group":"Snapshots","pages":[{"title":"Snapshot a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/snapshot","href":"/api-reference/snapshots/snapshot-a-sandbox"},{"title":"List a sandbox's snapshots","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/snapshots","href":"/api-reference/snapshots/list-a-sandboxs-snapshots"},{"title":"Get a snapshot","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /snapshots/{snapshot_id}","href":"/api-reference/snapshots/get-a-snapshot"},{"title":"Rename a snapshot","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /snapshots/{snapshot_id}","href":"/api-reference/snapshots/rename-a-snapshot"},{"title":"Delete a snapshot","description":"Removes the snapshot. A snapshot still being created cannot be\ndeleted until it is ready, has failed, or has been creating for an\nhour without its host settling it.\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /snapshots/{snapshot_id}","href":"/api-reference/snapshots/delete-a-snapshot"}]},{"group":"Exec","pages":[{"title":"Run a command and wait for it to finish","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec","href":"/api-reference/exec/run-a-command-and-wait-for-it-to-finish"},{"title":"Run a command and stream output over SSE","description":"Runs a command and streams its output as Server-Sent Events while it\nruns. Each `data:` line is a JSON object: an output chunk\n(`{\"stdout\":\"...\"}` or `{\"stderr\":\"...\"}`), the terminal event\n(`{\"exit_code\":N,\"finished\":true}`), or an error\n(`{\"error\":\"...\",\"finished\":true}`). The stream closes when the command\nexits. The sandbox must be `running`; a paused sandbox returns `503`.\nActivate it first with `POST /sandboxes/{sandbox_id}/activate` (the SDKs\ndo this automatically).\n\n`timeout_s` is a hard runtime limit: the command is killed after that\nmany seconds regardless of output, exiting with code 124.\n","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /exec/stream","href":"/api-reference/exec/run-a-command-and-stream-output-over-sse"},{"title":"Run a command over a WebSocket","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /exec/connect","href":"/api-reference/exec/run-a-command-over-a-websocket"}]},{"group":"Files","pages":[{"title":"List a directory inside a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /sandboxes/{sandbox_id}/files","href":"/api-reference/files/list-a-directory-inside-a-sandbox"},{"title":"Read a file from a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /files","href":"/api-reference/files/read-a-file-from-a-sandbox"},{"title":"Write a file to a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /files","href":"/api-reference/files/write-a-file-to-a-sandbox"}]},{"group":"Templates","pages":[{"title":"List templates visible to the caller","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates","href":"/api-reference/templates/list-templates-visible-to-the-caller"},{"title":"Create a template and kick off the first build","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /templates","href":"/api-reference/templates/create-a-template-and-kick-off-the-first-build"},{"title":"Get a template by ID","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}","href":"/api-reference/templates/get-a-template-by-id"},{"title":"Delete a template","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /templates/{template_id}","href":"/api-reference/templates/delete-a-template"},{"title":"List recent builds for a template","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}/builds","href":"/api-reference/templates/list-recent-builds-for-a-template"},{"title":"Rebuild an existing template","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /templates/{template_id}/builds","href":"/api-reference/templates/rebuild-an-existing-template"},{"title":"Get a build by ID","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}/builds/{build_id}","href":"/api-reference/templates/get-a-build-by-id"},{"title":"Cancel an in-flight build","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /templates/{template_id}/builds/{build_id}","href":"/api-reference/templates/cancel-an-in-flight-build"},{"title":"Stream build logs via SSE","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /templates/{template_id}/builds/{build_id}/logs","href":"/api-reference/templates/stream-build-logs-via-sse"}]},{"group":"Secrets","pages":[{"title":"Create a secret","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /secrets","href":"/api-reference/secrets/create-a-secret"},{"title":"List secrets for the calling team","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets","href":"/api-reference/secrets/list-secrets-for-the-calling-team"},{"title":"Get a secret's metadata","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets/{name}","href":"/api-reference/secrets/get-a-secrets-metadata"},{"title":"Rotate a secret's value","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /secrets/{name}","href":"/api-reference/secrets/rotate-a-secrets-value"},{"title":"Revoke a secret","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /secrets/{name}","href":"/api-reference/secrets/revoke-a-secret"},{"title":"Attach a secret to a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /sandboxes/{sandbox_id}/secrets","href":"/api-reference/sandboxes/attach-a-secret-to-a-sandbox"},{"title":"Detach a secret from a sandbox","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /sandboxes/{sandbox_id}/secrets/{env_key}","href":"/api-reference/sandboxes/detach-a-secret-from-a-sandbox"},{"title":"List proxy egress events that used this credential","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets/{name}/audit","href":"/api-reference/secrets/list-proxy-egress-events-that-used-this-credential"},{"title":"List sandboxes currently bound to this credential","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /secrets/{name}/sandboxes","href":"/api-reference/secrets/list-sandboxes-currently-bound-to-this-credential"},{"title":"List the built-in provider shortcut catalog","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /providers","href":"/api-reference/secrets/list-the-built-in-provider-shortcut-catalog"}]},{"group":"Team Management","pages":[{"title":"Rename a team","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml patch /teams/{team_id}","href":"/api-reference/rbac/rename-a-team"},{"title":"List team members","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /teams/{team_id}/members","href":"/api-reference/rbac/list-team-members"},{"title":"Add or invite a team member","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/members","href":"/api-reference/rbac/add-or-invite-a-team-member"},{"title":"Deactivate a team member","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /teams/{team_id}/members/{user_id}","href":"/api-reference/rbac/deactivate-a-team-member"},{"title":"List team role assignments","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /teams/{team_id}/roles","href":"/api-reference/rbac/list-team-role-assignments"},{"title":"Assign a team role","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/roles","href":"/api-reference/rbac/assign-a-team-role"},{"title":"Revoke a team role","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml delete /teams/{team_id}/roles/{assignment_id}","href":"/api-reference/rbac/revoke-a-team-role"},{"title":"List team invitations","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /teams/{team_id}/invitations","href":"/api-reference/rbac/list-team-invitations"},{"title":"Invite an owner","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/invitations","href":"/api-reference/rbac/invite-an-owner"},{"title":"Resend a team invitation","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/invitations/{invitation_id}/resend","href":"/api-reference/rbac/resend-a-team-invitation"},{"title":"Revoke a team invitation","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/invitations/{invitation_id}/revoke","href":"/api-reference/rbac/revoke-a-team-invitation"},{"title":"Report invitation email delivery","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/invitations/{invitation_id}/delivery","href":"/api-reference/rbac/report-invitation-email-delivery"},{"title":"Leave a team","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml post /teams/{team_id}/leave","href":"/api-reference/rbac/leave-a-team"}]},{"group":"Activity","pages":[{"title":"List team audit-log activity","deprecated":null,"version":null,"openapi":"https://api.superserve.ai/openapi.yaml get /activity","href":"/api-reference/activity/list-team-audit-log-activity"}]}]},{"anchor":"Integrations","icon":"puzzle-piece","pages":[{"title":"Integrations","href":"/integrations/overview"}]}]},"basePath":"","title":"Run a command and wait for it to finish - Superserve","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BUDYNlhG.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}