A single subscriber endpoint receives every Resend webhook event for which it has been subscribed in the dashboard. The event kind is discriminated by the `type` field in the JSON envelope.
The receiving mail server accepted the message for delivery.
Content-Type: application/json
EmailDeliveryDelayed
The email could not be delivered due to a temporary issue. Resend will keep retrying.
Content-Type: application/json
EmailComplained
The email was delivered but the recipient marked it as spam.
Content-Type: application/json
EmailBounced
The receiving mail server permanently rejected the message.
Content-Type: application/json
EmailOpened
The recipient opened the email.
Content-Type: application/json
EmailClicked
The recipient clicked a tracked link in the email.
Content-Type: application/json
ContactCreated
A contact was created in an audience.
Content-Type: application/json
ContactDeleted
A contact was deleted from an audience.
Content-Type: application/json
ContactUpdated
A contact was updated.
Content-Type: application/json
DomainCreated
A sending domain was created.
Content-Type: application/json
DomainDeleted
A sending domain was deleted.
Content-Type: application/json
DomainUpdated
A sending domain was updated. This is also emitted as DNS records are verified and the domain status transitions.
Content-Type: application/json
About AsyncAPI
The AsyncAPI specification describes event-driven APIs the way OpenAPI describes request/response APIs. A channel is the named pipe — a webhook URL, a Kafka topic, a WebSocket route, an MQTT subject — that producers and consumers publish or subscribe to. Each channel carries one or more messages with structured payloads, and an operation declares whether a given party sends or receives on that channel.
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.