Skip to main content
AgentVista delivers real-time event notifications to your registered HTTPS endpoints. Each delivery is signed with an HMAC-SHA256 signature using a secret key so you can verify that requests originate from AgentVista. Webhook endpoints are scoped to an organization. Managing endpoints requires org admin permissions. Reading delivery history requires org member permissions.
The signing secret is returned exactly once when you create an endpoint or rotate the secret. Copy it immediately — it is never shown again. Store it securely and use it to verify incoming request signatures.

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

string
required
Your organization slug.

Request body

string
required
HTTPS URL that AgentVista will POST event payloads to. Must start with https:// — HTTP URLs are rejected.
string
Human-readable label for this endpoint.
string[]
required
List of event types to deliver to this endpoint. Must contain at least one entry (e.g. ["alert.fired"]).

Response — 201

string
UUID of the new endpoint.
string
The registered HTTPS URL.
string
Endpoint label.
string[]
Subscribed event types.
boolean
Always true on creation.
string
ISO 8601 creation timestamp.
string
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

string
required
Your organization slug.

Response — 200

An array of endpoint objects. Each object has the following fields (no secret field):
string
Endpoint UUID.
string
Registered HTTPS URL.
string
Endpoint label.
string[]
Subscribed event types.
boolean
Whether the endpoint receives deliveries.
number
Number of consecutive failed delivery attempts. If this reaches the circuit-breaker threshold, the endpoint is automatically paused.
string
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

string
required
Your organization slug.
string
required
UUID of the endpoint to update.

Request body

string
New HTTPS URL. Must start with https://.
string
New label for this endpoint.
string[]
New list of subscribed event types. Replaces the existing list.
boolean
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, no secret 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

string
required
Your organization slug.
string
required
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

string
required
Your organization slug.
string
required
UUID of the endpoint.

Response — 200

string
Endpoint UUID.
string
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

string
required
Your organization slug.
string
required
UUID of the endpoint.

Query parameters

number
default:"1"
Page number (1-indexed).
number
default:"20"
Number of deliveries per page.

Response — 200

object[]
Delivery summaries for the current page.
number
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

string
required
Your organization slug.
string
required
UUID of the delivery.

Response — 200

string
Delivery UUID.
string
The event type that triggered this delivery.
string
Overall delivery status.
object
The exact JSON payload that was sent (or attempted) to your endpoint.
string
ISO 8601 timestamp when the delivery was enqueued.
object[]
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

string
required
Your organization slug.
string
required
UUID of the delivery to retry.

Response — 202

boolean
Always true when the retry has been enqueued.
string
UUID of the delivery that was queued for retry.