sendsend.email

Create a webhook endpoint

POST/v1/webhooks

Registers an HTTPS endpoint for delivery events. The signing secret is shown once, in this response. Requests to private network addresses are refused.

Required scope: webhooks:manage

Request body

FieldType
urloptionalstring
endpointoptionalstring
eventsoptional"email.sent" | "email.delivered" | "email.bounced" | "email.complained" | "email.failed" | "email.opened" | "email.clicked" | "email.delivery_delayed" | "email.scheduled" | "email.suppressed" | "email.received"[]

Unknown fields are rejected, so a typo never silently does nothing.

Example

curl -X POST 'https://api.sendsend.email/v1/webhooks' \
  -H "Authorization: Bearer $SENDSEND_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "https://acme.com/hooks/sendsend",
  "events": [
    "email.delivered",
    "email.bounced"
  ]
}'

Response 201

{
  "id": "whe_3Hq…",
  "object": "webhook_endpoint",
  "url": "https://acme.com/hooks/sendsend",
  "events": [
    "email.delivered",
    "email.bounced"
  ],
  "active": true,
  "created_at": "2026-10-06T15:00:00.000Z",
  "secret": "whsec_…"
}

Errors

StatusCodeWhen
400validation_errorThe request body or parameters are invalid. The message says which field.
403plan_limit_reachedYour plan’s webhook limit is reached.
401unauthorizedThe API key is missing, invalid or revoked.
403forbiddenThe key does not have the scope this endpoint needs.

Every error has the same shape. See Errors.