Create a webhook endpoint
POST /org/{org_slug}/webhooks/endpoints
Registers a new webhook endpoint for the organization. The signing secret (secret) is returned in this response only. Requires org admin role.
Path parameters
Your organization slug.
Request body
HTTPS URL that AgentVista will POST event payloads to. Must start with
https:// — HTTP URLs are rejected.Human-readable label for this endpoint.
List of event types to deliver to this endpoint. Must contain at least one entry (e.g.
["alert.fired"]).Response — 201
UUID of the new endpoint.
The registered HTTPS URL.
Endpoint label.
Subscribed event types.
Always
true on creation.ISO 8601 creation timestamp.
Raw HMAC-SHA256 signing key. This is the only time this value is returned. Store it and use it to verify the
X-AgentVista-Signature header on incoming deliveries.Example response
List webhook endpoints
GET /org/{org_slug}/webhooks/endpoints
Lists all webhook endpoints for the organization, ordered newest-first. Secrets are never included in list responses.
Path parameters
Your organization slug.
Response — 200
An array of endpoint objects. Each object has the following fields (nosecret field):
Endpoint UUID.
Registered HTTPS URL.
Endpoint label.
Subscribed event types.
Whether the endpoint receives deliveries.
Number of consecutive failed delivery attempts. If this reaches the circuit-breaker threshold, the endpoint is automatically paused.
ISO 8601 creation timestamp.
Update a webhook endpoint
PATCH /org/{org_slug}/webhooks/endpoints/{endpoint_id}
Updates one or more fields on a webhook endpoint. All request body fields are optional. Requires org admin role.
Re-enabling a paused endpoint (is_active: true) also resets the consecutive_failures counter, which clears the circuit-breaker state.
Path parameters
Your organization slug.
UUID of the endpoint to update.
Request body
New HTTPS URL. Must start with
https://.New label for this endpoint.
New list of subscribed event types. Replaces the existing list.
Set to
false to pause deliveries, true to resume. Resuming resets the circuit-breaker counter.Response — 200
Returns the updated endpoint object (same schema as list, nosecret field).
Delete a webhook endpoint
DELETE /org/{org_slug}/webhooks/endpoints/{endpoint_id}
Deletes a webhook endpoint. All associated delivery history is cascade-deleted. Requires org admin role.
Path parameters
Your organization slug.
UUID of the endpoint to delete.
Response — 204
No body.Rotate signing secret
POST /org/{org_slug}/webhooks/endpoints/{endpoint_id}/rotate-secret
Generates a new HMAC signing secret for the endpoint. The old secret is immediately invalidated. Any in-flight deliveries signed with the old key will fail HMAC verification on your receiver. Returns the new secret exactly once. Requires org admin role.
Path parameters
Your organization slug.
UUID of the endpoint.
Response — 200
Endpoint UUID.
The new raw HMAC signing key. Store this immediately — it is not returned again.
List deliveries
GET /org/{org_slug}/webhooks/endpoints/{endpoint_id}/deliveries
Returns paginated delivery history for a webhook endpoint, ordered newest-first.
Path parameters
Your organization slug.
UUID of the endpoint.
Query parameters
Page number (1-indexed).
Number of deliveries per page.
Response — 200
Delivery summaries for the current page.
Total number of deliveries for this endpoint (before pagination).
Get delivery detail
GET /org/{org_slug}/webhooks/deliveries/{delivery_id}
Returns full detail for a single delivery including all HTTP attempts.
Path parameters
Your organization slug.
UUID of the delivery.
Response — 200
Delivery UUID.
The event type that triggered this delivery.
Overall delivery status.
The exact JSON payload that was sent (or attempted) to your endpoint.
ISO 8601 timestamp when the delivery was enqueued.
All HTTP attempts for this delivery, in order.
Retry a delivery
POST /org/{org_slug}/webhooks/deliveries/{delivery_id}/retry
Manually enqueues a retry for any delivery regardless of its current status. Returns 202 immediately — the retry is processed asynchronously. The retry task checks that the endpoint is active before sending.
Path parameters
Your organization slug.
UUID of the delivery to retry.
Response — 202
Always
true when the retry has been enqueued.UUID of the delivery that was queued for retry.