Never lose a webhook

Send webhooks to your customers and receive them from Stripe, GitHub or any other service — in our cloud or on your own servers, with every delivery on record.

Railhook Cloud is free right now — no card needed.

Install in one command

Needs Docker and 4 GB of RAM

curl -fsSL https://railhook.io/install.sh | bash

Send and receive, in one place

Send

Webhooks for your customers

Your customer adds a URL. Railhook delivers each event there, signed, and tries again if their server is down.

One event reaches three customers; one server is down, so Railhook retries and it arrives.

Receive

Webhooks from other services

One address per service. Railhook checks that Stripe or GitHub really sent it, then passes it on to your app.

Requests from Stripe, GitHub and Shopify are verified and passed to your app; a forged one is refused.

Nothing gets lost

When the other side has a bad day, your events wait instead of disappearing.

Retries on its own

If the receiver is down, the delivery waits and tries again.

Failures in one list

See what didn't arrive and send it again with one click.

Every delivery on record

Who got what, when, and what their server answered.

Built so events survive failures

Railhook saves every event before it replies to the sender.

If a server restarts or a service goes down, deliveries wait and then carry on.

It runs on PostgreSQL, Kafka and Redis, which you can run yourself.

  • stored before 201
  • retries 1m → 24h
  • Docker or Kubernetes

See where every webhook went

The screen your team opens when a customer asks what happened.

Each delivery, every attempt, and what the other server answered.

Railhook deliveries list with the status and response of each attempt

Run it your way

Free right now

Railhook Cloud

Sign up and send your first webhook in minutes. Free with limits: 10,000 events a month, 3 projects, 7 days of history.

Later we'll add paid plans with support and higher limits.

Open source · MIT

On your servers

One command installs everything. Every feature, no plan limits, MIT licence, no licence key.

  • Installs with one command
  • HTTPS sets itself up on your domain
  • Upgrades and backups are one command too

Built for developers

One API call sends an event. The rest is in the docs.

Send an event with one API call

send-event.ts
import { Railhook } from '@railhook/node'; const client = new Railhook({  apiKey: process.env.RAILHOOK_API_KEY,  baseUrl: 'https://railhook.io',}); const event = await client.events.send({  type: 'order.completed',  data: { orderId: 'ord_12345', amount: 99.99 },});console.log(event.deliveriesCreated);

201 Created · 2 deliveries created