v2.4 is out: retries with exponential backoff and replay by time range

Webhooks that never drop an event.

Send, retry and replay webhooks with one API call.

Start free$ npm i hookline

10k events a month free. No card. First event in about 5 minutes. SOC 2 in progress (sample).

How one event travels through HooklineYour app sends invoice.paid to Hookline, which signs, retries and logs it, then delivers it to three customer endpoints.Your apphl.send(invoice.paid)Hooklinesigns hmac-sha256retries 8, explogs every attemptep_9f2c200delivered in 84msep_71ab503retry 2 of 8 in 4mep_0c4d410dead-letter, replayable
  • ep_9f2c answered 200: delivered in 84ms
  • ep_71ab answered 503: retry 2 of 8 in 4m
  • ep_0c4d answered 410: dead-letter, replayable
Used by teams at (sample)NorthwindParceloQuantaBrightdeskOstromDemo concept, sample data

Every attempt, on the record.

What your team sees in the dashboard (sample events).

Sample delivery log
statuseventdetail
200invoice.paid to ep_9f2c84ms, attempt 1
503invoice.paid to ep_71abretry 2/8 in 4m
200user.created to ep_9f2c61ms, attempt 1
200invoice.paid to ep_71ab92ms, attempt 3
410plan.changed to ep_0c4ddead-letter, replayable
  1. Automatic retries

    Exponential backoff up to 8 attempts, then a dead-letter queue you can replay.

    retry.max, retry.backoff
  2. Signed payloads

    Every request carries an HMAC signature your customers verify in one line.

    hmac-sha256
  3. Replay anything

    Re-send one event or a whole time range after an outage.

    POST /v1/replay
  4. Per-endpoint logs

    Request, response and timing for every attempt, searchable for 30 days.

    retention: 30d
  5. Customer portal

    Your users add endpoints and see their own deliveries.

    <HooklinePortal />

Webhooks fail quietly. Your customers notice first.

A queue, a cron job and a retry loop look simple until an endpoint goes down at 2am.

  • Silent drops

    A 500 from a customer’s server and the event is gone. Nobody knows until support hears about it.

  • Retry storms

    Naive retries hammer an endpoint that’s already struggling and take it down for good.

  • No paper trail

    “Did you send it?” turns into an afternoon of grepping logs.

From npm install to a delivered webhook in five minutes.

  1. 0:00

    npm i hookline

  2. 1:00

    Add your API key

  3. 3:00

    Register an endpoint

  4. 5:00

    First event delivered

Engineers who stopped babysitting webhooks

Demo concept, sample data
  • “We deleted 600 lines of retry code and a cron job the week we switched.”

    Sample reviewer A, Staff engineer (sample)

  • “Support can answer “did you send it?” themselves now. That alone paid for it.”

    Sample reviewer B, CTO (sample)

  • “Replay by time range saved us after a customer’s outage. Two clicks.”

    Sample reviewer C, Platform lead (sample)

Pay for events, not seats.

First 10k events every month are free. Above that, the more you send, the less each one costs.

Events a month, in blocks of 100k

10 100k-event blocks × $7$7022% off per 100k-event block
  • 1+: $9
  • 10+: $7
  • 50+: $5

1M events a month

$70 a month

Hookline vs. building it yourself vs. a generic queue

FeatureHooklineDIYGeneric queue
Retries with backoffYou write it
Signed payloadsYou write it
Replay by time range
Customer-facing logs
Time to first event~5 minDaysHours

Sample comparison for this demo. A real page compares named competitors from their public docs, with a date.

30-day money-back on paid plans. Upgrade, send real traffic, and if Hookline doesn’t pay for itself in a month, we refund you. The free tier stays free.

Questions developers ask

What happens when my customer’s endpoint is down?
We retry with exponential backoff up to 8 times over 24 hours, then park the event in a dead-letter queue you can replay.
How do my customers verify a webhook is from me?
Each request has an HMAC-SHA256 signature header. Our SDKs verify it in one line.
Do you guarantee ordering?
Per endpoint, yes, when you set ordered: true. It trades a little throughput for strict order.
Which languages have SDKs?
Node, Python, Go and Ruby, plus a plain REST API for everything else.
What counts as an event?
One send call to one endpoint. Retries of the same event are free.
Can I self-host?
Not today. Enterprise plans can pin data to the EU or US region.

Ship your first webhook before lunch.

10k events a month free, forever. No card.

Get your API key
import { Hookline } from 'hookline'
const hl = new Hookline(process.env.HL_KEY)
await hl.send({
endpoint: 'ep_9f2c',
event: 'invoice.paid',
payload: { id: 'in_42', amount: 4900 },
retry: { max: 8, backoff: 'exp' },
})
The whole integration: one client, one send call.

That’s everything. If we missed a question, the changelog and status pages answer most of the rest.

The Hookline team, 23 October 2026