curl --request POST \
--url https://apix.spotzee.com/api/client/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Order events to billing service",
"url": "https://api.example.com/spotzee/webhooks",
"event_types": [
"delivery.delivered",
"delivery.failed"
]
}
'{
"id": 17,
"project_id": 42,
"name": "Order events to billing service",
"url": "https://api.example.com/spotzee/webhooks",
"status": "active",
"event_types": [
"delivery.delivered",
"delivery.failed"
],
"has_secret": true,
"created_at": "<string>",
"updated_at": "<string>",
"signing_secret": "whsec_5f6b9c4e2a8d3f1b...",
"description": "<string>"
}Creates a new webhook endpoint subscribed to one or more events. The response includes the plaintext signing secret exactly once — store it now; it cannot be re-fetched. To rotate later, call POST /webhooks/{endpointId}/rotate-secret. POST is idempotent when called with an Idempotency-Key header.
curl --request POST \
--url https://apix.spotzee.com/api/client/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Order events to billing service",
"url": "https://api.example.com/spotzee/webhooks",
"event_types": [
"delivery.delivered",
"delivery.failed"
]
}
'{
"id": 17,
"project_id": 42,
"name": "Order events to billing service",
"url": "https://api.example.com/spotzee/webhooks",
"status": "active",
"event_types": [
"delivery.delivered",
"delivery.failed"
],
"has_secret": true,
"created_at": "<string>",
"updated_at": "<string>",
"signing_secret": "whsec_5f6b9c4e2a8d3f1b...",
"description": "<string>"
}Documentation Index
Fetch the complete documentation index at: https://docs.spotzee.com/llms.txt
Use this file to discover all available pages before exploring further.
Project-scoped secret API key (sk_…). Pass in the Authorization: Bearer <key> header. Grants access to the project the key was issued for.
Create a new webhook endpoint. The plaintext signing secret is returned exactly once in the response — store it immediately; it cannot be re-fetched.
Human-readable name shown in dashboards.
1 - 255"Order events to billing service"
HTTPS URL the signed event payload will be POSTed to.
"https://api.example.com/spotzee/webhooks"
Events the endpoint should subscribe to. At least one is required.
1Event the endpoint is subscribed to. Each event identifies a queue, delivery, reputation, or infrastructure signal. See the events reference for full descriptions.
queue.queue-message-authenticated, queue.rescheduled, queue.quota-exceeded, delivery.concurrency-limit-exceeded, delivery.attempt-start, delivery.attempt-end, delivery.completed, delivery.delivered, delivery.dsn-perm-fail, delivery.dsn-temp-fail, delivery.failed, delivery.mail-from-rejected, delivery.message-rejected, delivery.rcpt-to-rejected, delivery.rcpt-to-failed, delivery.mx-lookup-failed, delivery.ip-lookup-failed, delivery.null-mx, delivery.connect-error, delivery.greeting-failed, delivery.ehlo-rejected, delivery.start-tls-error, delivery.start-tls-unavailable, delivery.implicit-tls-error, incoming-report.abuse-report, incoming-report.fraud-report, incoming-report.virus-report ["delivery.delivered", "delivery.failed"]Optional free-text note describing the endpoint.
Optional caller-supplied signing secret. If omitted, a cryptographically random secret is generated and returned in the response. Marked writeOnly — never echoed back on subsequent reads.
16 - 256"whsec_5f6b9c4e2a8d3f1b..."
The newly created webhook endpoint, including the one-time plaintext signing secret.
Webhook endpoint plus the one-time-visible plaintext signing secret. Returned only by POST /webhooks and POST /webhooks/{endpointId}/rotate-secret. Subsequent reads omit the plaintext; only has_secret: true/false is exposed.
Numeric webhook endpoint identifier.
17
Identifier of the owning project.
42
Human-readable name shown in dashboards.
"Order events to billing service"
HTTPS URL the signed event payload will be POSTed to.
"https://api.example.com/spotzee/webhooks"
Lifecycle state of the endpoint. active receives events; inactive is paused by the user; disabled was suspended by the system after repeated delivery failures.
active, inactive, disabled "active"
Events the endpoint is subscribed to.
Event the endpoint is subscribed to. Each event identifies a queue, delivery, reputation, or infrastructure signal. See the events reference for full descriptions.
queue.queue-message-authenticated, queue.rescheduled, queue.quota-exceeded, delivery.concurrency-limit-exceeded, delivery.attempt-start, delivery.attempt-end, delivery.completed, delivery.delivered, delivery.dsn-perm-fail, delivery.dsn-temp-fail, delivery.failed, delivery.mail-from-rejected, delivery.message-rejected, delivery.rcpt-to-rejected, delivery.rcpt-to-failed, delivery.mx-lookup-failed, delivery.ip-lookup-failed, delivery.null-mx, delivery.connect-error, delivery.greeting-failed, delivery.ehlo-rejected, delivery.start-tls-error, delivery.start-tls-unavailable, delivery.implicit-tls-error, incoming-report.abuse-report, incoming-report.fraud-report, incoming-report.virus-report ["delivery.delivered", "delivery.failed"]Whether a signing secret is currently configured. The plaintext secret itself is only returned on create and on rotate — never re-fetched.
Time the endpoint was created. ISO 8601.
Time the endpoint was last modified. ISO 8601.
Plaintext signing secret. Returned exactly once — store it securely now. Use this value as the HMAC key when verifying Spotzee-Signature on inbound deliveries.
"whsec_5f6b9c4e2a8d3f1b..."
Optional free-text note describing the endpoint.
Was this page helpful?