Skip to main content
Webhooks let you subscribe to events that happen in Chevre and receive real-time HTTP POST notifications to a URL you control. When an event fires, Chevre sends a signed JSON payload to each registered webhook URL that subscribes to that event. Use the endpoints below to register, update, and remove webhooks. All management requests require your API key in the Authorization header as Bearer <your_api_key>.

List webhooks

GET https://api.chevre.io/v1/webhooks Returns all webhooks registered for the authenticated workspace.

Example request

Example response

200

Response fields

data
array
An array of webhook objects registered to the workspace.

Create a webhook

POST https://api.chevre.io/v1/webhooks Registers a new webhook endpoint. Chevre immediately sends a test ping to the URL to verify reachability — the endpoint must respond with a 2xx status code within 5 seconds or the registration will fail.

Request body

url
string
required
The HTTPS URL that Chevre will send event payloads to. Must use https://. Plain HTTP URLs are rejected.
events
array
required
An array of event type strings the webhook should subscribe to. At least one event is required. See Available events for the full list.
secret
string
required
A signing secret used to compute the Chevre-Signature HMAC-SHA256 header on each delivery. Store this value securely — you cannot retrieve it after creation.
enabled
boolean
default:"true"
Whether the webhook should be active immediately after creation.

Example request

Example response

201
The secret field is write-only and is not returned in any response after creation. Store it securely at registration time.

Response fields

data
object
The newly registered webhook object.

Get a webhook

GET https://api.chevre.io/v1/webhooks/{id} Retrieves a single webhook by its ID.

Path parameters

id
string
required
The unique identifier of the webhook to retrieve (e.g. wh_01RST).

Example request

Example response

200

Response fields

data
object
The requested webhook object.

Update a webhook

PATCH https://api.chevre.io/v1/webhooks/{id} Updates an existing webhook’s URL, event subscriptions, or enabled state. Send only the fields you want to change.

Path parameters

id
string
required
The unique identifier of the webhook to update (e.g. wh_01RST).

Request body

url
string
A new destination URL. Must use https://. Chevre will send a test ping to the new URL to verify reachability.
events
array
A replacement list of event type strings. The entire events array is replaced — to add a single event, include all existing events plus the new one.
enabled
boolean
Set to false to pause event delivery, or true to resume it.

Example request

Example response

200

Response fields

data
object
The updated webhook object.

Delete a webhook

DELETE https://api.chevre.io/v1/webhooks/{id} Permanently deletes a webhook registration. Chevre immediately stops sending event deliveries to this endpoint.

Path parameters

id
string
required
The unique identifier of the webhook to delete (e.g. wh_01RST).

Example request

Example response

204
A successful deletion returns HTTP 204 No Content with an empty response body.

Available webhook events

Subscribe to any combination of the following events when creating or updating a webhook.

Webhook payload format

Chevre delivers all events as HTTP POST requests with a JSON body. Every payload follows the same top-level envelope structure, with resource-specific data nested inside the data field.
id
string
A unique identifier for this event delivery, prefixed with evt_. Use this to deduplicate retried deliveries.
type
string
The event type string that triggered this delivery (e.g. "automation.run.completed").
created_at
string
ISO 8601 timestamp of when the event occurred in Chevre.
data
object
The event-specific payload. The fields inside data vary depending on the type. Refer to the Available events section for per-event data shapes.

Signature verification

Every webhook delivery from Chevre includes a Chevre-Signature header containing an HMAC-SHA256 signature computed over the raw request body using the secret you provided at registration. Always verify this signature before processing a payload.
Always use a timing-safe comparison function (such as crypto.timingSafeEqual in Node.js or hmac.compare_digest in Python) when comparing signatures. A standard equality check is vulnerable to timing attacks.

Retry behavior

If your endpoint does not respond with a 2xx HTTP status code within 10 seconds, Chevre marks the delivery as failed and retries it automatically. Chevre retries failed deliveries up to 5 times using exponential backoff with jitter: After all 5 retries are exhausted, the delivery is marked as permanently failed. You can view delivery attempts and their statuses in the Chevre dashboard under Settings → Webhooks.
Respond to webhook deliveries as quickly as possible with a 200 OK — ideally before doing any processing. Offload heavy work to a background queue after acknowledging receipt. This prevents Chevre from timing out and triggering unnecessary retries.
You can use the event id field to safely deduplicate retried deliveries in case your handler processes the same event more than once.