Creates a server-owned environment definition in the environment catalog.
REST environment requests only accept inline Dockerfile content; local
Dockerfile paths are supported by workflow/settings files but rejected
by this API.
Sandbox provider kind. local, docker, and daytona are bundled
with the server; any other value names a sandbox-driver plugin
configured under server.sandbox.providers.<kind>.
Sandbox provider kind. local, docker, and daytona are bundled
with the server; any other value names a sandbox-driver plugin
configured under server.sandbox.providers.<kind>.
Local-provider command working directory for this environment. Docker and Daytona ignore this value.
Example:
"/srv/fabro/workspaces/team-a"
⌘I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Fabro","colors":{"primary":"#357F9E","light":"#67B2D7","dark":"#357F9E"},"logo":{"light":"https://mintcdn.com/qltysoftware-21b56213/-urDLCwpQ5cwP5xH/logo/light.svg?fit=max\u0026auto=format\u0026n=-urDLCwpQ5cwP5xH\u0026q=85\u0026s=6956186f08cfc81047825dc8804d608d","dark":"https://mintcdn.com/qltysoftware-21b56213/-urDLCwpQ5cwP5xH/logo/dark.svg?fit=max\u0026auto=format\u0026n=-urDLCwpQ5cwP5xH\u0026q=85\u0026s=d81187a35e5416e36f882a582c9081b0"},"favicon":"https://mintcdn.com/qltysoftware-21b56213/cmr0Bl6XIobDw8XV/favicon.svg?fit=max\u0026auto=format\u0026n=cmr0Bl6XIobDw8XV\u0026q=85\u0026s=bccc7de06947c121e4aaa40f1eb786b7","navbar":{"primary":{"type":"button","label":"Get Started","href":"/getting-started/introduction"}},"footer":{"socials":{"x":"https://x.com/fabro_sh","github":"https://github.com/fabro-sh"}},"styling":{"codeblocks":{"languages":{"custom":["/languages/dot.json","/languages/fabro.json"]}},"latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qltysoftware-21b56213","hasAudioNarration":false,"actualSubdomain":"qltysoftware-21b56213","customDomains":["docs.fabro.sh"],"gitSource":{"type":"github","owner":"fabro-sh","repo":"fabro","deployBranch":"main","contentDirectory":"docs/public","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb96dbe291c0b0d5a6a18b","collectionId":"283b34c7-9ab1-4c61-b560-6a956d8e8b19","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb96dbe291c0b0d5a6a18b"},"entitlements":{},"buildId":"6adb96dbe291c0b0d5a6a18b","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Changelog","count":144},{"language":"default","tag":"Documentation","count":65},{"language":"default","tag":"API Reference","count":46},{"language":"default","tag":"March 2026","count":29},{"language":"default","tag":"April 2026","count":28},{"language":"default","tag":"May 2026","count":28},{"language":"default","tag":"July 2026","count":18},{"language":"default","tag":"June 2026","count":17},{"language":"default","tag":"August 2026","count":17},{"language":"default","tag":"Guides","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"editor-nav-generations","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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/environments/create-environment","slug":"/api-reference/environments/create-environment","pageMetadata":{"title":"Create environment","description":"Creates a server-owned environment definition in the environment catalog.\nREST environment requests only accept inline Dockerfile content; local\nDockerfile paths are supported by workflow/settings files but rejected\nby this API.\n","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/environments","href":"/api-reference/environments/create-environment","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a server-owned environment definition in the environment catalog.\\nREST environment requests only accept inline Dockerfile content; local\\nDockerfile paths are supported by workflow/settings files but rejected\\nby this API.\"\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":{"languages":{"custom":["/languages/dot.json","/languages/fabro.json"]}},"config":{},"pageMetadata":{"title":"Create environment","description":"Creates a server-owned environment definition in the environment catalog.\nREST environment requests only accept inline Dockerfile content; local\nDockerfile paths are supported by workflow/settings files but rejected\nby this API.\n","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/environments","href":"/api-reference/environments/create-environment","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/qltysoftware-21b56213/3bd11446cf383877/dot-highlight.js"],"openApiReferenceData":{"operation":{"operationId":"createEnvironment","tags":["Environments"],"summary":"Create environment","description":"Creates a server-owned environment definition in the environment catalog.\nREST environment requests only accept inline Dockerfile content; local\nDockerfile paths are supported by workflow/settings files but rejected\nby this API.\n","requestBody":"b6ba9815-01d0-4c47-8977-1ee8d1e8f169","responses":{"201":"ddf534f9-aa73-45d3-a61b-5c30111fd2b4","400":"538b9e6e-e7c1-4a57-9acd-332207088f2e","409":"9d954156-5c92-4bc8-ae56-dd8227ed1af2","422":"ac29607b-4127-4571-834b-eb63fa6b1073","500":"5d5a36e5-60d0-451c-891d-7a0bebe1eac5"},"method":"post","type":"path","servers":[],"security":["997801b2-a1e9-4630-a2b4-0eb4963e2da0","d0ce1aed-392f-4fe8-895d-aa4b8deffc3b"],"path":"/api/v1/environments","baseUrlOptions":[],"title":"Create environment","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"description":"Request body for creating a server-managed environment.","type":"object","additionalProperties":false,"required":["id","provider","image","resources","network","lifecycle","labels","env"],"properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$","example":"docker","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"provider":{"description":"Sandbox provider kind. `local`, `docker`, and `daytona` are bundled\nwith the server; any other value names a sandbox-driver plugin\nconfigured under `server.sandbox.providers.\u003ckind>`.\n","type":"string","pattern":"^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$","example":"docker","isRequired":true,"uniqueKey":"provider","typeLabel":"string"},"image":{"description":"REST-safe environment image settings. Dockerfile sources are inline-only; local paths are rejected by the REST API.","type":"object","additionalProperties":false,"required":["docker","dockerfile"],"properties":{"docker":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"image.docker.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"image.docker.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"image.docker","typeLabel":"string | null"},"dockerfile":{"oneOf":[{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["inline"],"isRequired":true,"uniqueKey":"image.dockerfile.oneOf.0.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","isRequired":true,"uniqueKey":"image.dockerfile.oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"image.dockerfile.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"image.dockerfile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"image.dockerfile","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"image","typeLabel":"object"},"resources":{"type":"object","required":["cpu","memory","disk"],"properties":{"cpu":{"oneOf":[{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"resources.cpu.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","isRequired":true,"uniqueKey":"resources.cpu.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resources.cpu","typeLabel":"integer\u003cint32> | null"},"memory":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"resources.memory.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"resources.memory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resources.memory","typeLabel":"string | null"},"disk":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"resources.disk.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"resources.disk.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resources.disk","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"resources","typeLabel":"object"},"network":{"type":"object","required":["mode","allow"],"properties":{"mode":{"type":"string","enum":["allow_all","block","cidr_allow_list"],"isRequired":true,"uniqueKey":"network.mode","typeLabel":"enum\u003cstring>"},"allow":{"type":"array","items":{"type":"string","uniqueKey":"network.allow.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"network.allow","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"network","typeLabel":"object"},"lifecycle":{"type":"object","required":["preserve","stop_on_terminal","auto_stop"],"properties":{"preserve":{"type":"boolean","isRequired":true,"uniqueKey":"lifecycle.preserve","typeLabel":"boolean"},"stop_on_terminal":{"type":"boolean","isRequired":true,"uniqueKey":"lifecycle.stop_on_terminal","typeLabel":"boolean"},"auto_stop":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"lifecycle.auto_stop.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"lifecycle.auto_stop.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lifecycle.auto_stop","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"lifecycle","typeLabel":"object"},"labels":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"labels.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"labels","typeLabel":"object"},"env":{"type":"object","additionalProperties":{"description":"Config string that can contain typed interpolation tokens.","type":"string","uniqueKey":"env.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"env","typeLabel":"object"},"cwd":{"oneOf":[{"type":"string","description":"Local-provider command working directory for this environment. Docker and Daytona ignore this value.","example":"/srv/fabro/workspaces/team-a","uniqueKey":"cwd.oneOf.0","typeLabel":"string"},{"type":"null","description":"Local-provider command working directory for this environment. Docker and Daytona ignore this value.","example":"/srv/fabro/workspaces/team-a","uniqueKey":"cwd.oneOf.1","typeLabel":"null"}],"uniqueKey":"cwd","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"docker","provider":"docker","image":{"docker":"\u003cstring>","dockerfile":{"type":"inline","value":"\u003cstring>"}},"resources":{"cpu":123,"memory":"\u003cstring>","disk":"\u003cstring>"},"network":{"allow":["\u003cstring>"]},"lifecycle":{"preserve":true,"stop_on_terminal":true,"auto_stop":"\u003cstring>"},"labels":{},"env":{},"cwd":"/srv/fabro/workspaces/team-a"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ddf534f9-aa73-45d3-a61b-5c30111fd2b4":{"description":"Environment created","content":{"application/json":{"schema":{"description":"Public server-managed environment definition.","type":"object","additionalProperties":false,"required":["id","revision","provider","image","resources","network","lifecycle","labels","env"],"properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$","example":"docker","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"revision":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"Stable revision used with `If-Match` for optimistic concurrency.","example":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","isRequired":true,"uniqueKey":"revision","typeLabel":"string"},"provider":{"description":"Sandbox provider kind. `local`, `docker`, and `daytona` are bundled\nwith the server; any other value names a sandbox-driver plugin\nconfigured under `server.sandbox.providers.\u003ckind>`.\n","type":"string","pattern":"^[a-z0-9]([a-z0-9-]{0,62}[a-z0-9])?$","example":"docker","isRequired":true,"uniqueKey":"provider","typeLabel":"string"},"image":{"description":"REST-safe environment image settings. Dockerfile sources are inline-only; local paths are rejected by the REST API.","type":"object","additionalProperties":false,"required":["docker","dockerfile"],"properties":{"docker":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"image.docker.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"image.docker.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"image.docker","typeLabel":"string | null"},"dockerfile":{"oneOf":[{"type":"object","required":["type","value"],"properties":{"type":{"type":"string","enum":["inline"],"isRequired":true,"uniqueKey":"image.dockerfile.oneOf.0.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","isRequired":true,"uniqueKey":"image.dockerfile.oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"image.dockerfile.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"image.dockerfile.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"image.dockerfile","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"image","typeLabel":"object"},"resources":{"type":"object","required":["cpu","memory","disk"],"properties":{"cpu":{"oneOf":[{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"resources.cpu.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","isRequired":true,"uniqueKey":"resources.cpu.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resources.cpu","typeLabel":"integer\u003cint32> | null"},"memory":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"resources.memory.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"resources.memory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resources.memory","typeLabel":"string | null"},"disk":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"resources.disk.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"resources.disk.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resources.disk","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"resources","typeLabel":"object"},"network":{"type":"object","required":["mode","allow"],"properties":{"mode":{"type":"string","enum":["allow_all","block","cidr_allow_list"],"isRequired":true,"uniqueKey":"network.mode","typeLabel":"enum\u003cstring>"},"allow":{"type":"array","items":{"type":"string","uniqueKey":"network.allow.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"network.allow","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"network","typeLabel":"object"},"lifecycle":{"type":"object","required":["preserve","stop_on_terminal","auto_stop"],"properties":{"preserve":{"type":"boolean","isRequired":true,"uniqueKey":"lifecycle.preserve","typeLabel":"boolean"},"stop_on_terminal":{"type":"boolean","isRequired":true,"uniqueKey":"lifecycle.stop_on_terminal","typeLabel":"boolean"},"auto_stop":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"lifecycle.auto_stop.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"lifecycle.auto_stop.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lifecycle.auto_stop","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"lifecycle","typeLabel":"object"},"labels":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"labels.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"labels","typeLabel":"object"},"env":{"type":"object","additionalProperties":{"description":"Config string that can contain typed interpolation tokens.","type":"string","uniqueKey":"env.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"env","typeLabel":"object"},"cwd":{"oneOf":[{"type":"string","description":"Local-provider command working directory for this environment. Docker and Daytona ignore this value.","example":"/srv/fabro/workspaces/team-a","uniqueKey":"cwd.oneOf.0","typeLabel":"string"},{"type":"null","description":"Local-provider command working directory for this environment. Docker and Daytona ignore this value.","example":"/srv/fabro/workspaces/team-a","uniqueKey":"cwd.oneOf.1","typeLabel":"null"}],"uniqueKey":"cwd","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"docker","revision":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","provider":"docker","image":{"docker":"\u003cstring>","dockerfile":{"type":"inline","value":"\u003cstring>"}},"resources":{"cpu":123,"memory":"\u003cstring>","disk":"\u003cstring>"},"network":{"mode":"allow_all","allow":["\u003cstring>"]},"lifecycle":{"preserve":true,"stop_on_terminal":true,"auto_stop":"\u003cstring>"},"labels":{},"env":{},"cwd":"/srv/fabro/workspaces/team-a"}}},"exampleType":"generated"}},"exampleType":"generated"},"538b9e6e-e7c1-4a57-9acd-332207088f2e":{"description":"Malformed JSON request body","headers":{"x-request-id":{"description":"Server-generated request identifier emitted on every response and referenced on standard error responses for correlating client errors with server logs.\n","schema":{"type":"string","format":"uuid"}}},"content":{"application/json":{"schema":{"description":"Standard error response containing one or more error entries.","type":"object","required":["errors"],"properties":{"errors":{"type":"array","description":"List of error entries.","items":{"description":"A single error entry in an error response.","type":"object","required":["status","title","detail"],"properties":{"status":{"type":"string","description":"HTTP status code as a string.","example":"404","isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"type":"string","description":"Short error classification.","example":"Not Found","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable error description.","example":"Run not found.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"type":"string","description":"Optional machine-readable error code for structured client handling.","example":"access_token_expired","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string\u003cuuid>"},"meta":{"type":"object","additionalProperties":true,"description":"Optional structured details specific to the error `code`, for clients that act on them. Each code documents the members it sets.","uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"leftover_env_keys":{"type":"array","description":"Optional list of runtime env keys that were written before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"leftover_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"leftover_env_keys","typeLabel":"string[]"},"removed_env_keys":{"type":"array","description":"Optional list of runtime env keys that were actually removed before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"removed_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"removed_env_keys","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"status":"404","title":"Not Found","detail":"Run not found.","code":"access_token_expired","request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","meta":{}}],"request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","leftover_env_keys":["\u003cstring>"],"removed_env_keys":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"9d954156-5c92-4bc8-ae56-dd8227ed1af2":{"description":"Environment id already exists","headers":{"x-request-id":{"description":"Server-generated request identifier emitted on every response and referenced on standard error responses for correlating client errors with server logs.\n","schema":{"type":"string","format":"uuid"}}},"content":{"application/json":{"schema":{"description":"Standard error response containing one or more error entries.","type":"object","required":["errors"],"properties":{"errors":{"type":"array","description":"List of error entries.","items":{"description":"A single error entry in an error response.","type":"object","required":["status","title","detail"],"properties":{"status":{"type":"string","description":"HTTP status code as a string.","example":"404","isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"type":"string","description":"Short error classification.","example":"Not Found","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable error description.","example":"Run not found.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"type":"string","description":"Optional machine-readable error code for structured client handling.","example":"access_token_expired","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string\u003cuuid>"},"meta":{"type":"object","additionalProperties":true,"description":"Optional structured details specific to the error `code`, for clients that act on them. Each code documents the members it sets.","uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"leftover_env_keys":{"type":"array","description":"Optional list of runtime env keys that were written before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"leftover_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"leftover_env_keys","typeLabel":"string[]"},"removed_env_keys":{"type":"array","description":"Optional list of runtime env keys that were actually removed before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"removed_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"removed_env_keys","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"status":"404","title":"Not Found","detail":"Run not found.","code":"access_token_expired","request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","meta":{}}],"request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","leftover_env_keys":["\u003cstring>"],"removed_env_keys":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"ac29607b-4127-4571-834b-eb63fa6b1073":{"description":"Environment failed domain validation","headers":{"x-request-id":{"description":"Server-generated request identifier emitted on every response and referenced on standard error responses for correlating client errors with server logs.\n","schema":{"type":"string","format":"uuid"}}},"content":{"application/json":{"schema":{"description":"Standard error response containing one or more error entries.","type":"object","required":["errors"],"properties":{"errors":{"type":"array","description":"List of error entries.","items":{"description":"A single error entry in an error response.","type":"object","required":["status","title","detail"],"properties":{"status":{"type":"string","description":"HTTP status code as a string.","example":"404","isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"type":"string","description":"Short error classification.","example":"Not Found","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable error description.","example":"Run not found.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"type":"string","description":"Optional machine-readable error code for structured client handling.","example":"access_token_expired","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string\u003cuuid>"},"meta":{"type":"object","additionalProperties":true,"description":"Optional structured details specific to the error `code`, for clients that act on them. Each code documents the members it sets.","uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"leftover_env_keys":{"type":"array","description":"Optional list of runtime env keys that were written before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"leftover_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"leftover_env_keys","typeLabel":"string[]"},"removed_env_keys":{"type":"array","description":"Optional list of runtime env keys that were actually removed before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"removed_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"removed_env_keys","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"status":"404","title":"Not Found","detail":"Run not found.","code":"access_token_expired","request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","meta":{}}],"request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","leftover_env_keys":["\u003cstring>"],"removed_env_keys":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"5d5a36e5-60d0-451c-891d-7a0bebe1eac5":{"description":"Environment store operation failed","headers":{"x-request-id":{"description":"Server-generated request identifier emitted on every response and referenced on standard error responses for correlating client errors with server logs.\n","schema":{"type":"string","format":"uuid"}}},"content":{"application/json":{"schema":{"description":"Standard error response containing one or more error entries.","type":"object","required":["errors"],"properties":{"errors":{"type":"array","description":"List of error entries.","items":{"description":"A single error entry in an error response.","type":"object","required":["status","title","detail"],"properties":{"status":{"type":"string","description":"HTTP status code as a string.","example":"404","isRequired":true,"uniqueKey":"errors.items.[INDEX].status","typeLabel":"string"},"title":{"type":"string","description":"Short error classification.","example":"Not Found","isRequired":true,"uniqueKey":"errors.items.[INDEX].title","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable error description.","example":"Run not found.","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"code":{"type":"string","description":"Optional machine-readable error code for structured client handling.","example":"access_token_expired","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string\u003cuuid>"},"meta":{"type":"object","additionalProperties":true,"description":"Optional structured details specific to the error `code`, for clients that act on them. Each code documents the members it sets.","uniqueKey":"errors.items.[INDEX].meta","typeLabel":"object"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"},"request_id":{"type":"string","format":"uuid","description":"Server-generated request identifier; matches the x-request-id response header.","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"leftover_env_keys":{"type":"array","description":"Optional list of runtime env keys that were written before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"leftover_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"leftover_env_keys","typeLabel":"string[]"},"removed_env_keys":{"type":"array","description":"Optional list of runtime env keys that were actually removed before an install failure. Currently populated by `POST /install/finish` failure responses only.","items":{"type":"string","uniqueKey":"removed_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"removed_env_keys","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"status":"404","title":"Not Found","detail":"Run not found.","code":"access_token_expired","request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","meta":{}}],"request_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","leftover_env_keys":["\u003cstring>"],"removed_env_keys":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"997801b2-a1e9-4630-a2b4-0eb4963e2da0":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"opaque","description":"Raw dev token passed as `Authorization: Bearer fabro_dev_...` when `server.auth.methods` includes `dev-token`.\n","scopes":[],"schemeName":"BearerAuth"}},"d0ce1aed-392f-4fe8-895d-aa4b8deffc3b":{"SessionCookie":{"type":"apiKey","in":"cookie","name":"__fabro_session","description":"Private session cookie issued after a successful web login. The server verifies and decodes the cookie before authenticating the request.\n","scopes":[],"schemeName":"SessionCookie"}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"opaque","description":"Raw dev token passed as `Authorization: Bearer fabro_dev_...` when `server.auth.methods` includes `dev-token`.\n","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Raw dev token passed as `Authorization: Bearer fabro_dev_...` when `server.auth.methods` includes `dev-token`.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"cookie","name":"__fabro_session","description":"Private session cookie issued after a successful web login. The server verifies and decodes the cookie before authenticating the request.\n","scopes":[],"schemeName":"SessionCookie"},"schema":{"title":"__fabro_session","type":"string","description":"Private session cookie issued after a successful web login. The server verifies and decodes the cookie before authenticating the request.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"SessionCookie","name":"__fabro_session"}],"title":"SessionCookie"}]},"originalFileLocation":"api-reference/fabro-api.yaml"},"subdomain":"qltysoftware-21b56213","siteName":"Fabro","title":"Create environment - Fabro","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T17:19:29.085Z","originalFileLocation":"api-reference/environments/create-environment.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 server-owned environment definition in the environment catalog. REST environment requests only accept inline Dockerfile content; local Dockerfile paths are supported by workflow/settings files but rejected by this API.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fabro\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create environment - Fabro\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a server-owned environment definition in the environment catalog. REST environment requests only accept inline Dockerfile content; local Dockerfile paths are supported by workflow/settings files but rejected by this API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fabro\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fabro.sh/api-reference/environments/create-environment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qltysoftware-21b56213.mintlify.app/_mintlify/api/og/v2?division=Environments\u0026amp;title=Create+environment\u0026amp;description=Creates+a+server-owned+environment+definition+in+the+environment+catalog.%0AREST+environment+requests+only+accept+inline+Dockerfile+content%3B+local%0ADockerfile+path\u0026amp;theme=28e7ed71f21f688d6b038590\u0026amp;signature=b1701cf1c0160f543f73fb603e77b6062699aa65d0a37122c624fc093f59b244\">\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 environment - Fabro\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a server-owned environment definition in the environment catalog. REST environment requests only accept inline Dockerfile content; local Dockerfile paths are supported by workflow/settings files but rejected by this API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qltysoftware-21b56213.mintlify.app/_mintlify/api/og/v2?division=Environments\u0026amp;title=Create+environment\u0026amp;description=Creates+a+server-owned+environment+definition+in+the+environment+catalog.%0AREST+environment+requests+only+accept+inline+Dockerfile+content%3B+local%0ADockerfile+path\u0026amp;theme=28e7ed71f21f688d6b038590\u0026amp;signature=b1701cf1c0160f543f73fb603e77b6062699aa65d0a37122c624fc093f59b244\">\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/qltysoftware-21b56213/HxsAqw6_xQvbbHcd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fabro\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#357F9E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fabro.sh/api-reference/environments/create-environment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/environments/create-environment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fabro.sh/#organization\",\"name\":\"Fabro\",\"url\":\"https://docs.fabro.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qltysoftware-21b56213/-urDLCwpQ5cwP5xH/logo/light.svg?fit=max\u0026auto=format\u0026n=-urDLCwpQ5cwP5xH\u0026q=85\u0026s=6956186f08cfc81047825dc8804d608d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fabro.sh#website\",\"name\":\"Fabro\",\"url\":\"https://docs.fabro.sh\",\"publisher\":{\"@id\":\"https://docs.fabro.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fabro.sh/api-reference/environments/create-environment#webpage\",\"url\":\"https://docs.fabro.sh/api-reference/environments/create-environment\",\"name\":\"Create environment\",\"description\":\"Creates a server-owned environment definition in the environment catalog. REST environment requests only accept inline Dockerfile content; local Dockerfile paths are supported by workflow/settings files but rejected by this API.\",\"dateModified\":\"2026-10-23T17:19:29.085Z\",\"isPartOf\":{\"@id\":\"https://docs.fabro.sh#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fabro.sh/api-reference/environments/create-environment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fabro.sh/api-reference/environments/create-environment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Environments\",\"item\":\"https://docs.fabro.sh/api-reference/environments/list-environments\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create environment\",\"item\":\"https://docs.fabro.sh/api-reference/environments/create-environment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fabro.sh/api-reference/environments/create-environment#apireference\",\"headline\":\"Create environment\",\"name\":\"Create environment\",\"description\":\"Creates a server-owned environment definition in the environment catalog. REST environment requests only accept inline Dockerfile content; local Dockerfile paths are supported by workflow/settings files but rejected by this API.\",\"url\":\"https://docs.fabro.sh/api-reference/environments/create-environment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fabro.sh/api-reference/environments/create-environment#webpage\"},\"dateModified\":\"2026-10-23T17:19:29.085Z\",\"publisher\":{\"@id\":\"https://docs.fabro.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fabro.sh#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fabro\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Fabro","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book","pages":[{"title":"Documentation","href":"/getting-started/introduction"}]},{"tab":"Guides","icon":"graduation-cap","pages":[{"title":"Guides","href":"/tutorials/hello-world"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Using the API","icon":"code","pages":[{"title":"API Overview","href":"/api-reference/overview"},{"title":"Client SDKs","href":"/api-reference/client-sdks"}]},{"group":"Workflow Versions","icon":"code-branch","pages":[{"title":"Create Workflow Version","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/workflow-versions","href":"/api-reference/workflow-versions/create-workflow-version"}]},{"group":"Runs","icon":"play","pages":[{"title":"List Runs","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs","href":"/api-reference/runs/list-runs"},{"title":"Create Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs","href":"/api-reference/runs/create-run"},{"title":"Retrieve Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}","href":"/api-reference/runs/retrieve-run"},{"title":"Link Run Parent","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml put /api/v1/runs/{id}/parent","href":"/api-reference/runs/link-run-parent"},{"title":"Unlink Run Parent","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml delete /api/v1/runs/{id}/parent","href":"/api-reference/runs/unlink-run-parent"},{"title":"Start Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/start","href":"/api-reference/runs/start-run"},{"title":"Approve Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/approve","href":"/api-reference/runs/approve-run"},{"title":"Deny Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/deny","href":"/api-reference/runs/deny-run"},{"title":"Cancel Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/cancel","href":"/api-reference/runs/cancel-run"},{"title":"Pause Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/pause","href":"/api-reference/runs/pause-run"},{"title":"Unpause Run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/unpause","href":"/api-reference/runs/unpause-run"},{"title":"Create Run Pull Request","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/pull_request","href":"/api-reference/runs/create-run-pull-request"},{"title":"Get Run Pull Request Creation","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/pull_request/creation","href":"/api-reference/runs/get-run-pull-request-creation"},{"title":"Render SVG","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/graph","href":"/api-reference/runs/render-svg"},{"title":"List Run Events","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/events","href":"/api-reference/run-internals/list-run-events"}]},{"group":"Human-in-the-Loop","icon":"hand","pages":[{"title":"List Run Questions","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/questions","href":"/api-reference/human-in-the-loop/list-run-questions"},{"title":"Submit Run Answer","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/questions/{qid}/answer","href":"/api-reference/human-in-the-loop/submit-run-answer"},{"title":"Preview URL","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/runs/{id}/preview","href":"/api-reference/human-in-the-loop/preview-url"}]},{"group":"Run Outputs","icon":"file-export","pages":[{"title":"List Run Artifacts","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/artifacts","href":"/api-reference/run-internals/list-run-artifacts"},{"title":"Download Run Artifacts","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/artifacts/download","href":"/api-reference/run-internals/download-run-artifacts"},{"title":"Retrieve Run Usage","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/usage","href":"/api-reference/run-outputs/retrieve-run-usage"},{"group":"Run Internals","icon":"microchip","pages":[{"title":"List Run Stages","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/stages","href":"/api-reference/run-internals/list-run-stages"},{"title":"Retrieve Run Settings","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/runs/{id}/settings","href":"/api-reference/run-internals/retrieve-run-settings"}]}]},{"group":"Automations","icon":"robot","pages":[{"title":"List automations","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/automations","href":"/api-reference/automations/list-automations"},{"title":"Create automation","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/automations","href":"/api-reference/automations/create-automation"},{"title":"Retrieve automation","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/automations/{id}","href":"/api-reference/automations/retrieve-automation"},{"title":"Replace automation","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml put /api/v1/automations/{id}","href":"/api-reference/automations/replace-automation"},{"title":"Delete automation","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml delete /api/v1/automations/{id}","href":"/api-reference/automations/delete-automation"},{"title":"List automation runs","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/automations/{id}/runs","href":"/api-reference/automations/list-automation-runs"},{"title":"Create automation run","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/automations/{id}/runs","href":"/api-reference/automations/create-automation-run"}]},{"group":"Environments","icon":"box","pages":[{"title":"List environments","description":"Returns all server-managed environment definitions, sorted by id.","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/environments","href":"/api-reference/environments/list-environments"},{"title":"Create environment","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/environments","href":"/api-reference/environments/create-environment"},{"title":"Retrieve environment","description":"Returns one server-managed environment definition by id.","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/environments/{id}","href":"/api-reference/environments/retrieve-environment"},{"title":"Replace environment","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml put /api/v1/environments/{id}","href":"/api-reference/environments/replace-environment"},{"title":"Delete environment","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml delete /api/v1/environments/{id}","href":"/api-reference/environments/delete-environment"}]},{"group":"Variables","icon":"brackets-curly","pages":[{"title":"List variables","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/variables","href":"/api-reference/variables/list-variables"},{"title":"Store or update a variable","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/variables","href":"/api-reference/variables/store-or-update-a-variable"},{"title":"Get a variable","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/variables/{name}","href":"/api-reference/variables/get-a-variable"},{"title":"Replace a variable value","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml put /api/v1/variables/{name}","href":"/api-reference/variables/replace-a-variable-value"},{"title":"Delete a variable","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml delete /api/v1/variables/{name}","href":"/api-reference/variables/delete-a-variable"}]},{"group":"More","icon":"ellipsis","pages":[{"group":"Administration","icon":"gear","pages":[{"title":"Retrieve Server Settings","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/settings","href":"/api-reference/settings/retrieve-server-settings"}]},{"group":"Models","icon":"microchip","pages":[{"title":"List Models","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml get /api/v1/models","href":"/api-reference/models/list-models"},{"title":"Test Model","deprecated":null,"version":null,"openapi":"/api-reference/fabro-api.yaml post /api/v1/models/{id}/test","href":"/api-reference/models/test-model"}]}]}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog/2026-09-03"}]}]},"title":"Create environment - Fabro","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}