Twitch EventSub stream.online webhook payload example

Twitch · event: stream.online (EventSub notification) · 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 Twitch's webhook settings to capture a real delivery. No signup.

Headers

content-type: application/json
twitch-eventsub-message-id: befa7b53-d79d-478f-86b9-120f112b044e
twitch-eventsub-message-retry: 0
twitch-eventsub-message-type: notification
twitch-eventsub-message-signature: sha256=d1f2e3EXAMPLEhexhmacEXAMPLE4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f
twitch-eventsub-message-timestamp: 2026-08-29T00:00:00.123456789Z
twitch-eventsub-subscription-type: stream.online
twitch-eventsub-subscription-version: 1

Body

{
  "subscription": {
    "id": "f1c2a387-161a-49f9-a165-0f21d7a4e1c4",
    "status": "enabled",
    "type": "stream.online",
    "version": "1",
    "condition": {
      "broadcaster_user_id": "1337"
    },
    "transport": {
      "method": "webhook",
      "callback": "https://example.com/webhooks"
    },
    "created_at": "2026-08-28T20:00:00.123456789Z",
    "cost": 0
  },
  "event": {
    "id": "9001",
    "broadcaster_user_id": "1337",
    "broadcaster_user_login": "cool_user",
    "broadcaster_user_name": "Cool_User",
    "type": "live",
    "started_at": "2026-08-29T00:00:00Z"
  }
}

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 'twitch-eventsub-message-id: befa7b53-d79d-478f-86b9-120f112b044e' \
  -H 'twitch-eventsub-message-retry: 0' \
  -H 'twitch-eventsub-message-type: notification' \
  -H 'twitch-eventsub-message-signature: sha256=d1f2e3EXAMPLEhexhmacEXAMPLE4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f' \
  -H 'twitch-eventsub-message-timestamp: 2026-08-29T00:00:00.123456789Z' \
  -H 'twitch-eventsub-subscription-type: stream.online' \
  -H 'twitch-eventsub-subscription-version: 1' \
 -d '{"subscription":{"id":"f1c2a387-161a-49f9-a165-0f21d7a4e1c4","status":"enabled","type":"stream.online","version":"1","condition":{"broadcaster_user_id":"1337"},"transport":{"method":"webhook","callback":"https://example.com/webhooks"},"created_at":"2026-08-28T20:00:00.123456789Z","cost":0},"event":{"id":"9001","broadcaster_user_id":"1337","broadcaster_user_login":"cool_user","broadcaster_user_name":"Cool_User","type":"live","started_at":"2026-08-29T00:00:00Z"}}'

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