Webhooks are a Premium feature.
How webhooks work
1
Event occurs
Something happens in H0p (link created, clicked, etc.)
2
H0p sends request
An HTTP POST request is sent to your webhook URL with event data.
3
Your server responds
Your server processes the event and returns a 2xx status code.
Available events
Creating a webhook
1
Go to Webhooks
Navigate to Webhooks in the sidebar under Developer Tools.
2
Click Create Webhook
Click the Create Webhook button to open the configuration form.
3
Enter your endpoint URL
Provide the URL where H0p should send events:
4
Select events
Choose which events should trigger this webhook:
- Check specific events (recommended)
- Or select all events

5
Save the webhook
Click Create to save. H0p will provide a webhook secret for signature verification.

Event payloads
All webhook payloads follow this structure:link.created
Sent when a new short link is created:link.updated
Sent when a short link is modified:link.deleted
Sent when a short link is deleted:link.clicked
Sent when someone clicks a short link:Verifying webhook signatures
Every webhook request includes a signature header for verification. This ensures the request came from H0p and wasn’t tampered with.Signature header
Verification example
- Node.js
- Python
- Go
Retry behavior
If your server doesn’t respond with a 2xx status code, H0p retries with exponential backoff:
After 18 consecutive failures (6 attempts x 3), the webhook is automatically disabled to prevent further failed deliveries.
You’ll receive an email notification when a webhook is disabled due to failures.
Monitoring webhooks
Delivery history
View recent webhook deliveries in the webhook details page:- Event type - Which event triggered the delivery
- Status - Success or failure
- Response code - HTTP status returned by your server
- Timestamp - When the delivery was attempted

Re-enable disabled webhooks
If a webhook is disabled due to failures:- Fix the issue with your endpoint
- Go to the webhook settings
- Toggle the webhook back on
- The failure counter resets
Best practices
Respond quickly
Respond quickly
Return a 2xx response as quickly as possible. Process events asynchronously in a queue.
Handle duplicates
Handle duplicates
Network issues can cause duplicate deliveries. Use the event
id to deduplicate:Validate event types
Validate event types
Only process events you expect. Ignore unknown event types gracefully:
Use HTTPS
Use HTTPS
Always use HTTPS endpoints. HTTP is not supported and exposes your data.
Store webhook secrets securely
Store webhook secrets securely
Use environment variables or a secrets manager. Never commit secrets to version control.
Testing webhooks
Local development
Use a tunneling service to expose your local server:- ngrok
- Cloudflare Tunnel
https://abc123.ngrok.io/webhook) as your webhook endpoint.Webhook testing tools
- Create a webhook with a test endpoint
- Trigger an event (create a link)
- Check the delivery history for the request/response