Webhooks
Incoming webhooks (tunnel use case)
The most common use case: expose a local endpoint to receive webhooks from external services.
# Testing Stripe webhooks locally
nullbore open --port 3000 --name stripe-test --ttl 2h
# → https://stripe-test.tunnel.nullbore.com
# Point Stripe's webhook URL at your tunnel
# Stripe → NullBore → localhost:3000/webhooks/stripe
Works with any service that sends webhooks: Stripe, GitHub, Twilio, Slack, Linear, etc.
Tips
- Use
--idlemode so the tunnel stays alive while you're iterating - Use a named tunnel so the URL is stable across reconnects
- The tunnel URL changes if you don't use a name (free tier)
Outgoing webhooks (NullBore events)
Hobby+ plan feature — get notified when tunnel events happen.
NullBore can send webhook notifications when tunnels are created, about to expire, or closed.
Events
| Event | Description |
|---|---|
tunnel.created | A new tunnel was opened |
tunnel.expiring | Tunnel expires in 5 minutes |
tunnel.closed | Tunnel was closed (manually or by TTL) |
Payload
{
"event": "tunnel.created",
"timestamp": "2026-03-30T14:30:00Z",
"tunnel": {
"id": "b1d0df1b-...",
"slug": "myapp",
"local_port": 3000,
"ttl": "1h0m0s",
"expires_at": "2026-03-30T15:30:00Z"
}
}
Configuration
Configure webhook URLs in the dashboard under Settings → Webhooks.
Status: Outgoing webhooks are coming soon. The event system is designed, implementation is in progress.