Deployments
Deploying appends a row; an environment’s current release is its latest one. There is no rollback endpoint, because rolling back is deploying the release before the current one, which cow rollback works out from the last two rows. The target environment comes from the environment header.
GET /v1/deployments
Section titled “GET /v1/deployments”List deployments, newest first
Auth: Clerk session token, or an org deploy key.
Query parameters
{ "cursor": "string", "limit": 50, "environment": "development", "release": "string"}| Field | Type | Required | Constraints |
|---|---|---|---|
cursor |
string | no | |
limit |
integer | no | default 50; 1 ≤ x ≤ 100 |
environment |
“development” | “production” | no | |
release |
string | no | length 1–200 |
Response 200
{ "data": [ { "id": "string", "orgId": "string", "environment": "development", "releaseId": "string", "deployedBy": "string", "createdAt": "2026-01-15T09:30:00.000Z", "warnings": [ "string" ], "releaseSeq": 42 } ], "meta": { "requestId": "string", "nextCursor": "string", "hasMore": true }}| Field | Type | Required | Constraints |
|---|---|---|---|
data |
object[] | yes | |
data[] |
object | yes | |
data[].id |
string | yes | |
data[].orgId |
string | yes | |
data[].environment |
“development” | “production” | yes | |
data[].releaseId |
string | yes | |
data[].deployedBy |
string | yes | |
data[].createdAt |
string (date-time) | yes | |
data[].warnings |
string[] | yes | |
data[].releaseSeq |
integer | yes | -9007199254740991 ≤ x ≤ ∞ |
meta |
object | no | |
meta.requestId |
string | no | |
meta.nextCursor |
string | null | no | |
meta.hasMore |
boolean | no |
Errors follow the shared envelope and code table.
POST /v1/deployments
Section titled “POST /v1/deployments”Deploy a release to the selected environment
Auth: Clerk session token, or an org deploy key.
Request body
{ "data": { "releaseId": "string" }}| Field | Type | Required | Constraints |
|---|---|---|---|
data |
object | yes | |
data.releaseId |
string | yes | length 1–∞ |
Response 201
{ "data": { "id": "string", "orgId": "string", "environment": "development", "releaseId": "string", "deployedBy": "string", "createdAt": "2026-01-15T09:30:00.000Z", "warnings": [ "string" ], "releaseSeq": 42 }, "meta": { "requestId": "string", "nextCursor": "string", "hasMore": true }}| Field | Type | Required | Constraints |
|---|---|---|---|
data |
object | yes | |
data.id |
string | yes | |
data.orgId |
string | yes | |
data.environment |
“development” | “production” | yes | |
data.releaseId |
string | yes | |
data.deployedBy |
string | yes | |
data.createdAt |
string (date-time) | yes | |
data.warnings |
string[] | yes | |
data.releaseSeq |
integer | yes | -9007199254740991 ≤ x ≤ ∞ |
meta |
object | no | |
meta.requestId |
string | no | |
meta.nextCursor |
string | null | no | |
meta.hasMore |
boolean | no |
Errors follow the shared envelope and code table.