---
title: "Cancel a background job"
method: POST
path: "/v3/background-jobs/{jobId}/cancel"
tags: ["Background Jobs"]
---

# Cancel a background job

`POST /v3/background-jobs/{jobId}/cancel`

<small>_Requires the `other:operate` scope (or a broader one that includes it)._</small>

Requests cancellation of a background job. Idempotent — cancelling an already-terminal job returns 204 without effect on the worker. The request body is optional; if provided, the `reason` is recorded alongside the cancellation event.

## Path parameters

- `jobId` string, uuid, required

## Request body

- object — Optional payload for cancelling a background job. The body itself is optional — `POST` with an empty body is valid.
  - `reason` string, nullable — Optional human-readable reason for the cancellation, recorded with the job

## Response `204`

Cancellation requested successfully (or already cancelled — idempotent)

## Other responses

- `400` — Invalid job identifier
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `404` — Background job not found
- `429` — Too Many Requests
- `503` — Upstream background-jobs service is temporarily unavailable

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
