The Deployment area publishes 115 REST endpoints. Paths are relative to https://api.lepsto.com; see Authentication for the required header.
POST/deployment/alerts
Create a threshold alert rule for a service or managed service
MCP tool: deployment_alert_create
Parameters
| Name | In | Type | Required | Description |
|---|
targetKind | body | stringone of: service, managed-service
| • | — |
targetId | body | string (uuid)
| • | — |
metric | body | stringone of: cpu, memory, net_in, net_out, disk
| • | — |
comparator | body | stringone of: gt, lt
| • | — |
threshold | body | number
| • | — |
enabled | body | boolean
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
state | stringone of: ok, firing
| • | — |
metric | stringone of: cpu, memory, net_in, net_out, disk
| • | — |
enabled | boolean
| • | — |
targetId | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
threshold | number
| • | — |
updatedAt | string
| • | — |
comparator | stringone of: gt, lt
| • | — |
targetKind | stringone of: service, managed-service
| • | — |
environmentId | string
| • | — |
lastEvaluatedAt | string | null
| • | — |
lastStateChangeAt | string | null
| • | — |
DELETE/deployment/alerts/:id
Delete an alert rule
MCP tool: deployment_alert_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
deleted | boolean
| • | — |
PATCH/deployment/alerts/:id
Update an alert rule (threshold, comparator, enabled)
MCP tool: deployment_alert_update
Parameters
| Name | In | Type | Required | Description |
|---|
comparator | body | stringone of: gt, lt
| — | — |
threshold | body | number
| — | — |
enabled | body | boolean
| — | — |
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
state | stringone of: ok, firing
| • | — |
metric | stringone of: cpu, memory, net_in, net_out, disk
| • | — |
enabled | boolean
| • | — |
targetId | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
threshold | number
| • | — |
updatedAt | string
| • | — |
comparator | stringone of: gt, lt
| • | — |
targetKind | stringone of: service, managed-service
| • | — |
environmentId | string
| • | — |
lastEvaluatedAt | string | null
| • | — |
lastStateChangeAt | string | null
| • | — |
POST/deployment/analytics/query
Ask a natural-language question about THIS product's deployment data (deployments, deploy events, environments, services, domains, managed services) and get a computed answer. Returns the generated SQL, the result rows, and a natural-language answer. Read-only; scoped to the current product.
MCP tool: deployment_analytics_query
Parameters
| Name | In | Type | Required | Description |
|---|
q | body | string
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
sql | string
| • | — |
rows | object[]
| • | — |
answer | string
| • | — |
truncated | boolean
| • | — |
explanation | string
| • | — |
GET/deployment/builds/:id
Get a single build by deployment id
MCP tool: deployment_build_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed
| • | — |
builtAt | string | null
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/cloud-sql/databases
Create a logical database (with its own role) on the managed Postgres instance.
MCP tool: deployment_cloud_sql_database_create
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | body | string (uuid)
| • | — |
label | body | string
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
dbName | string
| • | — |
status | string
| • | — |
roleName | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
instanceId | string
| • | — |
lastErrorMessage | string | null
| • | — |
DELETE/deployment/cloud-sql/databases/:databaseId
Delete a logical managed Postgres database (detaches from all services first).
MCP tool: deployment_cloud_sql_database_delete
Parameters
| Name | In | Type | Required | Description |
|---|
databaseId | path | string (uuid)
| • | — |
GET/deployment/cloud-sql/databases/:databaseId
Get a logical managed Postgres database by id.
MCP tool: deployment_cloud_sql_database_get
Parameters
| Name | In | Type | Required | Description |
|---|
databaseId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
dbName | string
| • | — |
status | string
| • | — |
roleName | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
instanceId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/cloud-sql/databases/attach
Attach a managed Postgres database to a service in an environment; injects DATABASE_URL (and PG* vars) as a secret.
MCP tool: deployment_cloud_sql_database_attach
Parameters
| Name | In | Type | Required | Description |
|---|
databaseId | body | string (uuid)
| • | — |
serviceId | body | string (uuid)
| • | — |
environmentId | body | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
status | string
| • | — |
serviceId | string
| • | — |
databaseId | string
| • | — |
environmentId | string
| • | — |
POST/deployment/cloud-sql/databases/detach
Detach a managed Postgres database from a service; removes the injected connection secrets. Does not delete the database.
MCP tool: deployment_cloud_sql_database_detach
Parameters
| Name | In | Type | Required | Description |
|---|
attachmentId | body | string (uuid)
| • | — |
GET/deployment/cloud-sql/instances
List the product's managed Postgres (Cloud SQL) instance(s).
MCP tool: deployment_cloud_sql_instance_list
Parameters
No parameters.
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
tier | string
| • | — |
label | string
| • | — |
region | string
| • | — |
status | string
| • | — |
createdAt | string
| • | — |
pgVersion | string
| • | — |
privateIp | string | null
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
pitrEnabled | boolean | null
| • | — |
backupsEnabled | boolean | null
| • | — |
connectionName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
backupConfigObservedAt | string | null
| • | — |
POST/deployment/cloud-sql/instances
Provision the product's managed Postgres instance on Google Cloud SQL — fully managed by Google Cloud, with automated backups and point-in-time recovery, a dedicated instance, and easy resize.
MCP tool: deployment_cloud_sql_instance_create
Parameters
| Name | In | Type | Required | Description |
|---|
label | body | string
| • | — |
tier | body | stringone of: db-custom-1-3840, db-custom-2-7680, db-custom-4-15360
| — | — |
pgVersion | body | stringone of: 16, 17, 18
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
tier | string
| • | — |
label | string
| • | — |
region | string
| • | — |
status | string
| • | — |
createdAt | string
| • | — |
pgVersion | string
| • | — |
privateIp | string | null
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
pitrEnabled | boolean | null
| • | — |
backupsEnabled | boolean | null
| • | — |
connectionName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
backupConfigObservedAt | string | null
| • | — |
DELETE/deployment/cloud-sql/instances/:instanceId
Delete the managed Postgres (Cloud SQL) instance (must have no databases).
MCP tool: deployment_cloud_sql_instance_delete
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
GET/deployment/cloud-sql/instances/:instanceId
Get the product's managed Postgres (Cloud SQL) instance and its status.
MCP tool: deployment_cloud_sql_instance_get
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
tier | string
| • | — |
label | string
| • | — |
region | string
| • | — |
status | string
| • | — |
createdAt | string
| • | — |
pgVersion | string
| • | — |
privateIp | string | null
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
pitrEnabled | boolean | null
| • | — |
backupsEnabled | boolean | null
| • | — |
connectionName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
backupConfigObservedAt | string | null
| • | — |
GET/deployment/cloud-sql/instances/:instanceId/backups
List backup runs for the managed Postgres (Cloud SQL) instance.
MCP tool: deployment_cloud_sql_instance_backup_list
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
type | string
| • | — |
error | string | null
| • | — |
status | string
| • | — |
endTime | string | null
| • | — |
startTime | string | null
| • | — |
description | string | null
| • | — |
POST/deployment/cloud-sql/instances/:instanceId/backups
Take an on-demand backup of the managed Postgres (Cloud SQL) instance.
MCP tool: deployment_cloud_sql_instance_backup
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
tier | string
| • | — |
label | string
| • | — |
region | string
| • | — |
status | string
| • | — |
createdAt | string
| • | — |
pgVersion | string
| • | — |
privateIp | string | null
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
pitrEnabled | boolean | null
| • | — |
backupsEnabled | boolean | null
| • | — |
connectionName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
backupConfigObservedAt | string | null
| • | — |
GET/deployment/cloud-sql/instances/:instanceId/databases
List the logical managed Postgres databases on an instance.
MCP tool: deployment_cloud_sql_database_list
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
dbName | string
| • | — |
status | string
| • | — |
roleName | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
instanceId | string
| • | — |
lastErrorMessage | string | null
| • | — |
GET/deployment/cloud-sql/instances/:instanceId/logs
Snapshot the last N Postgres log lines for a managed Postgres (Cloud SQL) instance.
MCP tool: deployment_cloud_sql_logs
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
tail | query | integer
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
lines | string[]
| • | — |
PATCH/deployment/cloud-sql/instances/:instanceId/resize
Resize the managed Postgres (Cloud SQL) instance to a different tier (CPU/RAM).
MCP tool: deployment_cloud_sql_instance_resize
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | path | string (uuid)
| • | — |
tier | body | stringone of: db-custom-1-3840, db-custom-2-7680, db-custom-4-15360
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
tier | string
| • | — |
label | string
| • | — |
region | string
| • | — |
status | string
| • | — |
createdAt | string
| • | — |
pgVersion | string
| • | — |
privateIp | string | null
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
pitrEnabled | boolean | null
| • | — |
backupsEnabled | boolean | null
| • | — |
connectionName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
backupConfigObservedAt | string | null
| • | — |
POST/deployment/cloud-sql/instances/:instanceId/restore
Restore the managed Postgres (Cloud SQL) instance IN-PLACE from a backup run (destructive — overwrites current data).
MCP tool: deployment_cloud_sql_instance_restore
Parameters
| Name | In | Type | Required | Description |
|---|
backupRunId | body | string
| • | — |
instanceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
tier | string
| • | — |
label | string
| • | — |
region | string
| • | — |
status | string
| • | — |
createdAt | string
| • | — |
pgVersion | string
| • | — |
privateIp | string | null
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
pitrEnabled | boolean | null
| • | — |
backupsEnabled | boolean | null
| • | — |
connectionName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
backupConfigObservedAt | string | null
| • | — |
POST/deployment/cloud-sql/instances/backfill-log-flags
Apply this product's managed Postgres (Cloud SQL) log flags to existing instance(s), idempotently (safe to re-run; zero downtime). Targets one instance when instanceId is supplied.
MCP tool: deployment_cloud_sql_backfill_log_flags
Parameters
| Name | In | Type | Required | Description |
|---|
instanceId | body | string (uuid)
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
failed | object[]
| • | — |
patched | number
| • | — |
scanned | number
| • | — |
skippedNoDrift | number
| • | — |
restartRequired | object[]
| • | — |
skippedNotReady | number
| • | — |
skippedRestartRequired | number
| • | — |
GET/deployment/deployments/:id
Get a single deployment by id
MCP tool: deployment_deployment_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed, Sleeping, Stopped, WakeFailed
| • | — |
builtAt | string | null
| • | — |
trigger | string | nullone of: manual, push, preview, fork, watchdog, rollback, static_upload
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
updatedAt | string
| • | — |
deployedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
configSnapshot | object
| • | — |
lastErrorMessage | string | null
| • | — |
rolledBackFromDeploymentId | string (uuid) | null
| • | — |
GET/deployment/domains/:domainId/routes
List path-routes for a domain
MCP tool: deployment_domain_routes_list
Parameters
| Name | In | Type | Required | Description |
|---|
domainId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
domainId | string (uuid)
| • | — |
priority | integer
| • | — |
createdAt | string
| • | — |
isDefault | boolean
| • | — |
serviceId | string (uuid)
| • | — |
updatedAt | string
| • | — |
pathPrefix | string
| • | — |
POST/deployment/domains/:domainId/routes
Add a path-route to a custom domain
MCP tool: deployment_domain_routes_add
Parameters
| Name | In | Type | Required | Description |
|---|
domainId | path | string (uuid)
| • | — |
pathPrefix | body | string
| • | — |
serviceId | body | string (uuid)
| • | — |
isDefault | body | boolean
| — | — |
priority | body | integer
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
domainId | string (uuid)
| • | — |
priority | integer
| • | — |
createdAt | string
| • | — |
isDefault | boolean
| • | — |
serviceId | string (uuid)
| • | — |
updatedAt | string
| • | — |
pathPrefix | string
| • | — |
DELETE/deployment/domains/:domainId/routes/:routeId
Remove a path-route (default route cannot be removed)
MCP tool: deployment_domain_routes_remove
Parameters
| Name | In | Type | Required | Description |
|---|
domainId | path | string (uuid)
| • | — |
routeId | path | string (uuid)
| • | — |
PATCH/deployment/domains/:domainId/routes/:routeId
Update a path-route
MCP tool: deployment_domain_routes_update
Parameters
| Name | In | Type | Required | Description |
|---|
domainId | path | string (uuid)
| • | — |
routeId | path | string (uuid)
| • | — |
pathPrefix | body | string
| — | — |
serviceId | body | string (uuid)
| — | — |
priority | body | integer
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
domainId | string (uuid)
| • | — |
priority | integer
| • | — |
createdAt | string
| • | — |
isDefault | boolean
| • | — |
serviceId | string (uuid)
| • | — |
updatedAt | string
| • | — |
pathPrefix | string
| • | — |
DELETE/deployment/domains/:id
Remove a custom domain (auto-domains are removed via service.delete)
MCP tool: deployment_domain_remove
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
GET/deployment/domains/:id
Get a domain by id (includes DNS instructions for custom domains awaiting verification)
MCP tool: deployment_domain_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
PATCH/deployment/domains/:id/redirect
Put a domain into Redirect mode — answer a 301/302 to another domain of the same service, path and query preserved. Pass a null target to clear it and go back to serving.
MCP tool: deployment_domain_redirect_set
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
redirectToDomainId | body | string (uuid) | null
| • | — |
status | body | numberone of: 301, 302
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
PATCH/deployment/domains/:id/redirect-www
Toggle the www→apex 301 redirect for an apex custom domain
MCP tool: deployment_domain_redirect_www
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
enabled | body | boolean
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
POST/deployment/domains/:id/verify
Force an out-of-band DNS verification check for a custom domain
MCP tool: deployment_domain_verify
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
GET/deployment/environments
List environments for the current product. Filters by type (persistent or pr-preview) when supplied.
MCP tool: deployment_environment_list
Parameters
| Name | In | Type | Required | Description |
|---|
type | query | stringone of: persistent, pr-preview
| — | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
POST/deployment/environments
Create a new environment
MCP tool: deployment_environment_create
Parameters
| Name | In | Type | Required | Description |
|---|
name | body | string
| • | — |
slug | body | string
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
GET/deployment/environments/:environmentId/alert-events
List recent alert firing/resolved events in an environment
MCP tool: deployment_alert_events_list
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
limit | query | integer
| — | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
type | stringone of: firing, resolved
| • | — |
value | number
| • | — |
metric | stringone of: cpu, memory, net_in, net_out, disk
| • | — |
ruleId | string
| • | — |
targetId | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
threshold | number
| • | — |
targetKind | stringone of: service, managed-service
| • | — |
GET/deployment/environments/:environmentId/alerts
List alert rules in an environment
MCP tool: deployment_alert_list
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
state | stringone of: ok, firing
| • | — |
metric | stringone of: cpu, memory, net_in, net_out, disk
| • | — |
enabled | boolean
| • | — |
targetId | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
threshold | number
| • | — |
updatedAt | string
| • | — |
comparator | stringone of: gt, lt
| • | — |
targetKind | stringone of: service, managed-service
| • | — |
environmentId | string
| • | — |
lastEvaluatedAt | string | null
| • | — |
lastStateChangeAt | string | null
| • | — |
GET/deployment/environments/:environmentId/canvas
Get canvas state (nodes + services) for an environment
MCP tool: deployment_canvas_get
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
edges | object[]
| • | — |
nodes | object[]
| • | — |
services | object[]
| • | — |
environmentId | string (uuid)
| • | — |
PUT/deployment/environments/:environmentId/canvas/nodes/:nodeId
Update position/size of a canvas node
MCP tool: deployment_canvas_move_node
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
nodeId | path | string (uuid)
| • | — |
x | body | number
| — | — |
y | body | number
| — | — |
width | body | number
| — | — |
height | body | number
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
x | number
| • | — |
y | number
| • | — |
id | string (uuid)
| • | — |
width | number | null
| • | — |
height | number | null
| • | — |
nodeId | string (uuid)
| • | — |
nodeKind | stringone of: service, volume, managed-service, cloud-sql
| • | — |
createdAt | string
| • | — |
updatedAt | string
| • | — |
GET/deployment/environments/:environmentId/domains
List domains for an environment (auto + custom)
MCP tool: deployment_domain_list
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
POST/deployment/environments/:environmentId/domains
Register a custom domain for an environment; returns CNAME+TXT DNS instructions. When the governance domain is in external mode the result also carries managedDns, a hint to switch it to managed mode with organization_domains_set-mode (needs a Cloudflare connector) so the records are published for you
MCP tool: deployment_domain_add
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
hostname | body | string
| • | — |
defaultServiceId | body | string (uuid)
| • | — |
pathPrefix | body | string
| — | — |
redirectWww | body | boolean
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
routes | object[]
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
managedDns | object | null
| — | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
GET/deployment/environments/:environmentId/events
List deploy events for an environment, newest first
MCP tool: deployment_events_list_by_environment
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
type | query | stringone of: deployment.queued, deployment.build.started, deployment.build.succeeded, deployment.build.failed, deployment.deploying, deployment.variable.ignored, deployment.healthcheck.passed, deployment.healthcheck.failed, deployment.healthy, deployment.failed, deployment.replaced, deployment.rolled_back, deployment.sourcemaps.uploaded, deployment.sourcemaps.upload-failed, deployment.requeue-failed, deployment.release.started, deployment.release.log, deployment.release.succeeded, deployment.release.failed, replica.restarted, service.scaled, service.restarted, service.restart-failed, service.startup-boost, service.memory-request-changed, domain.verified, domain.tls.issued, domain.tls.failed, domain.www-tls.issued, domain.www-tls.failed, domain.routing.active, domain.routing.failed, domain.routing.reapplied, domain.removed, domain.governance.mirror-failed, service.slept, service.woke, service.wake_failed, service.sleep-enabled, service.sleep-disabled, service.sleep-enable-failed, service.public_domain.changed, service.source.reconnected, cloud-sql.instance.stopped, cloud-sql.instance.started, cloud-sql.instance.stop-failed, cloud-sql.instance.start-failed, suspension.workload-stopped, suspension.workload-restored, managed-service.restarted, managed-service.port-leak-healed, managed-service.backup-reset, managed-service.resize-failed
| — | — |
since | query | string (date-time)
| — | — |
until | query | string (date-time)
| — | — |
limit | query | integer
| — | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
type | stringone of: deployment.queued, deployment.build.started, deployment.build.succeeded, deployment.build.failed, deployment.deploying, deployment.variable.ignored, deployment.healthcheck.passed, deployment.healthcheck.failed, deployment.healthy, deployment.failed, deployment.replaced, deployment.rolled_back, deployment.sourcemaps.uploaded, deployment.sourcemaps.upload-failed, deployment.requeue-failed, deployment.release.started, deployment.release.log, deployment.release.succeeded, deployment.release.failed, replica.restarted, service.scaled, service.restarted, service.restart-failed, service.startup-boost, service.memory-request-changed, domain.verified, domain.tls.issued, domain.tls.failed, domain.www-tls.issued, domain.www-tls.failed, domain.routing.active, domain.routing.failed, domain.routing.reapplied, domain.removed, domain.governance.mirror-failed, service.slept, service.woke, service.wake_failed, service.sleep-enabled, service.sleep-disabled, service.sleep-enable-failed, service.public_domain.changed, service.source.reconnected, cloud-sql.instance.stopped, cloud-sql.instance.started, cloud-sql.instance.stop-failed, cloud-sql.instance.start-failed, suspension.workload-stopped, suspension.workload-restored, managed-service.restarted, managed-service.port-leak-healed, managed-service.backup-reset, managed-service.resize-failed
| • | — |
payload | object
| • | — |
domainId | string | null
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
serviceId | string | null
| • | — |
deploymentId | string | null
| • | — |
environmentId | string | null
| • | — |
GET/deployment/environments/:environmentId/managed-services
List managed services in an environment
MCP tool: deployment_managed_service_list
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/environments/:environmentId/managed-services
Provision a managed service (e.g. Postgres, Redis) inside an environment
MCP tool: deployment_managed_service_provision
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
name | body | string
| • | — |
slug | body | string
| — | — |
engine | body | stringone of: postgres, redis, mysql, mongodb
| • | — |
version | body | string
| — | — |
storageGiB | body | integer
| — | — |
databaseName | body | string
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
GET/deployment/environments/:environmentId/services
List services within an environment. Each entry carries publicDomain — false for a service that holds no public auto-domain. A git or static source with a GitHub connector also carries sourceConnection.state: 'connected' (the connection is working), 'unavailable' (removed, detached, replaced by a reconnect, or not working — call deployment_vcs_connection_list with repoFullName to see which connections can read the repo, then deployment_service_update with the new connectorId) or 'unknown' (the connection list could not be fetched; the read still succeeds). Reading never contacts GitHub and never changes the source; source.autoDeploy sits next to it. A git source may report source.build.secrets: names only; variable values are never returned. appliedProbes are the probes of the version running now; pendingProbes are what the next deploy applies; probesPendingRedeploy is true when they differ. To apply them now, deploy the service, or roll back to its current Active deployment (same image, fresh render). appliedProbes is null when nothing runs, or with appliedProbesUnknown when they could not be read.
MCP tool: deployment_service_list
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
mode | string
| — | — |
name | string
| • | — |
slug | string
| • | — |
memory | object
| — | Memory of the running version. Absent for static sites and when it could not be read. |
probes | object
| • | — |
source | object
| • | — |
command | string | null
| — | — |
lastRun | object | null
| — | — |
tracing | string
| — | — |
replicas | integer
| • | — |
schedule | string | null
| — | — |
createdAt | string
| • | — |
dependsOn | string[]
| • | — |
nextRunAt | string | null
| — | — |
resources | object
| — | — |
updatedAt | string
| • | — |
autoDeploy | boolean
| — | — |
sleepState | stringone of: awake, sleeping, waking, stopped, wake_failed
| • | — |
idleMinutes | integer
| • | — |
scaleToZero | boolean
| • | — |
publicDomain | boolean
| — | — |
appliedProbes | object | null
| — | Probes of the version running now: what the serving deployment rendered (the Active one, or the Crashed one while it crash-loops). null when no deployment runs, or when they could not be read (appliedProbesUnknown). A change to probes reaches it only through a deploy. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). |
containerPort | integer
| • | — |
environmentId | string (uuid)
| • | — |
jobTimeoutSec | integer
| — | — |
pendingProbes | object
| — | Probes the next deploy of this service will apply, from its current settings and defaults. Absent for static and scheduled services. |
jobConcurrency | string
| — | — |
buildMachineType | string | null
| — | — |
sourceConnection | object
| — | — |
startupAutomatic | boolean
| — | True when appliedProbes.startup is the automatic startup probe (added for a liveness-only service), not the service's own probes.startup. |
scheduleSuspended | boolean
| — | — |
suspendedByBilling | boolean
| — | — |
lastReplicasRunning | integer
| • | — |
appliedProbesUnknown | boolean
| — | True when a deployment runs but its probes could not be read; appliedProbes is then null. The next deploy records them. |
probesPendingRedeploy | boolean
| — | True when pendingProbes differ from appliedProbes: the running version does not have them yet. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). False when no deployment runs or appliedProbes are unknown. |
scaleToZeroEligibility | object
| — | — |
pendingStartupAutomatic | boolean
| — | True when pendingProbes.startup is the automatic startup probe. |
POST/deployment/environments/:environmentId/services
Create a service inside an environment. mode:'persistent' (the default) is a container kept running; mode:'scheduled' is a job that runs a command and exits. A scheduled service takes schedule (a five-field UTC cron expression — minute hour day-of-month month day-of-week — or null for a job that only ever runs on demand), command (the shell command one run executes), jobTimeoutSec, and jobConcurrency ('forbid' | 'allow' | 'replace'), and accepts no containerPort, replicas or scaleToZero. mode is immutable after create. publicDomain defaults to true; pass false for a service that must not face the internet (minio, pgadmin, a worker) and it is created with no auto-domain and no route. For a git source only, source.build.secrets selects existing secret variables by name from the effective product → environment → service variable set. Image and static sources cannot use this field. Each deploy re-checks the selection and gives the values to the Docker build as BuildKit secrets: in the Dockerfile use RUN --mount=type=secret,id=<key> and read /run/secrets/<key> (env= is not supported). Omit build or use build: { secrets: [] } to select none.
MCP tool: deployment_service_create
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
name | body | string
| • | — |
slug | body | string
| — | — |
source | body | object
| • | — |
containerPort | body | integer
| — | — |
replicas | body | integer
| — | — |
probes | body | object
| — | — |
resources | body | object
| — | — |
tracing | body | stringone of: off, node, python
| — | OTel SDK to inject into this service's pods: 'off' (none), 'node' or 'python'. Read when a deploy builds the workload — takes effect on the next deploy, running pods are untouched. |
publicDomain | body | boolean
| — | Whether this service gets its public auto-domain (`<slug>-<hash>.<suffix>`) and the HTTPRoute that fronts it. Default true. Set false for a service that must not face the internet (minio, pgadmin, a worker): the auto-domain and its route are removed, which also frees a URL-map host rule. A custom domain attached to this service is NOT touched in either direction — it keeps serving. Set true again to re-create the auto-domain under the same hostname. |
canvas | body | object
| — | — |
mode | body | stringone of: persistent, scheduled
| — | 'persistent' (a long-running Deployment behind a Service — the default) or 'scheduled' (a k8s CronJob: no port, no replicas, no route). Immutable after create. |
schedule | body | string | null
| — | Five-field UTC cron expression (minute hour day-of-month month day-of-week), or null for a scheduled service with no schedule yet. |
command | body | string | null
| — | Shell command a scheduled run executes (`/bin/sh -c <command>`). Scheduled services only; omit it to run the image entrypoint. `null` clears a command that was set and returns the run to the image entrypoint. |
jobTimeoutSec | body | integer
| — | Wall-clock budget for one run, in seconds (60..86400). Becomes the Job activeDeadlineSeconds — an overrunning run is killed, not left going. |
jobConcurrency | body | stringone of: forbid, allow, replace
| — | What happens when a run is still going at the next tick: 'forbid' (skip the tick), 'allow' (run in parallel) or 'replace' (kill the running one). |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
mode | string
| — | — |
name | string
| • | — |
slug | string
| • | — |
memory | object
| — | Memory of the running version. Absent for static sites and when it could not be read. |
probes | object
| • | — |
source | object
| • | — |
command | string | null
| — | — |
lastRun | object | null
| — | — |
tracing | string
| — | — |
replicas | integer
| • | — |
schedule | string | null
| — | — |
createdAt | string
| • | — |
dependsOn | string[]
| • | — |
nextRunAt | string | null
| — | — |
resources | object
| — | — |
updatedAt | string
| • | — |
autoDeploy | boolean
| — | — |
sleepState | stringone of: awake, sleeping, waking, stopped, wake_failed
| • | — |
idleMinutes | integer
| • | — |
scaleToZero | boolean
| • | — |
publicDomain | boolean
| — | — |
appliedProbes | object | null
| — | Probes of the version running now: what the serving deployment rendered (the Active one, or the Crashed one while it crash-loops). null when no deployment runs, or when they could not be read (appliedProbesUnknown). A change to probes reaches it only through a deploy. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). |
containerPort | integer
| • | — |
environmentId | string (uuid)
| • | — |
jobTimeoutSec | integer
| — | — |
pendingProbes | object
| — | Probes the next deploy of this service will apply, from its current settings and defaults. Absent for static and scheduled services. |
jobConcurrency | string
| — | — |
buildMachineType | string | null
| — | — |
sourceConnection | object
| — | — |
startupAutomatic | boolean
| — | True when appliedProbes.startup is the automatic startup probe (added for a liveness-only service), not the service's own probes.startup. |
scheduleSuspended | boolean
| — | — |
suspendedByBilling | boolean
| — | — |
lastReplicasRunning | integer
| • | — |
appliedProbesUnknown | boolean
| — | True when a deployment runs but its probes could not be read; appliedProbes is then null. The next deploy records them. |
probesPendingRedeploy | boolean
| — | True when pendingProbes differ from appliedProbes: the running version does not have them yet. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). False when no deployment runs or appliedProbes are unknown. |
scaleToZeroEligibility | object
| — | — |
pendingStartupAutomatic | boolean
| — | True when pendingProbes.startup is the automatic startup probe. |
GET/deployment/environments/:environmentId/variables
List environment-scope (shared) variables
MCP tool: deployment_variable_list_env
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
key | string
| • | — |
scope | stringone of: service, environment, product
| • | — |
value | string | null
| • | — |
isSecret | boolean
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid) | null
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid) | null
| • | — |
DELETE/deployment/environments/:environmentId/variables/:key
Delete an environment-scope variable by key
MCP tool: deployment_variable_unset_env
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
key | path | string
| • | — |
PUT/deployment/environments/:environmentId/variables/:key
Create or update an environment-scope shared variable
MCP tool: deployment_variable_set_env
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
key | path | string
| • | — |
value | body | string
| • | — |
isSecret | body | boolean
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
key | string
| • | — |
scope | stringone of: service, environment, product
| • | — |
value | string | null
| • | — |
isSecret | boolean
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid) | null
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid) | null
| • | — |
GET/deployment/environments/:environmentId/volumes
List volumes in environment
MCP tool: deployment_volume_list
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
sizeGb | integer
| • | — |
status | stringone of: provisioning, ready, detached, failed
| • | — |
createdAt | string
| • | — |
mountPath | string
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid)
| • | — |
lastErrorMessage | string | null
| • | — |
attachedServiceId | string (uuid) | null
| • | — |
POST/deployment/environments/:environmentId/volumes
Create a volume
MCP tool: deployment_volume_create
Parameters
| Name | In | Type | Required | Description |
|---|
environmentId | path | string (uuid)
| • | — |
name | body | string
| • | — |
slug | body | string
| — | — |
sizeGb | body | integer
| • | — |
mountPath | body | string
| • | — |
attachedServiceId | body | string (uuid)
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
sizeGb | integer
| • | — |
status | stringone of: provisioning, ready, detached, failed
| • | — |
createdAt | string
| • | — |
mountPath | string
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid)
| • | — |
lastErrorMessage | string | null
| • | — |
attachedServiceId | string (uuid) | null
| • | — |
DELETE/deployment/environments/:id
Delete an environment (production cannot be deleted)
MCP tool: deployment_environment_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
GET/deployment/environments/:id
Get a single environment by id
MCP tool: deployment_environment_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
PATCH/deployment/environments/:id
Update an environment (name is the only updatable field)
MCP tool: deployment_environment_update
Parameters
| Name | In | Type | Required | Description |
|---|
name | body | string
| — | — |
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
POST/deployment/environments/:id/reconcile
Re-emit the provision or deprovision workflow for an environment, with optional force-finalizer-strip on deprovision
MCP tool: deployment_environment_reconcile
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
force | body | boolean
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
POST/deployment/environments/fork
Fork an environment: deep-clone services, variables (not secrets), domains, and volumes from a base environment
MCP tool: deployment_environment_fork
Parameters
| Name | In | Type | Required | Description |
|---|
baseEnvironmentId | body | string (uuid)
| • | — |
name | body | string
| • | — |
slug | body | string
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
GET/deployment/governance/domains
List Governance-approved base domains the product may add subdomains of
MCP tool: deployment_domain_allowed_list
Parameters
No parameters.
Response
Returns object.
| Field | Type | Always | Description |
|---|
domains | object[]
| • | — |
GET/deployment/managed-service-types
List available managed service engines and versions
MCP tool: deployment_managed_service_types
Parameters
No parameters.
Response
Returns object.
| Field | Type | Always | Description |
|---|
engines | object[]
| • | — |
DELETE/deployment/managed-services/:id
Delete a managed service (soft-delete, triggers deprovisioning)
MCP tool: deployment_managed_service_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
GET/deployment/managed-services/:id
Get a managed service by id
MCP tool: deployment_managed_service_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/managed-services/:id/backup
Create a backup snapshot of a managed service
MCP tool: deployment_managed_service_backup
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
GET/deployment/managed-services/:id/backups
List backup snapshots for a managed service
MCP tool: deployment_managed_service_backup_list
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
name | string
| • | — |
pvcName | string
| • | — |
createdAt | string
| • | — |
readyToUse | boolean
| • | — |
restoreSize | string | null
| • | — |
GET/deployment/managed-services/:id/connect-info
Get connection info and variable reference syntax for a managed service
MCP tool: deployment_managed_service_connect_info
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
slug | string
| • | — |
vars | object[]
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
GET/deployment/managed-services/:id/logs
Get pod logs for a managed service
MCP tool: deployment_managed_service_logs
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
tail | query | integer
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
lines | string[]
| • | — |
POST/deployment/managed-services/:id/reconcile
Retry provisioning of a managed service that failed or is stuck in provisioning. Also releases one stuck in backing_up for over 15 min: sets it back to ready and does not re-run the backup. Refused while the backup is younger than 15 min or its snapshot is still in progress.
MCP tool: deployment_managed_service_reconcile
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/managed-services/:id/resize
Increase storage size of a managed service (cannot shrink)
MCP tool: deployment_managed_service_resize
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
storageGiB | body | integer
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/managed-services/:id/restore
Restore a managed service from a backup snapshot
MCP tool: deployment_managed_service_restore
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
snapshotName | body | string
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/managed-services/:id/start
Start a stopped managed service
MCP tool: deployment_managed_service_start
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/managed-services/:id/stop
Stop a running managed service
MCP tool: deployment_managed_service_stop
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
name | string
| • | — |
slug | string
| • | — |
engine | stringone of: postgres, redis, mysql, mongodb
| • | — |
status | string
| • | — |
version | string
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
updatedAt | string
| • | — |
storageGiB | number
| • | — |
backupPolicy | object
| • | — |
databaseName | string | null
| • | — |
lastBackupAt | string | null
| • | — |
environmentId | string
| • | — |
lastErrorMessage | string | null
| • | — |
GET/deployment/metrics
Get metric time series for a service or managed service over a fixed window (15m/1h/6h/24h/7d). Services return resource metrics (cpu, memory, net_in, net_out) plus HTTP metrics (rps, p50, p95, p99, error_rate); managed services return cpu, memory, net_in, net_out, disk.
MCP tool: deployment_metrics_get
Parameters
| Name | In | Type | Required | Description |
|---|
targetKind | query | stringone of: service, managed-service
| • | — |
targetId | query | string (uuid)
| • | — |
window | query | stringone of: 15m, 1h, 6h, 24h, 7d
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
series | object[]
| • | — |
window | stringone of: 15m, 1h, 6h, 24h, 7d
| • | — |
capacity | object
| • | — |
targetId | string
| • | — |
targetKind | stringone of: service, managed-service
| • | — |
stepSeconds | number
| • | — |
GET/deployment/preview-environments
List all preview environments
MCP tool: deployment_preview_environment_list
Parameters
No parameters.
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
POST/deployment/preview-environments
Create a preview environment from an open PR
MCP tool: deployment_preview_environment_create
Parameters
| Name | In | Type | Required | Description |
|---|
baseEnvironmentId | body | string (uuid)
| • | — |
prNumber | body | integer
| • | — |
prBranch | body | string
| — | — |
repoFullName | body | string
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
type | stringone of: persistent, pr-preview
| • | — |
status | stringone of: provisioning, ready, provisioning_failed, deprovisioning, deprovisioning_failed
| • | — |
prBranch | string | null
| • | — |
prNumber | integer | null
| • | — |
createdAt | string
| • | — |
expiresAt | string | null
| • | — |
updatedAt | string
| • | — |
isProduction | boolean
| • | — |
repoFullName | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
baseEnvironmentId | string (uuid) | null
| • | — |
DELETE/deployment/preview-environments/:id
Delete a preview environment immediately
MCP tool: deployment_preview_environment_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
GET/deployment/preview-policies/:baseEnvironmentId
Get preview policy for a base environment (returns defaults if none configured)
MCP tool: deployment_preview_policy_get
Parameters
| Name | In | Type | Required | Description |
|---|
baseEnvironmentId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
enabled | boolean
| • | — |
ttlHours | number
| • | — |
createdAt | string
| • | — |
updatedAt | string
| • | — |
maxPreviews | number
| • | — |
baseEnvironmentId | string (uuid)
| • | — |
PUT/deployment/preview-policies/:baseEnvironmentId
Configure preview policy for a base environment (enabled, maxPreviews, ttlHours)
MCP tool: deployment_preview_policy_set
Parameters
| Name | In | Type | Required | Description |
|---|
baseEnvironmentId | path | string (uuid)
| • | — |
enabled | body | boolean
| — | — |
maxPreviews | body | integer
| — | — |
ttlHours | body | integer
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
enabled | boolean
| • | — |
ttlHours | number
| • | — |
createdAt | string
| • | — |
updatedAt | string
| • | — |
maxPreviews | number
| • | — |
baseEnvironmentId | string (uuid)
| • | — |
GET/deployment/product/suspension
Get the product's billing-suspension state (stage, reason, grace deadline) and whether enforcement is active
MCP tool: deployment_suspension_get
Parameters
No parameters.
Response
Returns object.
| Field | Type | Always | Description |
|---|
stage | string | nullone of: warned, production_grace, stopped, cleared
| • | — |
reason | string | null
| • | — |
changedAt | string | null
| • | — |
graceDeadline | string | null
| • | — |
enforcementEnabled | boolean
| • | — |
GET/deployment/product/variables
List product-scope (global) variables
MCP tool: deployment_variable_list_product
Parameters
No parameters.
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
key | string
| • | — |
scope | stringone of: service, environment, product
| • | — |
value | string | null
| • | — |
isSecret | boolean
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid) | null
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid) | null
| • | — |
DELETE/deployment/product/variables/:key
Delete a product-scope variable by key
MCP tool: deployment_variable_unset_product
Parameters
| Name | In | Type | Required | Description |
|---|
key | path | string
| • | — |
PUT/deployment/product/variables/:key
Create or update a product-scope global variable
MCP tool: deployment_variable_set_product
Parameters
| Name | In | Type | Required | Description |
|---|
key | path | string
| • | — |
value | body | string
| • | — |
isSecret | body | boolean
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
key | string
| • | — |
scope | stringone of: service, environment, product
| • | — |
value | string | null
| • | — |
isSecret | boolean
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid) | null
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid) | null
| • | — |
GET/deployment/resource-presets
List the resource presets a service can pick for resources.limits (XS…2XL, 1:2 vCPU:RAM). A preset sets the CPU and memory limit — the ceiling the service may use and is billed by usage under; any other valid limit is allowed too.
MCP tool: deployment_resource_presets_list
Parameters
No parameters.
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
cpu | string
| • | CPU limit as a Kubernetes quantity, e.g. 500m or 2. |
key | string
| • | Preset name: XS, S, M, L, XL or 2XL. |
memory | string
| • | Memory limit as a Kubernetes quantity, e.g. 1Gi. |
DELETE/deployment/services/:id
Delete a service
MCP tool: deployment_service_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
GET/deployment/services/:id
Get a single service by id. A scheduled service (mode:'scheduled') also reports nextRunAt and lastRun — when it fires next and how its most recent run ended. publicDomain says whether this service holds its public auto-domain; false means it is reachable only through a custom domain or from inside the environment. A git or static source with a GitHub connector also carries sourceConnection.state: 'connected' (the connection is working), 'unavailable' (removed, detached, replaced by a reconnect, or not working — call deployment_vcs_connection_list with repoFullName to see which connections can read the repo, then deployment_service_update with the new connectorId) or 'unknown' (the connection list could not be fetched; the read still succeeds). Reading never contacts GitHub and never changes the source; source.autoDeploy sits next to it. A git source may report source.build.secrets: names only; variable values are never returned. appliedProbes are the probes of the version running now; pendingProbes are what the next deploy applies; probesPendingRedeploy is true when they differ. To apply them now, deploy the service, or roll back to its current Active deployment (same image, fresh render). appliedProbes is null when nothing runs, or with appliedProbesUnknown when they could not be read.
MCP tool: deployment_service_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
mode | string
| — | — |
name | string
| • | — |
slug | string
| • | — |
memory | object
| — | Memory of the running version. Absent for static sites and when it could not be read. |
probes | object
| • | — |
source | object
| • | — |
command | string | null
| — | — |
lastRun | object | null
| — | — |
tracing | string
| — | — |
replicas | integer
| • | — |
schedule | string | null
| — | — |
createdAt | string
| • | — |
dependsOn | string[]
| • | — |
nextRunAt | string | null
| — | — |
resources | object
| — | — |
updatedAt | string
| • | — |
autoDeploy | boolean
| — | — |
sleepState | stringone of: awake, sleeping, waking, stopped, wake_failed
| • | — |
idleMinutes | integer
| • | — |
scaleToZero | boolean
| • | — |
publicDomain | boolean
| — | — |
appliedProbes | object | null
| — | Probes of the version running now: what the serving deployment rendered (the Active one, or the Crashed one while it crash-loops). null when no deployment runs, or when they could not be read (appliedProbesUnknown). A change to probes reaches it only through a deploy. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). |
containerPort | integer
| • | — |
environmentId | string (uuid)
| • | — |
jobTimeoutSec | integer
| — | — |
pendingProbes | object
| — | Probes the next deploy of this service will apply, from its current settings and defaults. Absent for static and scheduled services. |
jobConcurrency | string
| — | — |
buildMachineType | string | null
| — | — |
sourceConnection | object
| — | — |
startupAutomatic | boolean
| — | True when appliedProbes.startup is the automatic startup probe (added for a liveness-only service), not the service's own probes.startup. |
scheduleSuspended | boolean
| — | — |
suspendedByBilling | boolean
| — | — |
lastReplicasRunning | integer
| • | — |
appliedProbesUnknown | boolean
| — | True when a deployment runs but its probes could not be read; appliedProbes is then null. The next deploy records them. |
probesPendingRedeploy | boolean
| — | True when pendingProbes differ from appliedProbes: the running version does not have them yet. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). False when no deployment runs or appliedProbes are unknown. |
scaleToZeroEligibility | object
| — | — |
pendingStartupAutomatic | boolean
| — | True when pendingProbes.startup is the automatic startup probe. |
PATCH/deployment/services/:id
Update service fields. mode is immutable. On a scheduled service (mode:'scheduled') you may change schedule (five-field UTC cron, or null to leave it on demand only), command, jobTimeoutSec, jobConcurrency ('forbid' | 'allow' | 'replace'), and scheduleSuspended, which pauses or resumes the schedule without losing it. publicDomain false removes the auto-domain and its route; true re-creates them under the same hostname. Custom domains are untouched either way. Switching the GitHub connection: send the source with a new connectorId (source.repo.connectorId for a static site; build, spa and markdown you leave out keep their values). The new connection must be working and able to read repoFullName, otherwise the update is refused with 409 source_connection_unavailable and a candidates list (the other connections that can read it; pick one, the platform never picks), or 503 source_connection_check_failed when the check could not finish (try again). A successful switch records service.source.reconnected with reason 'manual'. Editing branch or path with the same connectorId is never checked, even when the connection is unavailable. For a git source only, source.build.secrets selects existing secret variables by name from the effective product → environment → service variable set. Image and static sources cannot use this field. Each deploy re-checks the selection and gives the values to the Docker build as BuildKit secrets: in the Dockerfile use RUN --mount=type=secret,id=<key> and read /run/secrets/<key> (env= is not supported). If you omit build when updating the same git repo, the current selection is preserved. Use build: { secrets: [] } to clear it.
MCP tool: deployment_service_update
Parameters
| Name | In | Type | Required | Description |
|---|
name | body | string
| — | — |
source | body | object
| — | — |
containerPort | body | integer
| — | — |
replicas | body | integer
| — | — |
probes | body | object
| — | — |
resources | body | object
| — | — |
scaleToZero | body | boolean
| — | — |
idleMinutes | body | integer
| — | — |
buildMachineType | body | string | nullone of: E2_MEDIUM, E2_HIGHCPU_8
| — | — |
tracing | body | stringone of: off, node, python
| — | OTel SDK to inject into this service's pods: 'off' (none), 'node' or 'python'. Read when a deploy builds the workload — takes effect on the next deploy, running pods are untouched. |
autoDeploy | body | boolean
| — | Whether a push to this service's repo+branch queues a deploy. Default true. Turning it off suppresses push-triggered deploys only — manual and API-triggered deploys still work. Applies to git and static sources alike; the UI toggle is currently git-only, so a static service is switched through this field. |
publicDomain | body | boolean
| — | Whether this service gets its public auto-domain (`<slug>-<hash>.<suffix>`) and the HTTPRoute that fronts it. Default true. Set false for a service that must not face the internet (minio, pgadmin, a worker): the auto-domain and its route are removed, which also frees a URL-map host rule. A custom domain attached to this service is NOT touched in either direction — it keeps serving. Set true again to re-create the auto-domain under the same hostname. |
schedule | body | string | null
| — | Five-field UTC cron expression (minute hour day-of-month month day-of-week), or null for a scheduled service with no schedule yet. |
scheduleSuspended | body | boolean
| — | Pause or resume a scheduled service without losing its schedule. |
command | body | string | null
| — | Shell command a scheduled run executes (`/bin/sh -c <command>`). Scheduled services only; omit it to run the image entrypoint. `null` clears a command that was set and returns the run to the image entrypoint. |
jobTimeoutSec | body | integer
| — | Wall-clock budget for one run, in seconds (60..86400). Becomes the Job activeDeadlineSeconds — an overrunning run is killed, not left going. |
jobConcurrency | body | stringone of: forbid, allow, replace
| — | What happens when a run is still going at the next tick: 'forbid' (skip the tick), 'allow' (run in parallel) or 'replace' (kill the running one). |
mode | body | string
| — | — |
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
mode | string
| — | — |
name | string
| • | — |
slug | string
| • | — |
memory | object
| — | Memory of the running version. Absent for static sites and when it could not be read. |
probes | object
| • | — |
source | object
| • | — |
command | string | null
| — | — |
lastRun | object | null
| — | — |
tracing | string
| — | — |
replicas | integer
| • | — |
schedule | string | null
| — | — |
createdAt | string
| • | — |
dependsOn | string[]
| • | — |
nextRunAt | string | null
| — | — |
resources | object
| — | — |
updatedAt | string
| • | — |
autoDeploy | boolean
| — | — |
sleepState | stringone of: awake, sleeping, waking, stopped, wake_failed
| • | — |
idleMinutes | integer
| • | — |
scaleToZero | boolean
| • | — |
publicDomain | boolean
| — | — |
appliedProbes | object | null
| — | Probes of the version running now: what the serving deployment rendered (the Active one, or the Crashed one while it crash-loops). null when no deployment runs, or when they could not be read (appliedProbesUnknown). A change to probes reaches it only through a deploy. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). |
containerPort | integer
| • | — |
environmentId | string (uuid)
| • | — |
jobTimeoutSec | integer
| — | — |
pendingProbes | object
| — | Probes the next deploy of this service will apply, from its current settings and defaults. Absent for static and scheduled services. |
jobConcurrency | string
| — | — |
buildMachineType | string | null
| — | — |
sourceConnection | object
| — | — |
startupAutomatic | boolean
| — | True when appliedProbes.startup is the automatic startup probe (added for a liveness-only service), not the service's own probes.startup. |
scheduleSuspended | boolean
| — | — |
suspendedByBilling | boolean
| — | — |
lastReplicasRunning | integer
| • | — |
appliedProbesUnknown | boolean
| — | True when a deployment runs but its probes could not be read; appliedProbes is then null. The next deploy records them. |
probesPendingRedeploy | boolean
| — | True when pendingProbes differ from appliedProbes: the running version does not have them yet. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). False when no deployment runs or appliedProbes are unknown. |
scaleToZeroEligibility | object
| — | — |
pendingStartupAutomatic | boolean
| — | True when pendingProbes.startup is the automatic startup probe. |
POST/deployment/services/:id/restart
Trigger a rolling restart of a service without changing the deployed image
MCP tool: deployment_service_restart
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
POST/deployment/services/:id/scale
Scale a service to N replicas without redeploy (min 0 = stop)
MCP tool: deployment_service_scale
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
replicas | body | integer
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
mode | string
| — | — |
name | string
| • | — |
slug | string
| • | — |
memory | object
| — | Memory of the running version. Absent for static sites and when it could not be read. |
probes | object
| • | — |
source | object
| • | — |
command | string | null
| — | — |
lastRun | object | null
| — | — |
tracing | string
| — | — |
replicas | integer
| • | — |
schedule | string | null
| — | — |
createdAt | string
| • | — |
dependsOn | string[]
| • | — |
nextRunAt | string | null
| — | — |
resources | object
| — | — |
updatedAt | string
| • | — |
autoDeploy | boolean
| — | — |
sleepState | stringone of: awake, sleeping, waking, stopped, wake_failed
| • | — |
idleMinutes | integer
| • | — |
scaleToZero | boolean
| • | — |
publicDomain | boolean
| — | — |
appliedProbes | object | null
| — | Probes of the version running now: what the serving deployment rendered (the Active one, or the Crashed one while it crash-loops). null when no deployment runs, or when they could not be read (appliedProbesUnknown). A change to probes reaches it only through a deploy. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). |
containerPort | integer
| • | — |
environmentId | string (uuid)
| • | — |
jobTimeoutSec | integer
| — | — |
pendingProbes | object
| — | Probes the next deploy of this service will apply, from its current settings and defaults. Absent for static and scheduled services. |
jobConcurrency | string
| — | — |
buildMachineType | string | null
| — | — |
sourceConnection | object
| — | — |
startupAutomatic | boolean
| — | True when appliedProbes.startup is the automatic startup probe (added for a liveness-only service), not the service's own probes.startup. |
scheduleSuspended | boolean
| — | — |
suspendedByBilling | boolean
| — | — |
lastReplicasRunning | integer
| • | — |
appliedProbesUnknown | boolean
| — | True when a deployment runs but its probes could not be read; appliedProbes is then null. The next deploy records them. |
probesPendingRedeploy | boolean
| — | True when pendingProbes differ from appliedProbes: the running version does not have them yet. To apply pendingProbes now, deploy the service, or roll back to its current Active deployment (same image, fresh render). False when no deployment runs or appliedProbes are unknown. |
scaleToZeroEligibility | object
| — | — |
pendingStartupAutomatic | boolean
| — | True when pendingProbes.startup is the automatic startup probe. |
POST/deployment/services/:id/wake
Wake a sleeping (scale-to-zero) service
MCP tool: deployment_service_wake
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
GET/deployment/services/:serviceId/builds
List builds for a service, newest first
MCP tool: deployment_build_list
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed
| • | — |
builtAt | string | null
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
lastErrorMessage | string | null
| • | — |
POST/deployment/services/:serviceId/cancel
Cancel a non-terminal deployment, releasing the in-progress lock so the service can deploy again
MCP tool: deployment_deployment_cancel
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
deploymentId | body | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed, Sleeping, Stopped, WakeFailed
| • | — |
builtAt | string | null
| • | — |
trigger | string | nullone of: manual, push, preview, fork, watchdog, rollback, static_upload
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
updatedAt | string
| • | — |
deployedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
configSnapshot | object
| • | — |
lastErrorMessage | string | null
| • | — |
rolledBackFromDeploymentId | string (uuid) | null
| • | — |
GET/deployment/services/:serviceId/deployments
List deployments for a service (newest first)
MCP tool: deployment_deployment_list
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed, Sleeping, Stopped, WakeFailed
| • | — |
builtAt | string | null
| • | — |
trigger | string | nullone of: manual, push, preview, fork, watchdog, rollback, static_upload
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
updatedAt | string
| • | — |
deployedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
configSnapshot | object
| • | — |
lastErrorMessage | string | null
| • | — |
rolledBackFromDeploymentId | string (uuid) | null
| • | — |
GET/deployment/services/:serviceId/deployments/:deploymentId/build-logs
Snapshot build logs for a deployment (Cloud Logging proxy)
MCP tool: deployment_build_logs
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
deploymentId | path | string (uuid)
| • | — |
tail | query | integer
| — | — |
since | query | string (date-time)
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
lines | object[]
| • | — |
cursor | string | null
| • | — |
complete | boolean
| • | — |
GET/deployment/services/:serviceId/domains
List domains routed to a service (backward-compat)
MCP tool: deployment_domain_list_by_service
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
kind | stringone of: auto, custom
| • | — |
aliases | string[]
| • | — |
hostname | string
| • | — |
createdAt | string
| • | — |
tlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
updatedAt | string
| • | — |
lastProbeAt | string | null
| • | — |
redirectWww | boolean
| • | — |
wwwTlsStatus | stringone of: none, pending, issuing, active, failed
| • | — |
environmentId | string (uuid)
| • | — |
routingStatus | stringone of: provisioning, propagating, active, failed
| • | — |
lastProbeError | string | null
| • | — |
redirectStatus | number
| • | — |
dnsInstructions | object | null
| • | — |
routingRecordType | stringone of: A, CNAME
| • | — |
verificationToken | string | null
| • | — |
advertisedHostname | string
| • | — |
redirectToDomainId | string | null
| • | — |
verificationStatus | stringone of: pending_dns, verified, dns_failed
| • | — |
lastVerificationError | object | null
| • | — |
lastVerificationCheckAt | string | null
| • | — |
tlsCertificateExpiresAt | string | null
| • | — |
GET/deployment/services/:serviceId/events
List deploy events for a service, newest first
MCP tool: deployment_events_list_by_service
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
type | query | stringone of: deployment.queued, deployment.build.started, deployment.build.succeeded, deployment.build.failed, deployment.deploying, deployment.variable.ignored, deployment.healthcheck.passed, deployment.healthcheck.failed, deployment.healthy, deployment.failed, deployment.replaced, deployment.rolled_back, deployment.sourcemaps.uploaded, deployment.sourcemaps.upload-failed, deployment.requeue-failed, deployment.release.started, deployment.release.log, deployment.release.succeeded, deployment.release.failed, replica.restarted, service.scaled, service.restarted, service.restart-failed, service.startup-boost, service.memory-request-changed, domain.verified, domain.tls.issued, domain.tls.failed, domain.www-tls.issued, domain.www-tls.failed, domain.routing.active, domain.routing.failed, domain.routing.reapplied, domain.removed, domain.governance.mirror-failed, service.slept, service.woke, service.wake_failed, service.sleep-enabled, service.sleep-disabled, service.sleep-enable-failed, service.public_domain.changed, service.source.reconnected, cloud-sql.instance.stopped, cloud-sql.instance.started, cloud-sql.instance.stop-failed, cloud-sql.instance.start-failed, suspension.workload-stopped, suspension.workload-restored, managed-service.restarted, managed-service.port-leak-healed, managed-service.backup-reset, managed-service.resize-failed
| — | — |
since | query | string (date-time)
| — | — |
until | query | string (date-time)
| — | — |
limit | query | integer
| — | — |
deploymentId | query | string (uuid)
| — | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
type | stringone of: deployment.queued, deployment.build.started, deployment.build.succeeded, deployment.build.failed, deployment.deploying, deployment.variable.ignored, deployment.healthcheck.passed, deployment.healthcheck.failed, deployment.healthy, deployment.failed, deployment.replaced, deployment.rolled_back, deployment.sourcemaps.uploaded, deployment.sourcemaps.upload-failed, deployment.requeue-failed, deployment.release.started, deployment.release.log, deployment.release.succeeded, deployment.release.failed, replica.restarted, service.scaled, service.restarted, service.restart-failed, service.startup-boost, service.memory-request-changed, domain.verified, domain.tls.issued, domain.tls.failed, domain.www-tls.issued, domain.www-tls.failed, domain.routing.active, domain.routing.failed, domain.routing.reapplied, domain.removed, domain.governance.mirror-failed, service.slept, service.woke, service.wake_failed, service.sleep-enabled, service.sleep-disabled, service.sleep-enable-failed, service.public_domain.changed, service.source.reconnected, cloud-sql.instance.stopped, cloud-sql.instance.started, cloud-sql.instance.stop-failed, cloud-sql.instance.start-failed, suspension.workload-stopped, suspension.workload-restored, managed-service.restarted, managed-service.port-leak-healed, managed-service.backup-reset, managed-service.resize-failed
| • | — |
payload | object
| • | — |
domainId | string | null
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
serviceId | string | null
| • | — |
deploymentId | string | null
| • | — |
environmentId | string | null
| • | — |
POST/deployment/services/:serviceId/exec
Run a command against a service. mode:"exec" (default) execs non-interactively into the first running pod (debugging); mode:"job" runs a one-off Job of the service's current image with its env (migrations). Returns stdout/stderr + exit code as text. command is run via /bin/sh -c.
MCP tool: deployment_service_exec
Parameters
| Name | In | Type | Required | Description |
|---|
command | body | string
| • | — |
mode | body | stringone of: exec, job
| — | — |
timeoutSec | body | integer
| — | — |
serviceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
mode | stringone of: exec, job
| • | — |
output | string
| • | — |
stderr | string
| • | — |
stdout | string
| • | — |
target | object
| • | — |
exitCode | integer
| • | — |
timedOut | boolean
| • | — |
truncated | boolean
| • | — |
GET/deployment/services/:serviceId/logs
Snapshot the last N runtime log lines for a service
MCP tool: deployment_service_logs
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
tail | query | integer
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
lines | string[]
| • | — |
sleepState | stringone of: awake, sleeping, waking, stopped, wake_failed
| — | — |
POST/deployment/services/:serviceId/redeploy
Roll out a new deployment for a service from its current source and variables (runs asynchronously; poll the deployment for status). A static site published from an uploaded archive cannot be redeployed: upload again with deployment_static_upload_create, then deployment_static_deploy
MCP tool: deployment_service_redeploy
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed, Sleeping, Stopped, WakeFailed
| • | — |
builtAt | string | null
| • | — |
trigger | string | nullone of: manual, push, preview, fork, watchdog, rollback, static_upload
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
updatedAt | string
| • | — |
deployedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
configSnapshot | object
| • | — |
lastErrorMessage | string | null
| • | — |
rolledBackFromDeploymentId | string (uuid) | null
| • | — |
POST/deployment/services/:serviceId/rollback
Roll back a service to a previous deployment by re-deploying its imageRef
MCP tool: deployment_service_rollback
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
deploymentId | body | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed, Sleeping, Stopped, WakeFailed
| • | — |
builtAt | string | null
| • | — |
trigger | string | nullone of: manual, push, preview, fork, watchdog, rollback, static_upload
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
updatedAt | string
| • | — |
deployedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
configSnapshot | object
| • | — |
lastErrorMessage | string | null
| • | — |
rolledBackFromDeploymentId | string (uuid) | null
| • | — |
GET/deployment/services/:serviceId/runs
List the runs of a scheduled service (job), newest first. Returns a page of runs plus nextCursor; pass that back as cursor for the next page. A run with status "Skipped" is a tick that never fired — concurrency held it back — and has no logs or exit code.
MCP tool: deployment_job_runs_list
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
limit | query | integer
| — | — |
cursor | query | string
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
items | object[]
| • | — |
nextCursor | string | null
| • | — |
POST/deployment/services/:serviceId/runs
Run a scheduled service (job) now, regardless of its schedule or concurrency; returns the run
MCP tool: deployment_job_run
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Running, Succeeded, Failed, TimedOut, Skipped, Cancelled
| • | — |
trigger | stringone of: schedule, manual
| • | — |
exitCode | integer | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
k8sJobName | string
| • | — |
cancelledBy | string | null
| • | — |
imageDigest | string | null
| • | — |
triggeredBy | string | null
| • | — |
deploymentId | string (uuid) | null
| • | — |
environmentId | string (uuid)
| • | — |
failureReason | string | null
| • | — |
POST/deployment/services/:serviceId/runs/:runId/cancel
Stop one running job run by deleting its Job and pods. The service, CronJob and schedule stay unchanged. Returns the Cancelled run.
MCP tool: deployment_job_run_cancel
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
runId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Running, Succeeded, Failed, TimedOut, Skipped, Cancelled
| • | — |
trigger | stringone of: schedule, manual
| • | — |
exitCode | integer | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
k8sJobName | string
| • | — |
cancelledBy | string | null
| • | — |
imageDigest | string | null
| • | — |
triggeredBy | string | null
| • | — |
deploymentId | string (uuid) | null
| • | — |
environmentId | string (uuid)
| • | — |
failureReason | string | null
| • | — |
GET/deployment/services/:serviceId/runs/:runId/logs
Read the output of one job run: the stored tail (up to 256 KiB) once the run has finished, or a live tail while it is still running. `live` says which one you got — a caller that polls should stop once it turns false.
MCP tool: deployment_job_run_logs
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
runId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
live | boolean
| • | — |
logs | string
| • | — |
status | stringone of: Running, Succeeded, Failed, TimedOut, Skipped, Cancelled
| • | — |
GET/deployment/services/:serviceId/ssh-command
Get the ssh command string to connect to a service
MCP tool: deployment_ssh_command
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
host | string
| • | — |
command | string
| • | — |
username | string
| • | — |
POST/deployment/services/:serviceId/static/deploy
Deploy an uploaded static-site archive (call after the PUT to the uploadUrl from deployment_static_upload_create succeeded). Runs asynchronously: returns the deployment, then poll deployment_deployment_get with its id. A deployId can be deployed once; a second call is a 409. Publish a pre-built static site (no git repo): 1) deployment_service_create with source: { type: 'static' } (no repo) — once per site; 2) deployment_static_upload_create with the serviceId and format ('tgz' default, or 'zip') — returns uploadUrl, deployId, contentType, expiresAt; 3) within 15 min, curl -X PUT -H 'Content-Type: <contentType>' --upload-file <file> '<uploadUrl>' (the header must be exactly contentType or the PUT is refused); 4) deployment_static_deploy with serviceId and deployId; 5) poll deployment_deployment_get with the deployId until status is Active (or Failed — read lastErrorMessage). The archive root is published as-is; if it has no index.html and holds only one directory (e.g. dist/, macOS __MACOSX/ and .DS_Store ignored), that directory is published instead. Each upload deploys once; for a new version start again from step 2.
MCP tool: deployment_static_deploy
Parameters
| Name | In | Type | Required | Description |
|---|
deployId | body | string (uuid)
| • | — |
serviceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
status | stringone of: Initializing, Building, Deploying, Active, Replaced, Crashed, Completed, Failed, Removed, Sleeping, Stopped, WakeFailed
| • | — |
builtAt | string | null
| • | — |
trigger | string | nullone of: manual, push, preview, fork, watchdog, rollback, static_upload
| • | — |
imageRef | string | null
| • | — |
commitSha | string | null
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid)
| • | — |
startedAt | string | null
| • | — |
updatedAt | string
| • | — |
deployedAt | string | null
| • | — |
finishedAt | string | null
| • | — |
cloudBuildId | string | null
| • | — |
configSnapshot | object
| • | — |
lastErrorMessage | string | null
| • | — |
rolledBackFromDeploymentId | string (uuid) | null
| • | — |
POST/deployment/services/:serviceId/static/uploads
Start a static-site upload: mint a signed PUT URL (valid 15 min) for a site archive and reserve the deployment it will become. Only for a static service. If the upload fails or you abandon it, call deployment_deployment_cancel with this deployId — the service cannot deploy again until you do. Publish a pre-built static site (no git repo): 1) deployment_service_create with source: { type: 'static' } (no repo) — once per site; 2) deployment_static_upload_create with the serviceId and format ('tgz' default, or 'zip') — returns uploadUrl, deployId, contentType, expiresAt; 3) within 15 min, curl -X PUT -H 'Content-Type: <contentType>' --upload-file <file> '<uploadUrl>' (the header must be exactly contentType or the PUT is refused); 4) deployment_static_deploy with serviceId and deployId; 5) poll deployment_deployment_get with the deployId until status is Active (or Failed — read lastErrorMessage). The archive root is published as-is; if it has no index.html and holds only one directory (e.g. dist/, macOS __MACOSX/ and .DS_Store ignored), that directory is published instead. Each upload deploys once; for a new version start again from step 2.
MCP tool: deployment_static_upload_create
Parameters
| Name | In | Type | Required | Description |
|---|
format | body | stringone of: tgz, zip
| — | Archive format of the file you will PUT: 'tgz' (gzipped tarball, the default) or 'zip'. |
serviceId | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
object | string
| • | gs:// URL the archive lands at. |
deployId | string (uuid)
| • | Pass to deployment_static_deploy once the PUT succeeded. |
expiresAt | string (date-time)
| • | When uploadUrl stops accepting the PUT (ISO 8601). |
uploadUrl | string (uri)
| • | Signed URL; PUT the archive here. |
contentType | stringone of: application/gzip, application/zip
| • | The Content-Type header the PUT must send; the URL is signed for exactly this value. |
GET/deployment/services/:serviceId/variables
List variables for a service (secret values are returned as null)
MCP tool: deployment_variable_list
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
key | string
| • | — |
scope | stringone of: service, environment, product
| • | — |
value | string | null
| • | — |
isSecret | boolean
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid) | null
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid) | null
| • | — |
DELETE/deployment/services/:serviceId/variables/:key
Delete a variable from a service by key
MCP tool: deployment_variable_unset
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
key | path | string
| • | — |
PUT/deployment/services/:serviceId/variables/:key
Create or update a variable on a service. Pass `isSecret: true` to encrypt the value via KMS — this transition is irreversible (a row that is already secret cannot be downgraded to plain).
MCP tool: deployment_variable_set
Parameters
| Name | In | Type | Required | Description |
|---|
serviceId | path | string (uuid)
| • | — |
key | path | string
| • | — |
value | body | string
| • | — |
isSecret | body | boolean
| — | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
key | string
| • | — |
scope | stringone of: service, environment, product
| • | — |
value | string | null
| • | — |
isSecret | boolean
| • | — |
createdAt | string
| • | — |
serviceId | string (uuid) | null
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid) | null
| • | — |
GET/deployment/ssh-bastion
Get the SSH bastion host this workspace connects to
MCP tool: deployment_ssh_bastion_get
Parameters
No parameters.
Response
Returns object.
| Field | Type | Always | Description |
|---|
host | string
| • | — |
GET/deployment/ssh-keys
List SSH public keys registered in the current workspace
MCP tool: deployment_ssh_key_list
Parameters
No parameters.
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
id | string
| • | — |
algo | string
| • | — |
name | string
| • | — |
scope | stringone of: workspace, personal
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
lastUsedAt | string | null
| • | — |
ownerIdentityId | string
| • | — |
fingerprintSha256 | string
| • | — |
POST/deployment/ssh-keys
Register an SSH public key for the current workspace
MCP tool: deployment_ssh_key_register
Parameters
| Name | In | Type | Required | Description |
|---|
name | body | string
| • | Human label for the key, e.g. "my-laptop" |
publicKey | body | string
| • | OpenSSH public key line (ssh-ed25519 / ssh-rsa ...) |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string
| • | — |
algo | string
| • | — |
name | string
| • | — |
scope | stringone of: workspace, personal
| • | — |
createdAt | string
| • | — |
productId | string
| • | — |
lastUsedAt | string | null
| • | — |
ownerIdentityId | string
| • | — |
fingerprintSha256 | string
| • | — |
DELETE/deployment/ssh-keys/:id
Delete a registered SSH public key
MCP tool: deployment_ssh_key_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
deleted | boolean
| • | — |
GET/deployment/vcs/branches
List branches for a repository on a GitHub connection
MCP tool: deployment_vcs_branch_list
Parameters
| Name | In | Type | Required | Description |
|---|
connectorId | query | string (uuid)
| • | — |
repoFullName | query | string
| • | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
name | string
| • | — |
commitSha | string
| • | — |
GET/deployment/vcs/connections
List the GitHub connections available to the current product: their kind (provider github = GitHub App, github-token = GitHub key), account, status and needsReauth. A connection is working when status is active and needsReauth is false. Pass repoFullName ("owner/repo") to also learn, per connection, whether it can read that repo (repoAccess) — use it to choose the connection for deployment_service_update after a deploy failed with source_connection_unavailable. repoAccess is false for a connection that is not working or cannot read the repo, and absent when the check failed transiently; without repoFullName it is never set.
MCP tool: deployment_vcs_connection_list
Parameters
| Name | In | Type | Required | Description |
|---|
repoFullName | query | string
| — | Optional "owner/repo". When given, each connection also carries repoAccess: true when it can read the repo; false when it cannot, or is not working (status not active, or awaiting re-auth); absent when the check failed transiently (try again). |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
status | string
| • | — |
provider | stringone of: github, github-token
| • | — |
autoDeploy | object
| • | — |
repoAccess | boolean
| — | — |
connectorId | string
| • | — |
needsReauth | boolean
| • | — |
accountLogin | string
| • | — |
installationId | string | null
| • | — |
GET/deployment/vcs/repos
List repositories accessible to a GitHub connection. Filters by search when supplied.
MCP tool: deployment_vcs_repo_list
Parameters
| Name | In | Type | Required | Description |
|---|
connectorId | query | string (uuid)
| • | — |
page | query | integer
| — | — |
search | query | string
| — | — |
Response
Returns object[].
| Item field | Type | Always | Description |
|---|
private | boolean
| — | — |
fullName | string
| • | — |
defaultBranch | string
| — | — |
DELETE/deployment/volumes/:id
Permanently delete a detached volume
MCP tool: deployment_volume_delete
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
GET/deployment/volumes/:id
Get a volume
MCP tool: deployment_volume_get
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
sizeGb | integer
| • | — |
status | stringone of: provisioning, ready, detached, failed
| • | — |
createdAt | string
| • | — |
mountPath | string
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid)
| • | — |
lastErrorMessage | string | null
| • | — |
attachedServiceId | string (uuid) | null
| • | — |
POST/deployment/volumes/:id/detach
Detach a volume from its service (data preserved)
MCP tool: deployment_volume_detach
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
sizeGb | integer
| • | — |
status | stringone of: provisioning, ready, detached, failed
| • | — |
createdAt | string
| • | — |
mountPath | string
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid)
| • | — |
lastErrorMessage | string | null
| • | — |
attachedServiceId | string (uuid) | null
| • | — |
POST/deployment/volumes/:id/resize
Increase a volume size
MCP tool: deployment_volume_resize
Parameters
| Name | In | Type | Required | Description |
|---|
id | path | string (uuid)
| • | — |
sizeGb | body | integer
| • | — |
Response
Returns object.
| Field | Type | Always | Description |
|---|
id | string (uuid)
| • | — |
name | string
| • | — |
slug | string
| • | — |
sizeGb | integer
| • | — |
status | stringone of: provisioning, ready, detached, failed
| • | — |
createdAt | string
| • | — |
mountPath | string
| • | — |
updatedAt | string
| • | — |
environmentId | string (uuid)
| • | — |
lastErrorMessage | string | null
| • | — |
attachedServiceId | string (uuid) | null
| • | — |
Was this page helpful?Thanks for your feedback!