Segment track webhook payload example (webhooks destination)

Segment · event: track · content type: application/json

This is a representative sample — fake IDs, real structure. To see a payload with your data, point the provider at a capture URL (button below).

See it live, not frozen

One click creates a free capture bin with this exact payload already in it — pretty-printed, headers inspectable, replayable to your own endpoint:

Then paste the bin's URL into Segment's webhook settings to capture a real delivery. No signup.

Headers

content-type: application/json
user-agent: Segment.io/1.0
x-signature: 6d729ef2f3463d8f7aeb41830650465a20026995

Body

{
  "version": 1,
  "type": "track",
  "userId": "019mr8mf4r",
  "event": "Purchased an Item",
  "properties": {
    "revenue": "39.95",
    "shippingMethod": "2-day"
  },
  "context": {
    "library": {
      "name": "analytics.js",
      "version": "4.1.0"
    }
  },
  "timestamp": "2026-08-30T06:15:00.276Z",
  "messageId": "ajs-next-8f3c2b1a9d7e6f5a4b3c2d1e0f9a8b7c"
}

Things that bite people

Send it yourself

Reproduce this delivery against any endpoint (your handler, a bin, staging):

$ curl -X POST https://your-endpoint.example/hook \
  -H 'content-type: application/json' \
  -H 'user-agent: Segment.io/1.0' \
  -H 'x-signature: 6d729ef2f3463d8f7aeb41830650465a20026995' \
 -d '{
  "version": 1,
  "type": "track",
  "userId": "019mr8mf4r",
  "event": "Purchased an Item",
  "properties": {
    "revenue": "39.95",
    "shippingMethod": "2-day"
  },
  "context": {
    "library": {
      "name": "analytics.js",
      "version": "4.1.0"
    }
  },
  "timestamp": "2026-08-30T06:15:00.276Z",
  "messageId": "ajs-next-8f3c2b1a9d7e6f5a4b3c2d1e0f9a8b7c"
}'

← All payload examples · Related guide · Signature debugger · Docs