Skip to content
Inkbox

Inkbox

DocsPricingBlogContact
GuidesAPI Reference

Ctrl K

GuidesAPI Reference

Jump to

Webhook Deliveries

Every time Inkbox POSTs an event to one of your endpoints, it records the attempt in a delivery log: the signed request body that was sent, the HTTP response your endpoint returned (or the transport error, if it never responded), how long it took, and whether the row was a replay. Use this log to see exactly what was — or wasn't — delivered, and to re-send a delivery your endpoint missed.

The log covers both subscription deliveries (message.*, text.*, imessage.*) and the per-number phone.incoming_call deliveries. Subscription deliveries carry a webhook_subscription_id; incoming-call deliveries instead carry a phone_number_id and are not replayable (their response body drives live call routing, so there's nothing meaningful to replay).

Auth

CallerVisibility
Admin-scoped API keyEvery delivery in the organization.
Human session via the Inkbox ConsoleEvery delivery in the organization.
Claimed agent-scoped API keyDeliveries for subscriptions and numbers belonging to that agent's identity.

List deliveries GET

GET /webhooks/deliveries

List logged delivery attempts visible to the caller, newest first. Returns an object with a deliveries array — not a bare array.

Query parameters

ParameterTypeDescription
subscription_idUUIDFilter to one subscription's deliveries.
phone_number_idUUIDFilter to a phone number's incoming-call deliveries.
event_typestringFilter by event type (e.g. message.received).
successbooleantrue returns only deliveries with a 2xx response; false returns failures (non-2xx or no response).
limitintegerPage size, 1200. Defaults to 50.
offsetintegerRow offset for pagination. Defaults to 0.

Filters AND-combine.

Response (200)

JSONJSON

Code examples


Replay delivery POST

POST /webhooks/deliveries/{delivery_id}/replay

Re-deliver a logged event to its subscription's current URL, and record a new delivery row (with is_replay set to true) for the attempt.

Replay reuses the original event's envelope event_id, so it only recovers a miss: a well-behaved receiver that already processed the original event dedupes the replay away by event_id. Replay does not force reprocessing — it helps only endpoints that never successfully received the event in the first place. The request is freshly signed with a new request id and timestamp so it passes your receiver's freshness check.

Path parameters

ParameterTypeDescription
delivery_idUUIDThe logged delivery to replay.

Response (200)

Returns the new replay delivery row (is_replay: true). See Delivery object.

Error responses

StatusReason
404Delivery does not exist or is not visible to the caller.
422The delivery is an incoming-call delivery, which is not replayable.
409The subscription is no longer active.
409The subscription no longer subscribes to this event type.

Code examples


Delivery object

FieldTypeDescription
idUUIDUnique delivery identifier.
organization_idstringOwning organization (e.g. "org_2abc123def456").
webhook_subscription_idUUID | nullSubscription this delivery targeted. null for incoming-call deliveries.
phone_number_idUUID | nullPhone number for incoming-call deliveries (which have no subscription). null otherwise.
event_idstringThe envelope event id (evt_…) shared across every delivery of the same event. For incoming-call rows this is the call id.
event_typestringThe event type that was delivered.
urlstringThe destination URL the request was sent to.
request_payloadstringThe raw signed request body that was delivered.
response_statusinteger | nullHTTP status your endpoint returned. null if the request never got a response.
response_bodystring | nullA truncated snippet of your endpoint's response body.
error_detailstring | nullTransport error summary, when the request failed to complete.
duration_msinteger | nullHow long the attempt took, in milliseconds.
is_replaybooleantrue if this row was produced by a manual replay.
created_atstringISO 8601 timestamp the attempt was made.

The event_id is the same evt_… value carried in the webhook payload envelope, so you can correlate a delivery row with the event your endpoint received and use it for idempotent processing.

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Inkbox

Copyright © 2026 Inkbox

This site is protected by reCAPTCHA.

Google Privacy Policy and Terms of Service apply.

Website

Y CombinatorBacked by Y Combinator
Webhook Deliveries