GitHub push webhook payload example

GitHub · event: push · 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 GitHub's webhook settings to capture a real delivery. No signup.

Headers

content-type: application/json
user-agent: GitHub-Hookshot/f05835d
x-github-event: push
x-github-delivery: d81a6c80-1f2b-11ef-9c96-1a2b3c4d5e6f
x-github-hook-id: 512403864
x-github-hook-installation-target-type: repository
x-hub-signature: sha1=2f4c9862b0b12f6cb87f7b3c9e5e86a9d1e05a24
x-hub-signature-256: sha256=6e04a9d4bfbb7bb2c0c4f5c2e7a1d8f3b9c6a2e5d0f4b7c1a8e3d6f9b2c5a0e4

Body

{
  "ref": "refs/heads/main",
  "before": "6113728f27ae82c7b1a177c8d03f9e96e0adf246",
  "after": "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5",
  "created": false,
  "deleted": false,
  "forced": false,
  "compare": "https://github.com/octocat/hello-world/compare/6113728f27ae...59b20b8d5c6f",
  "repository": {
    "id": 186853002,
    "name": "hello-world",
    "full_name": "octocat/hello-world",
    "private": false,
    "owner": {
      "name": "octocat",
      "email": "octocat@github.com",
      "login": "octocat"
    },
    "html_url": "https://github.com/octocat/hello-world",
    "default_branch": "main"
  },
  "pusher": {
    "name": "octocat",
    "email": "octocat@github.com"
  },
  "sender": {
    "login": "octocat",
    "id": 583231,
    "type": "User"
  },
  "commits": [
    {
      "id": "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5",
      "distinct": true,
      "message": "fix: handle empty webhook payloads",
      "timestamp": "2026-08-29T00:00:00Z",
      "url": "https://github.com/octocat/hello-world/commit/59b20b8d5c6f",
      "author": {
        "name": "The Octocat",
        "email": "octocat@github.com",
        "username": "octocat"
      },
      "added": [],
      "removed": [],
      "modified": [
        "src/handler.js"
      ]
    }
  ],
  "head_commit": {
    "id": "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5",
    "message": "fix: handle empty webhook payloads",
    "author": {
      "name": "The Octocat",
      "email": "octocat@github.com",
      "username": "octocat"
    },
    "modified": [
      "src/handler.js"
    ]
  }
}

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: GitHub-Hookshot/f05835d' \
  -H 'x-github-event: push' \
  -H 'x-github-delivery: d81a6c80-1f2b-11ef-9c96-1a2b3c4d5e6f' \
  -H 'x-github-hook-id: 512403864' \
  -H 'x-github-hook-installation-target-type: repository' \
  -H 'x-hub-signature: sha1=2f4c9862b0b12f6cb87f7b3c9e5e86a9d1e05a24' \
  -H 'x-hub-signature-256: sha256=6e04a9d4bfbb7bb2c0c4f5c2e7a1d8f3b9c6a2e5d0f4b7c1a8e3d6f9b2c5a0e4' \
 -d '{"ref":"refs/heads/main","before":"6113728f27ae82c7b1a177c8d03f9e96e0adf246","after":"59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5","created":false,"deleted":false,"forced":false,"compare":"https://github.com/octocat/hello-world/compare/6113728f27ae...59b20b8d5c6f","repository":{"id":186853002,"name":"hello-world","full_name":"octocat/hello-world","private":false,"owner":{"name":"octocat","email":"octocat@github.com","login":"octocat"},"html_url":"https://github.com/octocat/hello-world","default_branch":"main"},"pusher":{"name":"octocat","email":"octocat@github.com"},"sender":{"login":"octocat","id":583231,"type":"User"},"commits":[{"id":"59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5","distinct":true,"message":"fix: handle empty webhook payloads","timestamp":"2026-08-29T00:00:00Z","url":"https://github.com/octocat/hello-world/commit/59b20b8d5c6f","author":{"name":"The Octocat","email":"octocat@github.com","username":"octocat"},"added":[],"removed":[],"modified":["src/handler.js"]}],"head_commit":{"id":"59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5","message":"fix: handle empty webhook payloads","author":{"name":"The Octocat","email":"octocat@github.com","username":"octocat"},"modified":["src/handler.js"]}}'

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