hookstream
The modern event gateway for developers. Ingest, transform, route, and deliver webhooks with retries, DLQ, real-time streaming, and full observability.
hookstream is an event gateway that sits between your webhook senders and your infrastructure. It ingests events, applies filters and transforms, delivers them to 8 destination types with automatic retries, and gives you end-to-end observability. Built on Cloudflare Workers and Durable Objects, it's fast at the edge and cheap to run.
What you can build
Core primitives
Sources
A source is a webhook endpoint. Each source gets a unique URL like https://hookstream.io/v1/ingest/<source_id> that accepts any HTTP method. Optional signature verification, IP filtering, deduplication.
Destinations
A destination is where events get delivered. Every destination runs on its own DeliveryScheduler Durable Object with retries, circuit breaker, and DLQ.
Connections
A connection links a source to a destination. Add content-based filters and JSONata transforms to shape what gets delivered where.
Events
Every incoming request becomes an event — immutable, searchable, replayable. See live delivery attempts in the dashboard or via WebSocket.
Try it right now
No signup required — open the test inspector, copy the temporary URL, and send it a POST. You'll see the event land live in the two-panel inspector with headers, body, and a custom response configurator.
curl -X POST https://hookstream.io/v1/ingest/<source_id> \
-H 'Content-Type: application/json' \
-d '{"type": "order.created", "data": {"id": "ord_123", "amount": 4999}}'await fetch('https://hookstream.io/v1/ingest/<source_id>', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
type: 'order.created',
data: { id: 'ord_123', amount: 4999 },
}),
});import requests
requests.post(
'https://hookstream.io/v1/ingest/<source_id>',
json={'type': 'order.created', 'data': {'id': 'ord_123', 'amount': 4999}},
)body := []byte(`{"type":"order.created","data":{"id":"ord_123","amount":4999}}`)
http.Post("https://hookstream.io/v1/ingest/<source_id>", "application/json", bytes.NewReader(body))You don't need to run a server to receive webhooks. Use webhook testing to spin up an instant public URL and inspect requests in real time.