sendport webhooks▾

sendport webhooks

Tunnel live webhooks to localhost, replay deliveries and fire test events.

Webhooks cannot reach localhost. sendport webhooks listen opens a tunnel, forwards every event to a local URL and prints them as they arrive — no ngrok, no public URL.

$sendport webhooks listen

Stream live events to a local endpoint until you Ctrl-C.

Usage
sendport webhooks listen --forward <url> [--events <list>]
FlagTypeDescription
--forward <url>stringLocal URL to POST to, e.g. http://localhost:3000/hooks/sendport. Required.
--events <list>stringComma-separated event names. Default: all.
--skip-verifybooleanDo not sign forwarded requests. Only for debugging.
--printbooleanPretty-print each payload to stdout as well.
Session
$ sendport webhooks listen --forward http://localhost:3000/hooks/sendport
✓ listening — forwarding to http://localhost:3000/hooks/sendport
  signing secret  whsec_9f2c…  (set this in your app)

09:41:02  message.received   evt_01JZQ6F5H7  →  200  12ms
09:41:03  message.sent       evt_01JZQ6F5J1  →  200   8ms
09:41:08  message.delivered  evt_01JZQ6F5K4  →  200   9ms
$sendport webhooks trigger

Fire a synthetic event with realistic data, without needing a real message. Works alongside listen.

Usage
sendport webhooks trigger <event> [--to <e164>]
FlagTypeDescription
<event>stringEvent name, e.g. message.received.
--to <e164>stringContact to attribute the event to.
$sendport webhooks deliveries

List recent delivery attempts with status codes and durations.

Usage
sendport webhooks deliveries [--endpoint <id>] [--failed]
FlagTypeDescription
--endpoint <id>stringLimit to one endpoint.
--failedbooleanOnly non-2xx attempts.
--replay <id>stringReplay one delivery by its id.

The tunnel signs like production

Forwarded requests carry a real Sendport-Signature, using the secret printed on start. Wire your verification against it locally and it will work unchanged in production.