deployments
List deployments
Retrieve a paginated list of deployments within a workspace, newest first.
Filter by project, app, environment, and lifecycle status. All filters are optional; with none set, every deployment in the workspace is returned. Filters nest: app requires project, and environment requires both project and app. Results are paginated; when hasMore is true, pass the returned cursor to fetch the next page.
Required Permissions
Your root key must have the environment.*.read_deployment permission. Listing spans environments, so a grant on a single environment is not sufficient.
post/v2/deployments.listDeployments
Request body
Example request
{
"project": "proj_1234abcd",
"app": "proj_1234abcd",
"environment": "proj_1234abcd",
"status": [
"ready",
"failed"
]
}Response
Successfully retrieved a paginated list of deployments. Use the pagination cursor for additional results when hasMore: true.
Example response
{
"meta": {
"requestId": "req_123"
},
"data": [
{
"id": "d_1234abcd",
"status": "ready",
"isCurrent": true,
"environment": "production",
"app": "payments-api",
"project": "acme",
"git": {
"commitSha": "9f2c1a7d3b",
"branch": "main"
},
"docker": {
"image": "ghcr.io/acme/api:v1.2.3"
},
"availableActions": [
"stop"
],
"regions": [
"us-east-1",
"eu-west-1"
],
"error": {
"code": "no_schedulable_regions",
"step": "deploying",
"message": "No schedulable regions configured. Please configure at least one schedulable region before deploying."
},
"domains": [
"kebap-app.unkey.app"
],
"runtime": {
"vCpus": 0.25,
"memoryMib": 256,
"port": 8080,
"command": [
"node",
"server.js"
],
"shutdownSignal": "SIGTERM",
"upstreamProtocol": "http1",
"healthcheck": {
"method": "GET",
"path": "/healthz",
"intervalSeconds": 10,
"timeoutSeconds": 2,
"failureThreshold": 3,
"initialDelaySeconds": 5
}
},
"createdAt": 1704067200000,
"updatedAt": 1704153600000
}
],
"pagination": {
"cursor": "eyJrZXkiOiJrZXlfMTIzNCIsInRzIjoxNjk5Mzc4ODAwfQ==",
"hasMore": true
}
}