Documentation menu

Project Environment Webhooks

9 operations.

List environment webhook subscriptions

GET /api/v1/projects/{projectId}/environments/{environmentId}/webhooks

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to List environment webhook subscriptions.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to List environment webhook subscriptions.

query

NameTypeRequiredDescription
cursorstringoptionalOpaque cursor returned by the previous page; omit it to read the first page. Applies to List environment webhook subscriptions.
limitintegeroptionalSets the maximum number of resources returned in this page. Applies to List environment webhook subscriptions.

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required); pagination: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Create an environment webhook subscription

POST /api/v1/projects/{projectId}/environments/{environmentId}/webhooks

Creates a live subscription. A dedicated installation permits only installation-configured private HTTPS destinations when event delivery is enabled. Other destinations return 409 with details.conflictReason outbound_webhooks_unsupported and create nothing.

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Create an environment webhook subscription.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Create an environment webhook subscription.

Request body

Required — Request body for: Create an environment webhook subscription.

application/json

NameTypeRequiredDescription
endpointUrlstringrequired
eventTypesarray<"operation.approval.status_changed" | "operation.invocation.status_changed" | "deployment.queued" | "deployment.validating" | "deployment.provisioning" | "deployment.materializing" | "deployment.ready" | "deployment.failed" | "deployment.canceled" | "activation.changed" | "run.created" | "run.started" | "run.completed" | "run.failed" | "run.canceled" | "run.expired" | "system_agent.published" | "system_agent.policy_changed" | "domain.entity.created" | "domain.entity.updated" | "domain.entity.transitioned" | "domain.entity.deleted">required

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Get an environment webhook subscription

GET /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Get an environment webhook subscription.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Get an environment webhook subscription.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to Get an environment webhook subscription.

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Update an environment webhook subscription

PATCH /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}

Setting enabled to true returns the subscription to live delivery. In a dedicated installation, enabling or editing a live subscription requires an installation-configured private HTTPS destination and enabled event delivery; otherwise the update returns 409 with details.conflictReason outbound_webhooks_unsupported and changes nothing. Pausing and editing a paused subscription stay available.

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Update an environment webhook subscription.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Update an environment webhook subscription.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to Update an environment webhook subscription.

Request body

Required — Request body for: Update an environment webhook subscription.

application/json

NameTypeRequiredDescription
endpointUrlstringoptional
eventTypesarray<"operation.approval.status_changed" | "operation.invocation.status_changed" | "deployment.queued" | "deployment.validating" | "deployment.provisioning" | "deployment.materializing" | "deployment.ready" | "deployment.failed" | "deployment.canceled" | "activation.changed" | "run.created" | "run.started" | "run.completed" | "run.failed" | "run.canceled" | "run.expired" | "system_agent.published" | "system_agent.policy_changed" | "domain.entity.created" | "domain.entity.updated" | "domain.entity.transitioned" | "domain.entity.deleted">optional
enabledbooleanoptional

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Delete an environment webhook subscription

DELETE /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Delete an environment webhook subscription.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Delete an environment webhook subscription.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to Delete an environment webhook subscription.

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

List environment webhook deliveries

GET /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}/deliveries

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to List environment webhook deliveries.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to List environment webhook deliveries.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to List environment webhook deliveries.

query

NameTypeRequiredDescription
cursorstringoptionalOpaque cursor returned by the previous page; omit it to read the first page. Applies to List environment webhook deliveries.
limitintegeroptionalSets the maximum number of resources returned in this page. Applies to List environment webhook deliveries.

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required); pagination: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Replay an environment webhook delivery

POST /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}/deliveries/{deliveryId}/replays

Creates a new durable delivery for an existing, unexpired delivery using a required printable ASCII Idempotency-Key (1–64 characters). The replay is scoped to this Organization, Project, Environment, and webhook; a completed matching key returns its original result, while a mismatched key returns 409 and missing, foreign, or expired deliveries return 404. Signing secrets are never exposed.

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Replay an environment webhook delivery.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Replay an environment webhook delivery.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to Replay an environment webhook delivery.
deliveryIdstringrequiredIdentifies the webhook delivery being addressed. Applies to Replay an environment webhook delivery.

header

NameTypeRequiredDescription
Idempotency-Keystringrequired

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Retry a dead environment webhook delivery

POST /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}/deliveries/{deliveryId}/retry

Resets a dead-letter delivery to pending with a fresh attempt count of zero. Only dead-letter deliveries are eligible; pending, in-flight, retrying, and delivered deliveries return 409, while a missing or foreign delivery returns 404. No Idempotency-Key is required.

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Retry a dead environment webhook delivery.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Retry a dead environment webhook delivery.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to Retry a dead environment webhook delivery.
deliveryIdstringrequiredIdentifies the webhook delivery being addressed. Applies to Retry a dead environment webhook delivery.

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)

Rotate an environment webhook secret

POST /api/v1/projects/{projectId}/environments/{environmentId}/webhooks/{webhookId}/secrets

Parameters

path

NameTypeRequiredDescription
projectIdstringrequiredIdentifies the Project that owns the addressed resource. Applies to Rotate an environment webhook secret.
environmentIdstringrequiredIdentifies the Project environment addressed by the operation. Applies to Rotate an environment webhook secret.
webhookIdstringrequiredIdentifies the Project webhook being addressed. Applies to Rotate an environment webhook secret.

Responses

StatusDescriptionBody
200Response for status 200application/json — object — data: object (required)
400The request is malformed or cannot be processed.application/json — PublicApiError — error: object (required)
401Authentication failed. The Authorization header is missing, or the credential is invalid or expired.application/json — PublicApiError — error: object (required)
403Access denied. The authenticated user does not have permission to perform this action.application/json — PublicApiError — error: object (required)
404Resource not found.application/json — PublicApiError — error: object (required)
409Request conflicts with current state of the resource, including safe deployment conflict classifications.application/json — PublicApiError — error: object (required)
422Request validation failed. Check the request body, query parameters, or path parameters.application/json — PublicApiError — error: object (required)
429Too many requests. The code foreign_resource_rate_limited means the caller made too many requests for Projects outside its reach: correct the Project id instead of retrying.application/json — PublicApiError — error: object (required)
500The server could not complete the request.application/json — PublicApiError — error: object (required)
503Service temporarily unavailable (e.g. execution capacity exhausted). The response carries a Retry-After header; retry with backoff.application/json — PublicApiError — error: object (required)