HookGet Open dashboard

Your first delivery

Account, destination, publish, and the timeline that proves it arrived.

In short

  • Open an account, add a destination, publish one event.
  • The destination secret is shown once — store it before you close the panel.
  • The delivery timeline shows the status, the latency and what the destination answered.

1. Add a destination

A destination is a URL that receives deliveries. On a live project it must be HTTPS; private and cloud-metadata addresses are refused. You can restrict it to certain event types or leave it open to everything.

curl -X POST https://api.hookget.com/v1/endpoints \
  -H "authorization: Bearer $HOOKGET_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"https://orders.example.com/webhooks","event_types":["order.created"]}'

# {"id":"ep_…","secret":"whsec_…"}   ← the secret appears exactly once

2. Publish an event

curl -X POST https://api.hookget.com/v1/events \
  -H "authorization: Bearer $HOOKGET_KEY" \
  -H "content-type: application/json" \
  -d '{"type":"order.created","payload":{"id":"ord_10241","total":149.9}}'

# 202 — stored, then fanned out to every subscribed endpoint

The 202 arrives only after the event is durable. That ordering is the whole reliability story: an acknowledgement that precedes the write is a promise the service cannot keep.

3. Watch it arrive

Each attempt is recorded with its status, latency and the first kilobyte of the response.

curl https://api.hookget.com/v1/events/msg_01M0…/attempts \
  -H "authorization: Bearer $HOOKGET_KEY"
FieldWhat it tells you
statusdelivered, failed, or still pending
http_statusWhat the destination answered, when it answered at all
response_msHow long it took — the number that becomes p95 on the health endpoint
error_classWhy there was no status: a timeout, a connection error, a refused address
response_body_first_1kbThe start of the body, which is usually where the reason is
attempt_noWhich attempt this was, so a retry is visible as a retry

On the consumer side, verify before you parse. The signature guide has the function in full.