Docker Hub · event: image 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).
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 Docker Hub's webhook settings to capture a real delivery. No signup.
content-type: application/json
{
"callback_url": "https://registry.hub.docker.com/u/acme/api-server/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/",
"push_data": {
"pushed_at": 1787990400,
"pusher": "acmedeploy",
"tag": "v2.4.1"
},
"repository": {
"comment_count": 0,
"date_created": 1750000000,
"description": "Acme API server image",
"full_description": "Automated build for the Acme API server.",
"is_official": false,
"is_private": true,
"is_trusted": true,
"name": "api-server",
"namespace": "acme",
"owner": "acme",
"repo_name": "acme/api-server",
"repo_url": "https://registry.hub.docker.com/u/acme/api-server/",
"star_count": 0,
"status": "Active"
}
}
callback_url is a legacy field and no longer supported —
older tutorials still show POSTing a validation state back to it; new integrations should
ignore it entirely.tag is in push_data.tag and timestamps are epoch
seconds (unlike Vercel's milliseconds).Reproduce this delivery against any endpoint (your handler, a bin, staging):
$ curl -X POST https://your-endpoint.example/hook \
-H 'content-type: application/json' \
-d '{"callback_url":"https://registry.hub.docker.com/u/acme/api-server/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/","push_data":{"pushed_at":1787990400,"pusher":"acmedeploy","tag":"v2.4.1"},"repository":{"comment_count":0,"date_created":1750000000,"description":"Acme API server image","full_description":"Automated build for the Acme API server.","is_official":false,"is_private":true,"is_trusted":true,"name":"api-server","namespace":"acme","owner":"acme","repo_name":"acme/api-server","repo_url":"https://registry.hub.docker.com/u/acme/api-server/","star_count":0,"status":"Active"}}'