Available on Enterprise 28, Enterprise 30 and Enterprise 32. The request is multipart/form-data. The build context has two mutually exclusive sources: file, or github_repository (the branch is optional). It must have a file named exactly Dockerfile at its root; a single wrapping folder is accepted. .env* files are removed from the context and .dockerignore is respected. The Dockerfile is never rewritten. See Custom Docker images for the rules.Needs the images:write scope when called with an API key. Check a Dockerfile first with Check Dockerfile.
Alternative to file: the GitHub repository to build from, as owner/name.
A repository in one of your GitHub App installations is linked to the image: a push to the branch rebuilds it.
A public repository outside your installations is built once, with no link (github is null in the response). To get automatic rebuilds, install the GitHub App on the repository and call Link Image to GitHub.
A private or nonexistent repository outside your installations fails with INSTALLATION_NOT_FOUND.
The branch of github_repository to build from. Optional: without it, the repository’s default branch is used (main, master or whatever the repository sets). When the repository is linked, this is also the branch whose pushes rebuild the image. A branch that does not exist fails with INSTALLATION_NOT_FOUND.
The image. Creation is asynchronous: the response is 202 Accepted with status: "building". Follow it with Get Image or the build logs until status is success or failed.
The applications created from this image. Each has id, name, version_id (the image version it runs, or null) and outdated (true when the image has a newer version; the app moves to it on the next restart or deploy you ask for).
The linked GitHub repository and branch (repository as owner/name, branch), or null when the image is not linked, as when it was built once from a public repository.
The error code indicating the reason for the failure. Possible values:
API_KEY_SCOPE_DENIED: The API key does not have the required scope (403).
VALIDATION_ERROR: The multipart body failed validation, for example a github_repository that is not owner/name (400).
PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES: The plan does not include custom Docker images (403).
MAX_IMAGES_REACHED: The plan’s limit of 20 images was reached; images in any state count (403).
DOCKERFILE_NOT_FOUND: There is no file named exactly Dockerfile at the root of the context (400).
DOCKERFILE_REFUSED: The Dockerfile has a refused instruction; details lists the findings (400). See Check Dockerfile.
IMAGE_CONTEXT_TOO_LARGE: The build context is over a limit: more than 100 MB compressed, more than 512 MB uncompressed, more than 50,000 entries, or a Dockerfile larger than 1 MB (413).
IMAGE_BUILDER_UNAVAILABLE: No host can build images right now; try again later (503).
INSTALLATION_NOT_FOUND: The repository is private or does not exist, and it is not in your GitHub App installations; or the branch does not exist (404).
REPO_ALREADY_LINKED: The repository is already linked to another image or application (409).
FETCH_ZIP_ERROR: GitHub could not be reached or was limiting requests while the repository was fetched (502). Try again in a few minutes.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vertra Cloud","description":"Vertra Cloud is a Brazilian application hosting platform (PaaS): deploy from GitHub or a zip file, isolated containers, managed databases, file storage, snapshots, a CLI and a VS Code extension.","colors":{"primary":"#ff6100","light":"#f4f4f5","dark":"#141414"},"logo":{"light":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e","dark":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/dark.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=c72f2f9ae11bde83e8c0ea1ca9d9394a"},"favicon":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/favicon.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=1bab95e4f8e35419e5901e69c7caa4b2","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"footer":{"socials":{"github":"https://github.com/vertracloud","instagram":"https://instagram.com/vertracloud","x":"https://x.com/vertracloud","youtube":"https://www.youtube.com/@vertracloud","discord":"https://discord.gg/vertracloud"}},"seo":{"metatags":{"og:site_name":"Vertra Cloud Docs","og:type":"website","og:image":"https://docs.vertracloud.app/images/og.png","og:locale":"pt_BR","twitter:card":"summary_large_image","twitter:image":"https://docs.vertracloud.app/images/og.png","description":"Vertra Cloud is a Brazilian application hosting platform (PaaS): deploy from GitHub or a zip file, isolated containers, managed databases, file storage, snapshots, a CLI and a VS Code extension."},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Documentation","icon":"book-open-cover","href":"https://docs.vertracloud.app"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/vertracloud"},{"anchor":"Status","icon":"heart-pulse","href":"https://status.vertracloud.app"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vertracloud","hasAudioNarration":false,"actualSubdomain":"vertracloud","customDomains":["docs.vertracloud.app"],"gitSource":{"type":"github","owner":"vertracloud","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adca644d4f5457d735db0a2","collectionId":"b0f72ee1-6e2a-4b2e-9792-395f47cad42d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adca644d4f5457d735db0a2"},"entitlements":{},"buildId":"6ade8678531268f76f8b0cc3","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":112},{"language":"default","tag":"Endpoints","count":109},{"language":"default","tag":"Blob Storage","count":56},{"language":"default","tag":"Applications","count":46},{"language":"default","tag":"Changelog","count":44},{"language":"default","tag":"v26","count":33},{"language":"default","tag":"Blob API reference","count":30},{"language":"default","tag":"Workspaces","count":24},{"language":"default","tag":"Tutorials","count":21},{"language":"default","tag":"v26.3 — September 2026","count":20}]},"assistantConfig":{},"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":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/images/create","slug":"/api-reference/endpoint/images/create","pageMetadata":{"title":"Create Image","sidebarTitle":"Create Image","api":"POST https://api.vertracloud.app/v1/images","authMethod":"bearer","description":"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.","href":"/api-reference/endpoint/images/create"},"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 custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Expandable,Heading,ParamField,ResponseField}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Available on `,_jsx(_components.strong,{children:`Enterprise 28, Enterprise 30 and Enterprise 32`}),`. The request is `,_jsx(_components.code,{children:`multipart/form-data`}),`. The build context has `,_jsx(_components.strong,{children:`two mutually exclusive sources`}),`: `,_jsx(_components.code,{children:`file`}),`, or `,_jsx(_components.code,{children:`github_repository`}),` (the branch is optional). It must have a file named exactly `,_jsx(_components.code,{children:`Dockerfile`}),` at its root; a single wrapping folder is accepted. `,_jsx(_components.code,{children:`.env*`}),` files are removed from the context and `,_jsx(_components.code,{children:`.dockerignore`}),` is respected. The `,_jsx(_components.code,{children:`Dockerfile`}),` is never rewritten. See `,_jsx(_components.a,{href:`/guides/custom-docker-images`,children:`Custom Docker images`}),` for the rules.`]}),`\n`,_jsxs(_components.p,{children:[`Needs the `,_jsx(_components.code,{children:`images:write`}),` scope when called with an API key. Check a `,_jsx(_components.code,{children:`Dockerfile`}),` first with `,_jsx(_components.a,{href:`/api-reference/endpoint/images/check`,children:`Check Dockerfile`}),`.`]}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,required:true,id:`param-name`,children:_jsx(_components.p,{children:`The image name: 1 to 50 characters, unique among your images.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsxs(_components.p,{children:[`Optional free-text description, up to 128 characters. An empty value means no description. You can change it later with `,_jsx(_components.a,{href:`/api-reference/endpoint/images/update`,children:`Update Image`}),`.`]})}),`\n`,_jsx(ParamField,{body:`file`,type:`file`,id:`param-file`,children:_jsx(_components.p,{children:`The build context: a ZIP file, up to 100 MB. Absent when the source is GitHub.`})}),`\n`,_jsxs(ParamField,{body:`github_repository`,type:`string`,id:`param-github-repository`,children:[_jsxs(_components.p,{children:[`Alternative to `,_jsx(_components.code,{children:`file`}),`: the GitHub repository to build from, as `,_jsx(_components.code,{children:`owner/name`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A repository in one of your GitHub App installations is `,_jsx(_components.strong,{children:`linked`}),` to the image: a push to the branch rebuilds it.`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`public`}),` repository outside your installations is built `,_jsx(_components.strong,{children:`once`}),`, with no link (`,_jsx(_components.code,{children:`github`}),` is `,_jsx(_components.code,{children:`null`}),` in the response). To get automatic rebuilds, install the GitHub App on the repository and call `,_jsx(_components.a,{href:`/api-reference/endpoint/images/github-link`,children:`Link Image to GitHub`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A private or nonexistent repository outside your installations fails with `,_jsx(_components.code,{children:`INSTALLATION_NOT_FOUND`}),`.`]}),`\n`]})]}),`\n`,_jsx(ParamField,{body:`github_branch`,type:`string`,id:`param-github-branch`,children:_jsxs(_components.p,{children:[`The branch of `,_jsx(_components.code,{children:`github_repository`}),` to build from. Optional: without it, the repository’s default branch is used (`,_jsx(_components.code,{children:`main`}),`, `,_jsx(_components.code,{children:`master`}),` or whatever the repository sets). When the repository is linked, this is also the branch whose pushes rebuild the image. A branch that does not exist fails with `,_jsx(_components.code,{children:`INSTALLATION_NOT_FOUND`}),`.`]})}),`\n`,_jsx(ParamField,{body:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`The workspace that will own the image.`})}),`\n`,_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),`\n`,_jsxs(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:[_jsxs(_components.p,{children:[`The image. Creation is asynchronous: the response is `,_jsx(_components.code,{children:`202 Accepted`}),` with `,_jsx(_components.code,{children:`status: \"building\"`}),`. Follow it with `,_jsx(_components.a,{href:`/api-reference/endpoint/images/get`,children:`Get Image`}),` or the `,_jsx(_components.a,{href:`/api-reference/endpoint/images/logs`,children:`build logs`}),` until `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]}),_jsxs(Expandable,{title:`Toggle object`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`The image ID.`})}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:_jsx(_components.p,{children:`The image name.`})}),_jsx(ResponseField,{name:`description`,type:`string | null`,id:`param-description-1`,children:_jsxs(_components.p,{children:[`The image description (free text, up to 128 characters), or `,_jsx(_components.code,{children:`null`}),` when it has none.`]})}),_jsx(ResponseField,{name:`owner`,type:`string`,id:`param-owner`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`account`}),` for your own images, `,_jsx(_components.code,{children:`system`}),` for images provided by the platform (these cannot be changed or deleted).`]})}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`State of the latest build: `,_jsx(_components.code,{children:`building`}),`, `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`. A failed rebuild does not change the current version: apps keep running the last good one.`]})}),_jsx(ResponseField,{name:`error`,type:`string | null`,id:`param-error`,children:_jsxs(_components.p,{children:[`Readable reason of the latest failed build, or `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`digest`,type:`string | null`,id:`param-digest`,children:_jsxs(_components.p,{children:[`Digest (`,_jsx(_components.code,{children:`sha256:...`}),`) of the current version, or `,_jsx(_components.code,{children:`null`}),` while no build has succeeded.`]})}),_jsx(ResponseField,{name:`uncompressed_bytes`,type:`integer | null`,id:`param-uncompressed-bytes`,children:_jsx(_components.p,{children:`Size of the current version, uncompressed, in bytes.`})}),_jsx(ResponseField,{name:`layer_count`,type:`integer | null`,id:`param-layer-count`,children:_jsx(_components.p,{children:`Number of layers of the current version.`})}),_jsx(ResponseField,{name:`apps`,type:`object[]`,id:`param-apps`,children:_jsxs(_components.p,{children:[`The applications created from this image. Each has `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`version_id`}),` (the image version it runs, or `,_jsx(_components.code,{children:`null`}),`) and `,_jsx(_components.code,{children:`outdated`}),` (`,_jsx(_components.code,{children:`true`}),` when the image has a newer version; the app moves to it on the next restart or deploy you ask for).`]})}),_jsx(ResponseField,{name:`github`,type:`object | null`,id:`param-github`,children:_jsxs(_components.p,{children:[`The linked GitHub repository and branch (`,_jsx(_components.code,{children:`repository`}),` as `,_jsx(_components.code,{children:`owner/name`}),`, `,_jsx(_components.code,{children:`branch`}),`), or `,_jsx(_components.code,{children:`null`}),` when the image is not linked, as when it was built once from a public repository.`]})}),_jsx(ResponseField,{name:`current_version_id`,type:`string | null`,id:`param-current-version-id`,children:_jsxs(_components.p,{children:[`The current version of the image, or `,_jsx(_components.code,{children:`null`}),` while no build has succeeded.`]})}),_jsx(ResponseField,{name:`created_at`,type:`string`,format:`date-time`,id:`param-created-at`,children:_jsx(_components.p,{children:`When the image was created.`})}),_jsx(ResponseField,{name:`updated_at`,type:`string`,format:`date-time`,id:`param-updated-at`,children:_jsx(_components.p,{children:`When the image was last updated.`})})]})]}),`\n`,`\n`,_jsx(Heading,{level:`3`,id:`error-responses`,children:`Error Responses`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`The error code indicating the reason for the failure. Possible values:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`API_KEY_SCOPE_DENIED`}),`: The API key does not have the required scope (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),`: The multipart body failed validation, for example a `,_jsx(_components.code,{children:`github_repository`}),` that is not `,_jsx(_components.code,{children:`owner/name`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES`}),`: The plan does not include custom Docker images (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAX_IMAGES_REACHED`}),`: The plan’s limit of 20 images was reached; images in any state count (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKERFILE_NOT_FOUND`}),`: There is no file named exactly `,_jsx(_components.code,{children:`Dockerfile`}),` at the root of the context (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKERFILE_REFUSED`}),`: The `,_jsx(_components.code,{children:`Dockerfile`}),` has a refused instruction; `,_jsx(_components.code,{children:`details`}),` lists the findings (`,_jsx(_components.code,{children:`400`}),`). See `,_jsx(_components.a,{href:`/api-reference/endpoint/images/check`,children:`Check Dockerfile`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_CONTEXT_TOO_LARGE`}),`: The build context is over a limit: more than 100 MB compressed, more than 512 MB uncompressed, more than 50,000 entries, or a `,_jsx(_components.code,{children:`Dockerfile`}),` larger than 1 MB (`,_jsx(_components.code,{children:`413`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_BUILDER_UNAVAILABLE`}),`: No host can build images right now; try again later (`,_jsx(_components.code,{children:`503`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INSTALLATION_NOT_FOUND`}),`: The repository is private or does not exist, and it is not in your GitHub App installations; or the branch does not exist (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REPO_ALREADY_LINKED`}),`: The repository is already linked to another image or application (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FETCH_ZIP_ERROR`}),`: GitHub could not be reached or was limiting requests while the repository was fetched (`,_jsx(_components.code,{children:`502`}),`). Try again in a few minutes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: Unexpected failure (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Image","sidebarTitle":"Create Image","api":"POST https://api.vertracloud.app/v1/images","authMethod":"bearer","description":"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.","href":"/api-reference/endpoint/images/create"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,ParamField,ResponseExample,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Available on `,_jsx(_components.strong,{children:`Enterprise 28, Enterprise 30 and Enterprise 32`}),`. The request is `,_jsx(_components.code,{children:`multipart/form-data`}),`. The build context has `,_jsx(_components.strong,{children:`two mutually exclusive sources`}),`: `,_jsx(_components.code,{children:`file`}),`, or `,_jsx(_components.code,{children:`github_repository`}),` (the branch is optional). It must have a file named exactly `,_jsx(_components.code,{children:`Dockerfile`}),` at its root; a single wrapping folder is accepted. `,_jsx(_components.code,{children:`.env*`}),` files are removed from the context and `,_jsx(_components.code,{children:`.dockerignore`}),` is respected. The `,_jsx(_components.code,{children:`Dockerfile`}),` is never rewritten. See `,_jsx(_components.a,{href:`/guides/custom-docker-images`,children:`Custom Docker images`}),` for the rules.`]}),`\n`,_jsxs(_components.p,{children:[`Needs the `,_jsx(_components.code,{children:`images:write`}),` scope when called with an API key. Check a `,_jsx(_components.code,{children:`Dockerfile`}),` first with `,_jsx(_components.a,{href:`/api-reference/endpoint/images/check`,children:`Check Dockerfile`}),`.`]}),`\n`,_jsx(ParamField,{body:`name`,type:`string`,required:true,id:`param-name`,children:_jsx(_components.p,{children:`The image name: 1 to 50 characters, unique among your images.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsxs(_components.p,{children:[`Optional free-text description, up to 128 characters. An empty value means no description. You can change it later with `,_jsx(_components.a,{href:`/api-reference/endpoint/images/update`,children:`Update Image`}),`.`]})}),`\n`,_jsx(ParamField,{body:`file`,type:`file`,id:`param-file`,children:_jsx(_components.p,{children:`The build context: a ZIP file, up to 100 MB. Absent when the source is GitHub.`})}),`\n`,_jsxs(ParamField,{body:`github_repository`,type:`string`,id:`param-github-repository`,children:[_jsxs(_components.p,{children:[`Alternative to `,_jsx(_components.code,{children:`file`}),`: the GitHub repository to build from, as `,_jsx(_components.code,{children:`owner/name`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A repository in one of your GitHub App installations is `,_jsx(_components.strong,{children:`linked`}),` to the image: a push to the branch rebuilds it.`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`public`}),` repository outside your installations is built `,_jsx(_components.strong,{children:`once`}),`, with no link (`,_jsx(_components.code,{children:`github`}),` is `,_jsx(_components.code,{children:`null`}),` in the response). To get automatic rebuilds, install the GitHub App on the repository and call `,_jsx(_components.a,{href:`/api-reference/endpoint/images/github-link`,children:`Link Image to GitHub`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A private or nonexistent repository outside your installations fails with `,_jsx(_components.code,{children:`INSTALLATION_NOT_FOUND`}),`.`]}),`\n`]})]}),`\n`,_jsx(ParamField,{body:`github_branch`,type:`string`,id:`param-github-branch`,children:_jsxs(_components.p,{children:[`The branch of `,_jsx(_components.code,{children:`github_repository`}),` to build from. Optional: without it, the repository’s default branch is used (`,_jsx(_components.code,{children:`main`}),`, `,_jsx(_components.code,{children:`master`}),` or whatever the repository sets). When the repository is linked, this is also the branch whose pushes rebuild the image. A branch that does not exist fails with `,_jsx(_components.code,{children:`INSTALLATION_NOT_FOUND`}),`.`]})}),`\n`,_jsx(ParamField,{body:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`The workspace that will own the image.`})}),`\n`,_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),`\n`,_jsxs(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:[_jsxs(_components.p,{children:[`The image. Creation is asynchronous: the response is `,_jsx(_components.code,{children:`202 Accepted`}),` with `,_jsx(_components.code,{children:`status: \"building\"`}),`. Follow it with `,_jsx(_components.a,{href:`/api-reference/endpoint/images/get`,children:`Get Image`}),` or the `,_jsx(_components.a,{href:`/api-reference/endpoint/images/logs`,children:`build logs`}),` until `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]}),_jsxs(Expandable,{title:`Toggle object`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`The image ID.`})}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:_jsx(_components.p,{children:`The image name.`})}),_jsx(ResponseField,{name:`description`,type:`string | null`,id:`param-description-1`,children:_jsxs(_components.p,{children:[`The image description (free text, up to 128 characters), or `,_jsx(_components.code,{children:`null`}),` when it has none.`]})}),_jsx(ResponseField,{name:`owner`,type:`string`,id:`param-owner`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`account`}),` for your own images, `,_jsx(_components.code,{children:`system`}),` for images provided by the platform (these cannot be changed or deleted).`]})}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`State of the latest build: `,_jsx(_components.code,{children:`building`}),`, `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`. A failed rebuild does not change the current version: apps keep running the last good one.`]})}),_jsx(ResponseField,{name:`error`,type:`string | null`,id:`param-error`,children:_jsxs(_components.p,{children:[`Readable reason of the latest failed build, or `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`digest`,type:`string | null`,id:`param-digest`,children:_jsxs(_components.p,{children:[`Digest (`,_jsx(_components.code,{children:`sha256:...`}),`) of the current version, or `,_jsx(_components.code,{children:`null`}),` while no build has succeeded.`]})}),_jsx(ResponseField,{name:`uncompressed_bytes`,type:`integer | null`,id:`param-uncompressed-bytes`,children:_jsx(_components.p,{children:`Size of the current version, uncompressed, in bytes.`})}),_jsx(ResponseField,{name:`layer_count`,type:`integer | null`,id:`param-layer-count`,children:_jsx(_components.p,{children:`Number of layers of the current version.`})}),_jsx(ResponseField,{name:`apps`,type:`object[]`,id:`param-apps`,children:_jsxs(_components.p,{children:[`The applications created from this image. Each has `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`version_id`}),` (the image version it runs, or `,_jsx(_components.code,{children:`null`}),`) and `,_jsx(_components.code,{children:`outdated`}),` (`,_jsx(_components.code,{children:`true`}),` when the image has a newer version; the app moves to it on the next restart or deploy you ask for).`]})}),_jsx(ResponseField,{name:`github`,type:`object | null`,id:`param-github`,children:_jsxs(_components.p,{children:[`The linked GitHub repository and branch (`,_jsx(_components.code,{children:`repository`}),` as `,_jsx(_components.code,{children:`owner/name`}),`, `,_jsx(_components.code,{children:`branch`}),`), or `,_jsx(_components.code,{children:`null`}),` when the image is not linked, as when it was built once from a public repository.`]})}),_jsx(ResponseField,{name:`current_version_id`,type:`string | null`,id:`param-current-version-id`,children:_jsxs(_components.p,{children:[`The current version of the image, or `,_jsx(_components.code,{children:`null`}),` while no build has succeeded.`]})}),_jsx(ResponseField,{name:`created_at`,type:`string`,format:`date-time`,id:`param-created-at`,children:_jsx(_components.p,{children:`When the image was created.`})}),_jsx(ResponseField,{name:`updated_at`,type:`string`,format:`date-time`,id:`param-updated-at`,children:_jsx(_components.p,{children:`When the image was last updated.`})})]})]}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Response`,numberOfLines:`18`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"response\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"img-abc123def456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"my-api\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"owner\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"account\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"building\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"digest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"uncompressed_bytes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"layer_count\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"apps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"github\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"current_version_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-23T14:02:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"updated_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-23T14:02:00Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`error-responses`,children:`Error Responses`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`The error code indicating the reason for the failure. Possible values:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`API_KEY_SCOPE_DENIED`}),`: The API key does not have the required scope (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),`: The multipart body failed validation, for example a `,_jsx(_components.code,{children:`github_repository`}),` that is not `,_jsx(_components.code,{children:`owner/name`}),` (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES`}),`: The plan does not include custom Docker images (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`MAX_IMAGES_REACHED`}),`: The plan’s limit of 20 images was reached; images in any state count (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKERFILE_NOT_FOUND`}),`: There is no file named exactly `,_jsx(_components.code,{children:`Dockerfile`}),` at the root of the context (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`DOCKERFILE_REFUSED`}),`: The `,_jsx(_components.code,{children:`Dockerfile`}),` has a refused instruction; `,_jsx(_components.code,{children:`details`}),` lists the findings (`,_jsx(_components.code,{children:`400`}),`). See `,_jsx(_components.a,{href:`/api-reference/endpoint/images/check`,children:`Check Dockerfile`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_CONTEXT_TOO_LARGE`}),`: The build context is over a limit: more than 100 MB compressed, more than 512 MB uncompressed, more than 50,000 entries, or a `,_jsx(_components.code,{children:`Dockerfile`}),` larger than 1 MB (`,_jsx(_components.code,{children:`413`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_BUILDER_UNAVAILABLE`}),`: No host can build images right now; try again later (`,_jsx(_components.code,{children:`503`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INSTALLATION_NOT_FOUND`}),`: The repository is private or does not exist, and it is not in your GitHub App installations; or the branch does not exist (`,_jsx(_components.code,{children:`404`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`REPO_ALREADY_LINKED`}),`: The repository is already linked to another image or application (`,_jsx(_components.code,{children:`409`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`FETCH_ZIP_ERROR`}),`: GitHub could not be reached or was limiting requests while the repository was fetched (`,_jsx(_components.code,{children:`502`}),`). Try again in a few minutes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`INTERNAL_SERVER_ERROR`}),`: Unexpected failure (`,_jsx(_components.code,{children:`500`}),`).`]}),`\n`]})]}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Error Response`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DOCKERFILE_REFUSED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"run_network_host\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"line\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`7`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Image","sidebarTitle":"Create Image","api":"POST https://api.vertracloud.app/v1/images","authMethod":"bearer","description":"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.","href":"/api-reference/endpoint/images/create"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Response","slug":"response","depth":3,"children":[]},{"title":"Error Responses","slug":"error-responses","depth":3,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"Response","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"18\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"response\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"img-abc123def456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"my-api\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"owner\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"account\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"building\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"error\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"digest\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"uncompressed_bytes\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"layer_count\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"apps\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"github\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"current_version_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-23T14:02:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"updated_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-23T14:02:00Z\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Create Image","path":"/v1/images","servers":[{"url":"https://api.vertracloud.app"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"name":[{"type":"string","description":"The image name: 1 to 50 characters, unique among your images.","required":true}],"description":[{"type":"string","description":"Optional free-text description, up to 128 characters. An empty value means no description. You can change it later with Update Image ."}],"file":[{"type":"file","description":"The build context: a ZIP file, up to 100 MB. Absent when the source is GitHub."}],"github_repository":[{"type":"string","description":"Alternative to `file` : the GitHub repository to build from, as `owner/name` . A repository in one of your GitHub App installations is linked to the image: a push to the branch rebuilds it. A public repository outside your installations is built once , with no link ( `github` is `null` in the response). To get automatic rebuilds, install the GitHub App on the repository and call Link Image to GitHub . A private or nonexistent repository outside your installations fails with `INSTALLATION_NOT_FOUND` ."}],"github_branch":[{"type":"string","description":"The branch of `github_repository` to build from. Optional: without it, the repository’s default branch is used ( `main` , `master` or whatever the repository sets). When the repository is linked, this is also the branch whose pushes rebuild the image. A branch that does not exist fails with `INSTALLATION_NOT_FOUND` ."}],"workspace_id":[{"type":"string","description":"The workspace that will own the image."}]}}],"examples":{"example":{"value":{"name":"\u003cstring>","description":"\u003cstring>","github_repository":"\u003cstring>","github_branch":"\u003cstring>","workspace_id":"\u003cstring>"}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"response":[{"type":"object","properties":{"id":[{"type":"string","description":"The image ID."}],"name":[{"type":"string","description":"The image name."}],"description":[{"type":"object","properties":{},"description":"The image description (free text, up to 128 characters), or `null` when it has none."}],"owner":[{"type":"string","description":"`account` for your own images, `system` for images provided by the platform (these cannot be changed or deleted)."}],"status":[{"type":"string","description":"State of the latest build: `building` , `success` or `failed` . A failed rebuild does not change the current version: apps keep running the last good one."}],"error":[{"type":"object","properties":{},"description":"Readable reason of the latest failed build, or `null` ."}],"digest":[{"type":"object","properties":{},"description":"Digest ( `sha256:...` ) of the current version, or `null` while no build has succeeded."}],"uncompressed_bytes":[{"type":"object","properties":{},"description":"Size of the current version, uncompressed, in bytes."}],"layer_count":[{"type":"object","properties":{},"description":"Number of layers of the current version."}],"apps":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"The applications created from this image. Each has `id` , `name` , `version_id` (the image version it runs, or `null` ) and `outdated` ( `true` when the image has a newer version; the app moves to it on the next restart or deploy you ask for)."}],"github":[{"type":"object","properties":{},"description":"The linked GitHub repository and branch ( `repository` as `owner/name` , `branch` ), or `null` when the image is not linked, as when it was built once from a public repository."}],"current_version_id":[{"type":"object","properties":{},"description":"The current version of the image, or `null` while no build has succeeded."}],"created_at":[{"type":"string","description":"When the image was created."}],"updated_at":[{"type":"string","description":"When the image was last updated."}]},"description":"The image. Creation is asynchronous: the response is `202 Accepted` with `status: \"building\"` . Follow it with Get Image or the build logs until `status` is `success` or `failed` ."}],"code":[{"type":"string","description":"The error code indicating the reason for the failure. Possible values: `API_KEY_SCOPE_DENIED` : The API key does not have the required scope ( `403` ). `VALIDATION_ERROR` : The multipart body failed validation, for example a `github_repository` that is not `owner/name` ( `400` ). `PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES` : The plan does not include custom Docker images ( `403` ). `MAX_IMAGES_REACHED` : The plan’s limit of 20 images was reached; images in any state count ( `403` ). `DOCKERFILE_NOT_FOUND` : There is no file named exactly `Dockerfile` at the root of the context ( `400` ). `DOCKERFILE_REFUSED` : The `Dockerfile` has a refused instruction; `details` lists the findings ( `400` ). See Check Dockerfile . `IMAGE_CONTEXT_TOO_LARGE` : The build context is over a limit: more than 100 MB compressed, more than 512 MB uncompressed, more than 50,000 entries, or a `Dockerfile` larger than 1 MB ( `413` ). `IMAGE_BUILDER_UNAVAILABLE` : No host can build images right now; try again later ( `503` ). `INSTALLATION_NOT_FOUND` : The repository is private or does not exist, and it is not in your GitHub App installations; or the branch does not exist ( `404` ). `REPO_ALREADY_LINKED` : The repository is already linked to another image or application ( `409` ). `FETCH_ZIP_ERROR` : GitHub could not be reached or was limiting requests while the repository was fetched ( `502` ). Try again in a few minutes. `INTERNAL_SERVER_ERROR` : Unexpected failure ( `500` )."}]}}],"examples":{"example":{"value":{"response":{"id":"\u003cstring>","name":"\u003cstring>","description":{},"owner":"\u003cstring>","status":"\u003cstring>","error":{},"digest":{},"uncompressed_bytes":{},"layer_count":{},"apps":[{}],"github":{},"current_version_id":{},"created_at":"\u003cstring>","updated_at":"\u003cstring>"},"code":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"vertracloud","siteName":"Vertra Cloud","title":"Create Image - Vertra Cloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T22:45:25.487Z","originalFileLocation":"api-reference/endpoint/images/create.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 custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vertra Cloud\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Image - Vertra Cloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vertra Cloud Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vertracloud.app/api-reference/endpoint/images/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.vertracloud.app/images/og.png\">\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 Image - Vertra Cloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.vertracloud.app/images/og.png\">\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/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vertra Cloud\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6100\">\u003cmeta data-mint-head name=\"og:locale\" content=\"pt_BR\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vertracloud.app/api-reference/endpoint/images/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/images/create.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vertracloud.app/#organization\",\"name\":\"Vertra Cloud\",\"url\":\"https://docs.vertracloud.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vertracloud.app#website\",\"name\":\"Vertra Cloud\",\"url\":\"https://docs.vertracloud.app\",\"publisher\":{\"@id\":\"https://docs.vertracloud.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create#webpage\",\"url\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create\",\"name\":\"Create Image\",\"description\":\"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.\",\"dateModified\":\"2026-10-25T22:45:25.487Z\",\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.vertracloud.app/api-reference/endpoint/users/me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Images\",\"item\":\"https://docs.vertracloud.app/api-reference/endpoint/images/list\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create Image\",\"item\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create#apireference\",\"headline\":\"Create Image\",\"name\":\"Create Image\",\"description\":\"Creates a custom Docker image from a build context (ZIP) or from a GitHub repository, and starts building it.\",\"url\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vertracloud.app/api-reference/endpoint/images/create#webpage\"},\"image\":\"https://docs.vertracloud.app/images/og.png\",\"dateModified\":\"2026-10-25T22:45:25.487Z\",\"publisher\":{\"@id\":\"https://docs.vertracloud.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vertra Cloud\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Vertra Cloud","nav":{"global":{"anchors":[{"anchor":"Documentation","icon":"book-open-cover","href":"https://docs.vertracloud.app"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/vertracloud"},{"anchor":"Status","icon":"heart-pulse","href":"https://status.vertracloud.app"}]},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/introduction"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/applications"}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/tutorials/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/custom-domain"}]},{"tab":"Tools","pages":[{"title":"Tools","href":"/cli"}]},{"tab":"Blob Storage","pages":[{"title":"Blob Storage","href":"/blob/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","icon":"book","pages":[{"title":"Vertra Cloud Public API Reference","sidebarTitle":"Public API","href":"/api-reference/introduction"},{"title":"Platform Limits and Quotas on Vertra Cloud","sidebarTitle":"Limitations","href":"/api-reference/limitations"},{"title":"Vertra Cloud API Error Codes","sidebarTitle":"Error Codes","href":"/api-reference/errors"}]},{"group":"Endpoints","icon":"plug","pages":[{"group":"Users","icon":"user","pages":[{"title":"User Information","sidebarTitle":"User Info","api":"GET https://api.vertracloud.app/v1/users/me","href":"/api-reference/endpoint/users/me"},{"title":"Update User Profile","sidebarTitle":"Update Profile","api":"PATCH https://api.vertracloud.app/v1/users/me","href":"/api-reference/endpoint/users/update-me"},{"title":"List All Snapshots of the Account","sidebarTitle":"All Snapshots","api":"GET https://api.vertracloud.app/v1/users/snapshots","href":"/api-reference/endpoint/users/snapshots"},{"title":"Personal Resource Organization","sidebarTitle":"Folders and favorites","href":"/api-reference/endpoint/users/resource-organization"},{"title":"List Sessions","sidebarTitle":"Sessions","api":"GET https://api.vertracloud.app/v1/users/me/sessions","href":"/api-reference/endpoint/users/sessions"}]},{"group":"Status","icon":"heart-pulse","pages":[{"title":"Check Infrastructure Status","sidebarTitle":"Check Status","api":"GET https://api.vertracloud.app/v1/status","href":"/api-reference/endpoint/services/status"}]},{"group":"Applications","icon":"rocket","pages":[{"title":"Application Details","sidebarTitle":"Get Application","api":"GET https://api.vertracloud.app/v1/apps/{id}","href":"/api-reference/endpoint/apps/get"},{"title":"Application Status","sidebarTitle":"Get Application Status","api":"GET https://api.vertracloud.app/v1/apps/{id}/status","href":"/api-reference/endpoint/apps/status"},{"title":"All Applications Status","sidebarTitle":"All Applications Status","api":"GET https://api.vertracloud.app/v1/apps/status","href":"/api-reference/endpoint/apps/allstatus"},{"title":"List Runtimes","sidebarTitle":"Runtimes","api":"GET https://api.vertracloud.app/v1/apps/runtimes","href":"/api-reference/endpoint/apps/runtimes"},{"title":"Application Metrics","sidebarTitle":"Application Metrics","api":"GET https://api.vertracloud.app/v1/apps/{id}/metrics","href":"/api-reference/endpoint/apps/metrics"},{"title":"Real-Time Application Logs","sidebarTitle":"Real-Time Application Logs","api":"GET https://api.vertracloud.app/v1/apps/{id}/realtime","href":"/api-reference/endpoint/apps/realtime"},{"title":"Download Application","sidebarTitle":"Download Application","api":"GET https://api.vertracloud.app/v1/apps/{id}/download","href":"/api-reference/endpoint/apps/download"},{"title":"Application Logs","sidebarTitle":"Application Logs","api":"GET https://api.vertracloud.app/v1/apps/{id}/logs","href":"/api-reference/endpoint/apps/logs"},{"title":"Create Application","sidebarTitle":"Create Application","api":"POST https://api.vertracloud.app/v1/apps","href":"/api-reference/endpoint/apps/create"},{"title":"Create Application from Image","sidebarTitle":"Create from Image","api":"POST https://api.vertracloud.app/v1/apps/image","href":"/api-reference/endpoint/apps/create-from-image"},{"title":"Start Application","sidebarTitle":"Start Application","api":"POST https://api.vertracloud.app/v1/apps/{id}/start","href":"/api-reference/endpoint/apps/start"},{"title":"Restart Application","sidebarTitle":"Restart Application","api":"POST https://api.vertracloud.app/v1/apps/{id}/restart","href":"/api-reference/endpoint/apps/restart"},{"title":"Stop Application","sidebarTitle":"Stop Application","api":"POST https://api.vertracloud.app/v1/apps/{id}/stop","href":"/api-reference/endpoint/apps/stop"},{"title":"Update Application Configuration","sidebarTitle":"Update Configuration","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/config","href":"/api-reference/endpoint/apps/updateconfig"},{"title":"Delete Application","sidebarTitle":"Delete Application","api":"DELETE https://api.vertracloud.app/v1/apps/{id}","href":"/api-reference/endpoint/apps/delete"},{"group":"Network","icon":"globe","pages":[{"title":"Publish Application on the Web","sidebarTitle":"Publish / Unpublish","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","href":"/api-reference/endpoint/apps/network/publish"},{"title":"Change Application Subdomain","sidebarTitle":"Change Subdomain","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/network/subdomain","href":"/api-reference/endpoint/apps/network/subdomain"},{"title":"Purge Cache","sidebarTitle":"Purge Cache","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/purge-cache","href":"/api-reference/endpoint/apps/network/purgecache"}]},{"group":"Domains","icon":"link","pages":[{"title":"List Application Domains","sidebarTitle":"List Domains","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains","href":"/api-reference/endpoint/apps/domains/list"},{"title":"Add Application Domain","sidebarTitle":"Add Domain","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","href":"/api-reference/endpoint/apps/domains/create"},{"title":"Update Application Domain","sidebarTitle":"Update Domain","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/api-reference/endpoint/apps/domains/update"},{"title":"Remove Application Domain","sidebarTitle":"Remove Domain","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/api-reference/endpoint/apps/domains/delete"},{"title":"Domain DNS Records","sidebarTitle":"Domain DNS Records","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/dns","href":"/api-reference/endpoint/apps/domains/dns"},{"title":"Configure Domain Automatically","sidebarTitle":"Configure Automatically","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/connect","href":"/api-reference/endpoint/apps/domains/connect"}]},{"group":"File Manager","icon":"folder-open","pages":[{"title":"Get Application File Content","sidebarTitle":"Get File Content","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/content","href":"/api-reference/endpoint/apps/filemanager/content"},{"title":"Get Application Files","sidebarTitle":"Get Files","api":"GET https://api.vertracloud.app/v1/apps/{id}/files","href":"/api-reference/endpoint/apps/filemanager/files"},{"title":"Get Application File Tree","sidebarTitle":"Get File Tree","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/tree","href":"/api-reference/endpoint/apps/filemanager/tree"},{"title":"Upload Files to Application","sidebarTitle":"Upload Files","api":"POST https://api.vertracloud.app/v1/apps/{id}/files/upload","href":"/api-reference/endpoint/apps/filemanager/upload"},{"title":"Delete Application File or Folder","sidebarTitle":"Delete File or Folder","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/files","href":"/api-reference/endpoint/apps/filemanager/delete"},{"title":"Move Application File or Folder","sidebarTitle":"Move File or Folder","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/files","href":"/api-reference/endpoint/apps/filemanager/move"},{"title":"Create or Update Application File or Folder","sidebarTitle":"Create/Update File or Folder","api":"PUT https://api.vertracloud.app/v1/apps/{id}/files","href":"/api-reference/endpoint/apps/filemanager/save"}]},{"group":"Environments","icon":"key","pages":[{"title":"Get Application Environment Variables","sidebarTitle":"Get Environment Variables","api":"GET https://api.vertracloud.app/v1/apps/{id}/envs","href":"/api-reference/endpoint/apps/enviroments/get"},{"title":"Delete an Application Environment Variable","sidebarTitle":"Delete Environment Variable","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/envs/{envId}","href":"/api-reference/endpoint/apps/enviroments/delete"},{"title":"Create or Edit Application Environment Variables","sidebarTitle":"Create/Edit Environment Variables","api":"POST https://api.vertracloud.app/v1/apps/{id}/envs","href":"/api-reference/endpoint/apps/enviroments/createOrEdit"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Get Application Snapshots","sidebarTitle":"Get Snapshots","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/api-reference/endpoint/apps/snapshots/getall"},{"title":"Create Application Snapshot","sidebarTitle":"Create Snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/api-reference/endpoint/apps/snapshots/create"},{"title":"Restore Application Snapshot","sidebarTitle":"Restore Snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/restore","href":"/api-reference/endpoint/apps/snapshots/restore"},{"title":"Download Application Snapshot","sidebarTitle":"Download Snapshot","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/download","href":"/api-reference/endpoint/apps/snapshots/download"}]},{"group":"Deploys","icon":"code-branch","pages":[{"title":"Get Deploy Webhook URL","sidebarTitle":"Get Webhook URL","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/api-reference/endpoint/apps/deploys/webhookurl"},{"title":"Get Recent Deployments","sidebarTitle":"Recent Deployments","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys","href":"/api-reference/endpoint/apps/deploys/recents"},{"title":"Delete Deploy Webhook","sidebarTitle":"Delete Webhook","api":"DELETE https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/api-reference/endpoint/apps/deploys/delete"},{"title":"Create Deploy Webhook","sidebarTitle":"Create Webhook","api":"POST https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/api-reference/endpoint/apps/deploys/create"}]},{"group":"Releases","icon":"clock-rotate-left","pages":[{"title":"List Application Releases","sidebarTitle":"List Releases","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases","href":"/api-reference/endpoint/apps/releases/list"},{"title":"Get Application Release Log","sidebarTitle":"Get Release Log","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/log","href":"/api-reference/endpoint/apps/releases/log"},{"title":"Preview Application Rollback","sidebarTitle":"Preview Rollback","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/api-reference/endpoint/apps/releases/rollback-preview"},{"title":"Roll Back Application to a Release","sidebarTitle":"Roll Back","api":"POST https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/api-reference/endpoint/apps/releases/rollback"}]}]},{"group":"Docker Images","icon":"docker","pages":[{"title":"List Images","sidebarTitle":"List Images","api":"GET https://api.vertracloud.app/v1/images","href":"/api-reference/endpoint/images/list"},{"title":"Get Image","sidebarTitle":"Get Image","api":"GET https://api.vertracloud.app/v1/images/{image_id}","href":"/api-reference/endpoint/images/get"},{"title":"Check Dockerfile","sidebarTitle":"Check Dockerfile","api":"POST https://api.vertracloud.app/v1/images/check","description":"Checks a Dockerfile and the file list of a build context before building. Creates nothing.","href":"/api-reference/endpoint/images/check"},{"title":"Create Image","sidebarTitle":"Create Image","api":"POST https://api.vertracloud.app/v1/images","href":"/api-reference/endpoint/images/create"},{"title":"Update Image","sidebarTitle":"Update Image","api":"PATCH https://api.vertracloud.app/v1/images/{image_id}","description":"Renames a custom Docker image and/or changes its description, without building anything.","href":"/api-reference/endpoint/images/update"},{"title":"Rebuild Image","sidebarTitle":"Rebuild Image","api":"PUT https://api.vertracloud.app/v1/images/{image_id}","href":"/api-reference/endpoint/images/rebuild"},{"title":"List Image Versions","sidebarTitle":"List Versions","api":"GET https://api.vertracloud.app/v1/images/{image_id}/versions","href":"/api-reference/endpoint/images/versions"},{"title":"Image Build Logs","sidebarTitle":"Build Logs","api":"GET https://api.vertracloud.app/v1/images/{image_id}/logs","href":"/api-reference/endpoint/images/logs"},{"title":"Download Image Context","sidebarTitle":"Download Context","api":"GET https://api.vertracloud.app/v1/images/{image_id}/context","href":"/api-reference/endpoint/images/context"},{"title":"Link Image to GitHub","sidebarTitle":"Link GitHub","api":"PUT https://api.vertracloud.app/v1/images/{image_id}/github","href":"/api-reference/endpoint/images/github-link"},{"title":"Unlink Image from GitHub","sidebarTitle":"Unlink GitHub","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}/github","href":"/api-reference/endpoint/images/github-unlink"},{"title":"Delete Image","sidebarTitle":"Delete Image","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}","href":"/api-reference/endpoint/images/delete"}]},{"group":"Databases","icon":"database","pages":[{"title":"Create Database","sidebarTitle":"Create Database","api":"POST https://api.vertracloud.app/v1/databases","href":"/api-reference/endpoint/databases/create"},{"title":"Get Database by ID","sidebarTitle":"Get Database","api":"GET https://api.vertracloud.app/v1/databases/{id}","href":"/api-reference/endpoint/databases/get"},{"title":"List Database Versions","sidebarTitle":"Versions","api":"GET https://api.vertracloud.app/v1/databases/versions","href":"/api-reference/endpoint/databases/versions"},{"title":"Get Database Status by ID","sidebarTitle":"Get Database Status","api":"GET https://api.vertracloud.app/v1/databases/{id}/status","href":"/api-reference/endpoint/databases/status"},{"title":"Get All Databases Status","sidebarTitle":"All Databases Status","api":"GET https://api.vertracloud.app/v1/databases/status","href":"/api-reference/endpoint/databases/allstatus"},{"title":"Get Database Metrics by ID","sidebarTitle":"Get Database Metrics","api":"GET https://api.vertracloud.app/v1/databases/{id}/metrics","href":"/api-reference/endpoint/databases/metrics"},{"title":"Reset Database","sidebarTitle":"Reset Database","api":"POST https://api.vertracloud.app/v1/databases/{id}/reset","href":"/api-reference/endpoint/databases/reset"},{"title":"Start Database","sidebarTitle":"Start Database","api":"POST https://api.vertracloud.app/v1/databases/{id}/start","href":"/api-reference/endpoint/databases/start"},{"title":"Stop Database","sidebarTitle":"Stop Database","api":"POST https://api.vertracloud.app/v1/databases/{id}/stop","href":"/api-reference/endpoint/databases/stop"},{"title":"Update Database","sidebarTitle":"Update Database","api":"PUT https://api.vertracloud.app/v1/databases/{id}","href":"/api-reference/endpoint/databases/update"},{"title":"Delete Database","sidebarTitle":"Delete Database","api":"DELETE https://api.vertracloud.app/v1/databases/{id}","href":"/api-reference/endpoint/databases/delete"},{"group":"Credentials","icon":"lock","pages":[{"title":"Get Database Certificate","sidebarTitle":"Get Certificate","api":"GET https://api.vertracloud.app/v1/databases/{id}/credentials/certificate","href":"/api-reference/endpoint/databases/credentials/get"},{"title":"Reset Database Certificates","sidebarTitle":"Reset Certificates","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/certificate/reset","href":"/api-reference/endpoint/databases/credentials/reset"},{"title":"Reset Database Password","sidebarTitle":"Reset Password","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/reset","href":"/api-reference/endpoint/databases/credentials/resetpassword"}]}]},{"group":"Workspaces","icon":"users","pages":[{"title":"List Workspaces","sidebarTitle":"List","api":"GET https://api.vertracloud.app/v1/workspaces","href":"/api-reference/endpoint/workspaces/get-all"},{"title":"Get Workspace","sidebarTitle":"Get","api":"GET https://api.vertracloud.app/v1/workspaces/{id}","href":"/api-reference/endpoint/workspaces/get"},{"title":"Create Workspace","sidebarTitle":"Create","api":"POST https://api.vertracloud.app/v1/workspaces","href":"/api-reference/endpoint/workspaces/create"},{"title":"Update Workspace","sidebarTitle":"Update","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}","href":"/api-reference/endpoint/workspaces/update"},{"title":"Delete Workspace","sidebarTitle":"Delete","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}","href":"/api-reference/endpoint/workspaces/delete"},{"group":"Members","icon":"user-group","pages":[{"title":"List Members","sidebarTitle":"List","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/members","href":"/api-reference/endpoint/workspaces/members/list"},{"title":"Update Member","sidebarTitle":"Update","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/api-reference/endpoint/workspaces/members/update"},{"title":"Remove Member","sidebarTitle":"Remove","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/api-reference/endpoint/workspaces/members/remove"}]},{"group":"Roles","icon":"id-badge","pages":[{"title":"List Roles","sidebarTitle":"List","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/api-reference/endpoint/workspaces/roles/list"},{"title":"Create Role","sidebarTitle":"Create","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/api-reference/endpoint/workspaces/roles/create"},{"title":"Update Role","sidebarTitle":"Update","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/api-reference/endpoint/workspaces/roles/update"},{"title":"Delete Role","sidebarTitle":"Delete","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/api-reference/endpoint/workspaces/roles/delete"}]},{"group":"Invites","icon":"envelope","pages":[{"title":"List Invites","sidebarTitle":"List","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/invites","href":"/api-reference/endpoint/workspaces/invites/list"},{"title":"Revoke Invite","sidebarTitle":"Revoke","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/invites/{invite_id}","href":"/api-reference/endpoint/workspaces/invites/revoke"},{"title":"Preview Invite","sidebarTitle":"Preview","api":"GET https://api.vertracloud.app/v1/workspaces/invites/{token}","href":"/api-reference/endpoint/workspaces/invites/preview"},{"title":"Accept Invite","sidebarTitle":"Accept","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/accept","href":"/api-reference/endpoint/workspaces/invites/accept"},{"title":"Decline Invite","sidebarTitle":"Decline","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/decline","href":"/api-reference/endpoint/workspaces/invites/decline"}]},{"group":"Apps \u0026 Databases","icon":"window-maximize","pages":[{"title":"Link Application","sidebarTitle":"Link App","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/api-reference/endpoint/workspaces/links/add-app"},{"title":"Unlink Application","sidebarTitle":"Unlink App","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/api-reference/endpoint/workspaces/links/remove-app"},{"title":"Link Database","sidebarTitle":"Link Database","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/api-reference/endpoint/workspaces/links/add-database"},{"title":"Unlink Database","sidebarTitle":"Unlink Database","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/api-reference/endpoint/workspaces/links/remove-database"}]},{"group":"Resource Organization","icon":"folder-tree","pages":[{"title":"Workspace Resource Organization","sidebarTitle":"Folders and favorites","href":"/api-reference/endpoint/workspaces/resource-organization"}]},{"group":"Action Requests","icon":"square-check","pages":[{"title":"List Action Requests","sidebarTitle":"List","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/api-reference/endpoint/workspaces/action-requests/list"},{"title":"Create Action Request","sidebarTitle":"Create","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/api-reference/endpoint/workspaces/action-requests/create"}]}]},{"group":"Billing","icon":"credit-card","pages":[{"title":"List Orders","sidebarTitle":"List Orders","api":"GET https://api.vertracloud.app/v1/orders","href":"/api-reference/endpoint/billing/list-orders"},{"title":"Get Order Status","sidebarTitle":"Order Status","api":"GET https://api.vertracloud.app/v1/orders/{orderId}/status","href":"/api-reference/endpoint/billing/order-status"},{"title":"Create Order","sidebarTitle":"Create Order","api":"POST https://api.vertracloud.app/v1/orders","href":"/api-reference/endpoint/billing/create-order"},{"title":"Initiate PIX Payment","sidebarTitle":"Initiate PIX","api":"POST https://api.vertracloud.app/v1/orders/{orderId}/initiate/pix","href":"/api-reference/endpoint/billing/initiate-pix"},{"title":"Get Billing Details","sidebarTitle":"Get Billing Details","api":"GET https://api.vertracloud.app/v1/users/me/billing","href":"/api-reference/endpoint/billing/get-billing-details"},{"title":"Update Billing Details","sidebarTitle":"Update Billing Details","api":"PUT https://api.vertracloud.app/v1/users/me/billing","href":"/api-reference/endpoint/billing/update-billing-details"}]},{"group":"Redeem","icon":"ticket","pages":[{"title":"Redeem Code","sidebarTitle":"Redeem Code","api":"POST https://api.vertracloud.app/v1/redeem/{code}","href":"/api-reference/endpoint/redeem/redeem"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Create Image - Vertra Cloud","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js"]}