Skip to main content
A WebhookSend represents a single delivery attempt for a webhook, including the exact request body sent and the response received. Send records are read-only — inspect them through the Webhook Sends endpoints. See the Webhooks guide for retry behavior and how to send a test delivery.
id
string<uuid>

The send's unique identifier.

Example:

"c2f9b3d7-6e4a-4c8f-8b1d-7a3e9c5f2d80"

webhook_id
string<uuid>

The id of the webhook this delivery attempt belongs to.

Example:

"a3d8f2e6-1c4b-4a9d-8e3f-2b5a7c9d4f60"

retry_parent_id
string<uuid> | null

The id of the earlier send this record is an automatic retry of. Null if this send wasn't a retry (the original attempt).

Example:

null

event
string

The name of the event this delivery was for.

Example:

"projects.created"

status
enum<string>

The delivery's outcome. pending — not yet attempted; successful — your endpoint returned a 2xx response; error — your endpoint returned a non-2xx response; timeout — your endpoint didn't respond within the time limit.

Available options:
pending,
successful,
error,
timeout
Example:

"successful"

request_sent_at
string | null

Timestamp when this delivery attempt was sent, formatted as YYYY-MM-DD HH:MM:SS. Null if not yet sent.

Example:

"2025-02-10 09:16:03"

request_body
object

The exact JSON payload delivered to your endpoint for this attempt, in the {event, description, webhook_id, data} envelope described in the Webhooks guide.

response_status
integer | null

The HTTP status code your endpoint returned. Null if the delivery hasn't completed or your endpoint never responded (status is timeout).

Example:

200

response_body
string | null

The raw response body your endpoint returned. Null if the delivery hasn't completed or your endpoint never responded.

Example:

"OK"

response_received_at
string | null

Timestamp when your endpoint's response was received, formatted as YYYY-MM-DD HH:MM:SS. Null if the delivery hasn't completed or your endpoint never responded.

Example:

"2025-02-10 09:16:04"