Buildkite job.finished webhook payload example

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

Headers

content-type: application/json
x-buildkite-event: job.finished
x-buildkite-signature: timestamp=1788511427,signature=a6b9dd2ed6fa8efa5f2c1f3c8313c709992d1c2dddf7d0ca574cb9708b11df0c

Body

{
  "event": "job.finished",
  "job": {
    "id": "b63254c0-3271-4a98-8270-7cfbd6c2f14e",
    "graphql_id": "Sm9iLS0tYjYzMjU0YzAtMzI3MS00YTk4LTgyNzAtN2NmYmQ2YzJmMTRl",
    "type": "script",
    "name": ":package: Build",
    "step_key": "build",
    "agent_query_rules": [],
    "state": "failed",
    "web_url": "https://buildkite.com/acme/deploy-service/builds/482#b63254c0-3271-4a98-8270-7cfbd6c2f14e",
    "log_url": "https://api.buildkite.com/v2/organizations/acme/pipelines/deploy-service/builds/482/jobs/b63254c0-3271-4a98-8270-7cfbd6c2f14e/log",
    "command": "scripts/build.sh",
    "soft_failed": false,
    "exit_status": 1,
    "signal": null,
    "signal_reason": null,
    "created_at": "2026-08-30 06:40:11 UTC",
    "scheduled_at": "2026-08-30 06:40:11 UTC",
    "runnable_at": "2026-08-30 06:40:12 UTC",
    "started_at": "2026-08-30 06:40:19 UTC",
    "finished_at": "2026-08-30 06:43:47 UTC",
    "retried": false,
    "retried_in_job_id": null,
    "retries_count": null,
    "retry_source": {
      "job_id": "7f21c9d4-08b3-4e5a-9c66-d1e8f2a40b73",
      "retry_type": "manual",
      "retried_by": {
        "name": "Ada Deveraux",
        "email": "ada@acme.dev"
      }
    },
    "agent": {
      "id": "0192a8c4-77d1-4b0e-8f3a-5c6d9e2b1f08",
      "name": "buildkite-agent-7c9f",
      "web_url": "https://buildkite.com/organizations/acme/agents/0192a8c4-77d1-4b0e-8f3a-5c6d9e2b1f08"
    }
  },
  "build": {
    "id": "9e7a2c66-3f19-4a1d-8b52-c0de4f6a91b3",
    "url": "https://api.buildkite.com/v2/organizations/acme/pipelines/deploy-service/builds/482",
    "web_url": "https://buildkite.com/acme/deploy-service/builds/482",
    "number": 482,
    "state": "failing",
    "branch": "main",
    "commit": "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5",
    "message": "fix: retry webhook deliveries on 5xx"
  },
  "pipeline": {
    "id": "7f3b9d21-5a64-4c08-9e17-b2a8d0c4e6f5",
    "url": "https://api.buildkite.com/v2/organizations/acme/pipelines/deploy-service",
    "web_url": "https://buildkite.com/acme/deploy-service",
    "name": "Deploy Service",
    "slug": "deploy-service",
    "repository": "git@github.com:acme/deploy-service.git",
    "default_branch": "main"
  },
  "sender": {
    "id": "8a7693f8-dbae-4783-9137-84090fce9045",
    "name": "Ada Deveraux"
  }
}

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 'x-buildkite-event: job.finished' \
  -H 'x-buildkite-signature: timestamp=1788511427,signature=a6b9dd2ed6fa8efa5f2c1f3c8313c709992d1c2dddf7d0ca574cb9708b11df0c' \
 -d '{
  "event": "job.finished",
  "job": {
    "id": "b63254c0-3271-4a98-8270-7cfbd6c2f14e",
    "graphql_id": "Sm9iLS0tYjYzMjU0YzAtMzI3MS00YTk4LTgyNzAtN2NmYmQ2YzJmMTRl",
    "type": "script",
    "name": ":package: Build",
    "step_key": "build",
    "agent_query_rules": [],
    "state": "failed",
    "web_url": "https://buildkite.com/acme/deploy-service/builds/482#b63254c0-3271-4a98-8270-7cfbd6c2f14e",
    "log_url": "https://api.buildkite.com/v2/organizations/acme/pipelines/deploy-service/builds/482/jobs/b63254c0-3271-4a98-8270-7cfbd6c2f14e/log",
    "command": "scripts/build.sh",
    "soft_failed": false,
    "exit_status": 1,
    "signal": null,
    "signal_reason": null,
    "created_at": "2026-08-30 06:40:11 UTC",
    "scheduled_at": "2026-08-30 06:40:11 UTC",
    "runnable_at": "2026-08-30 06:40:12 UTC",
    "started_at": "2026-08-30 06:40:19 UTC",
    "finished_at": "2026-08-30 06:43:47 UTC",
    "retried": false,
    "retried_in_job_id": null,
    "retries_count": null,
    "retry_source": {
      "job_id": "7f21c9d4-08b3-4e5a-9c66-d1e8f2a40b73",
      "retry_type": "manual",
      "retried_by": {
        "name": "Ada Deveraux",
        "email": "ada@acme.dev"
      }
    },
    "agent": {
      "id": "0192a8c4-77d1-4b0e-8f3a-5c6d9e2b1f08",
      "name": "buildkite-agent-7c9f",
      "web_url": "https://buildkite.com/organizations/acme/agents/0192a8c4-77d1-4b0e-8f3a-5c6d9e2b1f08"
    }
  },
  "build": {
    "id": "9e7a2c66-3f19-4a1d-8b52-c0de4f6a91b3",
    "url": "https://api.buildkite.com/v2/organizations/acme/pipelines/deploy-service/builds/482",
    "web_url": "https://buildkite.com/acme/deploy-service/builds/482",
    "number": 482,
    "state": "failing",
    "branch": "main",
    "commit": "59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5",
    "message": "fix: retry webhook deliveries on 5xx"
  },
  "pipeline": {
    "id": "7f3b9d21-5a64-4c08-9e17-b2a8d0c4e6f5",
    "url": "https://api.buildkite.com/v2/organizations/acme/pipelines/deploy-service",
    "web_url": "https://buildkite.com/acme/deploy-service",
    "name": "Deploy Service",
    "slug": "deploy-service",
    "repository": "git@github.com:acme/deploy-service.git",
    "default_branch": "main"
  },
  "sender": {
    "id": "8a7693f8-dbae-4783-9137-84090fce9045",
    "name": "Ada Deveraux"
  }
}'

← All payload examples · Signature debugger · Docs