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.
Authorization
Body
application/jsonIdentifies a resource by either its unique ID or its slug.
Accepts a prefixed ID (such as 'proj_' or 'app_') or a slug.
Length: 3–255Pattern: ^[a-zA-Z0-9_-]+$
Identifies a resource by either its unique ID or its slug.
Accepts a prefixed ID (such as 'proj_' or 'app_') or a slug.
Length: 3–255Pattern: ^[a-zA-Z0-9_-]+$
Identifies a resource by either its unique ID or its slug.
Accepts a prefixed ID (such as 'proj_' or 'app_') or a slug.
Length: 3–255Pattern: ^[a-zA-Z0-9_-]+$
Restrict results to deployments in any of the given lifecycle statuses.
Omit to return deployments in every status.
Items: max 13
Maximum number of deployments to return per request.
Balance between response size and number of pagination calls needed.
Default: 100
Range: 1–100
Pagination cursor from a previous response to fetch the next page.
Use when hasMore: true in the previous response.
Responses
hasMore: true.requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Items: max 100
Show child attributesHide child attributes
Current lifecycle status of the deployment. Poll until it reaches a
terminal state: ready (serving), failed, skipped, superseded, stopped,
or cancelled.
pendingstartingbuildingdeployingnetworkfinalizingreadyfailedskippedawaiting_approvalstoppedsupersededcancelledTrue when this is the production deployment currently serving traffic, i.e.
on api.acme.com. Only production deployments can be current, and at most one
deployment is current. Rollbacks and promotions change which deployment is
current and serves requests to api.acme.com.
Show child attributesHide child attributes
Lifecycle operations you are allowed to call on this deployment right now.
Empty when none apply (e.g. while building or in a terminal state).
Regions this deployment is configured to run in. Empty while the deployment
has no scheduled regions yet.
Show child attributesHide child attributes
The reason a deployment failed. unknown means Unkey could not classify the
failure; see message for details.
no_schedulable_regionsinvalid_runtime_settingscpu_quota_exceededmemory_quota_exceededstorage_quota_exceededbuild_failedunknownbuilding, deploying, starting). Human-readable description of why the deployment failed. For programmatic
handling, use code.
Show child attributesHide child attributes
SIGTERMSIGINTSIGQUITSIGKILLShow child attributesHide child attributes
Length: 1–512Pattern: ^(/[\w\-]+)+(\.[\w]+)?$
Range: 1–3600
Range: 1–100
Range: 0–3600
Range: 0–9223372036854776000
Unix timestamp in milliseconds when the deployment was last updated.
Omitted if the deployment has never been updated.
Range: 0–9223372036854776000
Show child attributesHide child attributes
Opaque pagination token for retrieving the next page of results.
Include this exact value in the cursor field of subsequent requests.
Cursors are temporary and may expire after extended periods.
Length: 1–1024
Indicates whether additional results exist beyond this page.
When true, use the cursor to fetch the next page.
When false, you have reached the end of the result set.
requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).Show child attributesHide child attributes
JSON path indicating exactly where in the request the error occurred. This helps pinpoint the problematic field or parameter. Examples include:
- 'body.name' (field in request body)
- 'body.items[3].tags' (nested array element)
- 'path.apiId' (path parameter)
- 'query.limit' (query parameter)
Use this location to identify exactly which part of your request needs correction.
requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).