Skip to main content
Every webhook delivery sends a JSON payload to your configured endpoint. This structure is consistent across all event types.

Payload Structure

{
  "id": "4aa4e020-818d-4a76-af9d-b023dd9674d2",
  "event": "trader_whale_trade",
  "data": { ... },
  "timestamp": 1773025181866,
  "webhook_id": "26cc4fb7-c62e-450c-a532-07196afd7b67",
  "attempt": 1
}

Fields

id

A unique identifier (UUID) for this specific webhook delivery. Use this to deduplicate events on your end.

event

The event type that triggered this webhook. Matches one of the event types you subscribed to during setup.

data

The event payload. Its shape depends on the event type — see the individual event documentation for field details.

timestamp

Unix timestamp in milliseconds indicating when the event was emitted.

webhook_id

The UUID of the webhook subscription that produced this delivery. Useful when you have multiple webhooks configured and need to identify the source.

attempt

The delivery attempt number, starting at 1. If your endpoint fails to respond with a 2xx status code, Struct will retry the delivery and increment this value.
Fields within data may be null depending on the event type and the availability of enriched metadata at the time of delivery.
Last modified on March 11, 2026