Skip to main content
POST
Deploy a published version to an environment: che…

Authorizations

apiKey
string
query
required

apiKey MUST be supplied within the request body instead of query

Path Parameters

projectId
string<uuid>
required

The project the workspace belongs to.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
workspaceId
string<uuid>
required

The workspace.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
environment
string
required

Where to deploy: production or a project environment's slug.

Body

application/json

POST /v2/api/projects/:projectId/workspaces/:workspaceId/environments/:environment/deployments Request body

version
integer
required

The published version to deploy.

Required range: 1 <= x <= 9007199254740991
apiKey
string

Upsolve API key, generated under Account → Developer settings in the Upsolve Hub. Keys are user-scoped: pass organizationId alongside the key to select which org to act on.

Minimum string length: 1
Example:

"up_embed_************"

organizationId
string<uuid>

Your Upsolve organization's UUID — the org that owns the API key and project. This is NOT a project organization: do not pass a value registered via /projects/register-organization, and do not pass an externalId (only projectOrganizationId accepts those). Omit it when using an org-bound API key — the org is read from the key and any value sent here is ignored. Required only for user-scoped API keys (created under Account → Developer settings) and for the Supabase JWT path, where the org is ambiguous and membership is verified against it.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Example:

"123e4567-e89b-12d3-a456-426614174000"

message
string

A note recorded with the deployment.

Maximum string length: 500
bypassChecks
boolean

Skip the test cases and row-level security check this environment requires. Owners and admins only, and recorded on the deployment. The compatibility check always runs. Ask the person before setting this.

deployWithoutTests
boolean

Confirms deploying to production when production does not require tests. Required in that case, refused otherwise. Ask the person before setting this.

rlsConfirmation
string

Only after a 409 with code RLS_DESTRUCTIVE_CHANGE_UNCONFIRMED or RLS_PRODUCTION_CHANGE_UNCONFIRMED: that response's details.confirmation, sent back to go ahead with the row-level security changes it listed. Owner or admin only. Show the person the list and ask before sending it.

Required string length: 1 - 64

Response

POST /v2/api/projects/:projectId/workspaces/:workspaceId/environments/:environment/deployments Positive response

status
string
required
Allowed value: "success"
data
object
required