GitHub · event: pull_request (action: opened) ·
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).
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.
content-type: application/json user-agent: GitHub-Hookshot/f05835d x-github-event: pull_request x-github-delivery: 7a3fd6c0-2b4e-11ef-8d21-9e8f7a6b5c4d x-hub-signature-256: sha256=9c1d8e5f2a7b4c0e6d3f9a8b5c2e7d4f1a6b9c8e5d2f7a4b0c6e3d9f8a5b2c7e
{
"action": "opened",
"number": 42,
"pull_request": {
"id": 1923456789,
"number": 42,
"state": "open",
"locked": false,
"draft": false,
"title": "Add webhook retry handling",
"body": "Retries deliveries that returned non-2xx, with exponential backoff.",
"html_url": "https://github.com/octocat/hello-world/pull/42",
"user": {
"login": "octocat",
"id": 583231,
"type": "User"
},
"created_at": "2026-08-29T00:00:00Z",
"updated_at": "2026-08-29T00:00:00Z",
"head": {
"ref": "feature/retry-handling",
"sha": "4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e",
"repo": {
"full_name": "octocat/hello-world"
}
},
"base": {
"ref": "main",
"sha": "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5",
"repo": {
"full_name": "octocat/hello-world"
}
},
"merged": false,
"mergeable": null,
"commits": 3,
"additions": 120,
"deletions": 8,
"changed_files": 4
},
"repository": {
"id": 186853002,
"full_name": "octocat/hello-world",
"private": false,
"default_branch": "main"
},
"sender": {
"login": "octocat",
"id": 583231,
"type": "User"
}
}
pull_request subscription covers many actions —
opened, synchronize (new commits pushed), closed
(check pull_request.merged to distinguish merge from close),
reopened, edited… Always switch on action first.mergeable is often null right after opening — GitHub
computes mergeability lazily in the background.X-Hub-Signature-256.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: pull_request' \
-H 'x-github-delivery: 7a3fd6c0-2b4e-11ef-8d21-9e8f7a6b5c4d' \
-H 'x-hub-signature-256: sha256=9c1d8e5f2a7b4c0e6d3f9a8b5c2e7d4f1a6b9c8e5d2f7a4b0c6e3d9f8a5b2c7e' \
-d '{"action":"opened","number":42,"pull_request":{"id":1923456789,"number":42,"state":"open","locked":false,"draft":false,"title":"Add webhook retry handling","body":"Retries deliveries that returned non-2xx, with exponential backoff.","html_url":"https://github.com/octocat/hello-world/pull/42","user":{"login":"octocat","id":583231,"type":"User"},"created_at":"2026-08-29T00:00:00Z","updated_at":"2026-08-29T00:00:00Z","head":{"ref":"feature/retry-handling","sha":"4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e","repo":{"full_name":"octocat/hello-world"}},"base":{"ref":"main","sha":"59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5","repo":{"full_name":"octocat/hello-world"}},"merged":false,"mergeable":null,"commits":3,"additions":120,"deletions":8,"changed_files":4},"repository":{"id":186853002,"full_name":"octocat/hello-world","private":false,"default_branch":"main"},"sender":{"login":"octocat","id":583231,"type":"User"}}'
← All payload examples · Related guide · Signature debugger · Docs