Introduction
Use webhooks to notify your application about events from Reloop.
Webhooks allow you to build or set up integrations which subscribe to certain events on Reloop. When one of those events is triggered, we'll send a HTTP POST payload to the webhook's configured URL.
What is a webhook?
Webhooks are "user-defined HTTP callbacks". They are usually triggered by some event, such as an email being delivered or a domain being verified. When that event occurs, the source site makes an HTTP request to the URL configured for the webhook. Users can configure them to cause events on one site to invoke behavior on another.
Why use webhooks?
- Automatically remove bounced email addresses from mailing lists
- Create alerts in your messaging or incident tools based on event types
- Store all send events in your own database for custom reporting/retention
- Receive emails using Inbound
How to receive webhooks
1. Create a dev endpoint to receive requests.
Set up a URL on your server that can receive HTTP POST requests.
export default (req, res) => {
if (req.method === 'POST') {
const event = req.body;
console.log(event);
res.status(200).send('OK');
}
};
You can use tools like ngrok or VS Code Port Forwarding to expose your local server to the internet.
2. Add a webhook in Reloop.
Go to the Webhooks page in your dashboard.
- Add your publicly accessible HTTPS URL.
- Select all events you want to observe.
3. Test your local endpoint.
When you send an email or trigger an event, Reloop will send a payload like this to your endpoint:
{
"id": "whev_01h…",
"type": "email.bounced",
"created_at": "2026-07-22T23:41:12.126Z",
"data": {
"email_id": "em_123456789",
"from": "Acme <onboarding@reloop.sh>",
"to": ["bounced@reloop.sh"],
"subject": "Sending this example",
"status": "bounced",
"error": {
"code": 550,
"message": "User unknown"
}
}
}
All data fields use snake_case. See Event Types for the full catalog and per-category shapes.
Headers include Reloop-Id, Reloop-Timestamp, and Reloop-Signature for verification.
4. Update and deploy your production endpoint.
Once you've tested your logic, update your endpoint to handle specific event types and deploy it to your production server.
export default (req, res) => {
if (req.method === 'POST') {
const event = req.body;
if (event.type === "email.bounced") {
// Handle bounce logic
}
res.status(200).send('OK');
}
};
5. Register your production webhook endpoint
Update your webhook URL in the Reloop Dashboard with your production URL.
FAQ
Learn More
Was this page helpful?
- Need help? Contact Support.
- Chat with Reloop developers on Discord.
- Check out our changelog.
- Questions? Contact Sales.
- LLM? Read llms.txt.