September 23, 2026
Standardized empty responses and validation errors
Three adjustments to API response formats, so every route follows the same envelope:- An empty response is
{ "response": null }. Removing an environment variable, saving, moving and deleting a file, removing a custom domain, clearing the cache, removing a deploy webhook and deleting an application used to respond{}. They now respond{ "response": null }, matching what workspace routes already did. - The invalid field moves to
details.path. A400 VALIDATION_ERRORused to includepathloose at the top of the response; it now comes as{ "code": "VALIDATION_ERROR", "message": "...", "details": { "path": "..." } }. - File manager client errors are
400, not500. Uploading with no file (NO_FILE_UPLOADED) or an unreadable zip (INVALID_ZIP_STRUCTURE) used to respond500; it now responds with the correct4xxstatus.
GET /v1/apps/runtimesresponds with just{ "response": { ... } }, without the extrastatusfield.PATCH /v1/users/meonly acceptspt-br,en-usores-esforlanguage.POST /v1/users/{id}/snapshots/{snapshot_id}/restorerejects an invalidresource_idwith400.POST /v1/orders/{orderId}/initiate/pixalways returnstransaction_amountas a number.
path at the top level of an error or treated {} as success, update to
the formats above. The @vertracloud/api-types types already describe the new format.Error codes related to applications and databases were also standardized.File content always base64
File content returned by Get Application File Content and the SDKs is now always standard base64, with the response’ssize field reflecting the real
byte size of the file rather than the length of the encoded string. Previously the format varied
by file type. If your integration branched on content format, that branch is no longer needed.