Applications
Update Application Configuration
Updates the stored configuration of an application by its ID.
PATCH
Update Application Configuration
string
required
The application ID to update. If the application belongs to a workspace, pass its ID in the
workspace_id query parameter.string
If the application belongs to a workspace, the workspace’s ID. Required for workspace members acting on an application they don’t own.
Send only the fields you want to change. Every body field is optional, but at least one must be present — an empty body is rejected. Fields you omit keep their current value.
string
The application display name. Maximum 50 characters.
string | null
The application description. Maximum 128 characters. Send
null to clear it.string
The entrypoint file of the application (e.g.,
index.js). Cannot be empty.string
The application’s runtime language. One of
javascript, typescript, bun, python, static, php, go, ruby, java, rust, deno, dotnet, elixir. Any other value is rejected.Changing the language resets the version. When
language differs from the application’s current language, version is forced to recommended in the same update, even if the request body also sends an explicit version — the version stored for the old language may not exist for the new one. main_file and start_command are not adjusted automatically; an entrypoint or start command written for the old language may not run under the new one.string
The runtime version. Accepts
recommended, latest, auto or an explicit version string supported by the application’s language. Cannot be empty.string | null
A custom start command (e.g.,
node index.js). Maximum 512 characters. Send null to fall back to the default command for the language.string | null
An optional build command (e.g.,
npm run build). Maximum 512 characters. Send null to
remove it. Runs on the next deploy, after dependency installation and before the application
starts, in an isolated build environment (2× the application’s RAM, min 1,024 MB max 4,096 MB;
10-minute timeout). Available on every plan. A plain restart does not
re-run the build if the previous one succeeded with the same command.integer
The memory allocated to the application, in MB. Must be an integer of at least
100. Applications published on the web (with a subdomain or a custom domain) require at least 512.Changing the memory changes the application’s disk ceiling. The volume quota is derived from the allocated memory, so lowering
ram lowers how much the application is allowed to store — which is why lowering it can be refused with 409 STORAGE_ABOVE_NEW_LIMIT. See Common Error Codes.object
How a new deploy is applied and what happens if it fails. Send only the subfields you want to change.
Plan gates for
deploy. zero_downtime: "on" below Starter 2 fails with 403 PLAN_DOES_NOT_SUPPORT_ZERO_DOWNTIME, and auto_rollback: true below Pro fails with 403 PLAN_DOES_NOT_SUPPORT_AUTO_ROLLBACK. The check applies even when the value you send equals the value already saved. zero_downtime: "off", zero_downtime: "auto" and auto_rollback: false are always accepted. A saved value stays on the application after a downgrade, but only takes effect on a plan that includes the feature.Changing
deploy does not restart the application. The new settings apply from the next deploy. The deploy object returned by Get Application shows what applies right now.Changing
build_command counts against the account’s hourly deploy budget, the same one
creating an application or uploading a ZIP draws from. See Deploy rate limits.Request example
Response
string
The operation status (
success).Error Responses
string
The error code indicating the reason for the failure. Possible values:
USER_NOT_FOUND: The request is not authenticated (401).VALIDATION_ERROR: A field failed validation — wrong type, over the length limit, or an empty body (400). The response carriesmessageandpathpointing at the offending field.APP_NOT_FOUND: The specified application does not exist (404).ACCESS_DENIED: The user does not have permission to act on the application (403).PLAN_DOES_NOT_SUPPORT_AUTO_ROLLBACK:deploy.auto_rollback: truewas sent and the owner’s plan is below Pro (403).PLAN_DOES_NOT_SUPPORT_ZERO_DOWNTIME:deploy.zero_downtime: "on"was sent and the owner’s plan is not Enterprise (403).APP_SHIELD_COOLDOWN: Vertra Shield paused the application; this action is blocked until the pause ends (403).details.untilsays when.OWNER_APP_WITHOUT_LIMITS: The plan limits of the application owner could not be read, so the requested memory cannot be validated (404).MEMORY_BELOW_MINIMUM: The requested memory is below the minimum for this application —512MB for a web-published application (400).MEMORY_LIMIT_EXCEEDED: The requested memory does not fit in the plan’s remaining memory, counting every other resource of the owner (400).STORAGE_ABOVE_NEW_LIMIT: The volume already holds more than the disk ceiling implied by the requested memory (409). Nothing was changed. See below.DEPLOY_RATE_LIMITED: Abuild_commandchange was requested and the account’s hourly deploy budget for its plan was already reached (429).INTERNAL_SERVER_ERROR: The configuration could not be updated (500).
string
A descriptive message providing additional details about the error.
object
Present on
STORAGE_ABOVE_NEW_LIMIT. Carries used_mb, limit_mb and free_mb — how much the volume holds, the ceiling the requested memory would impose, and how much has to be deleted before the change is accepted.This route writes configuration; it does not restart or rebuild the container. The new values take effect on the next rebuild of the application. The
deploy settings take effect on the next restart or deploy.Last modified on November 1, 2026