---
title: "Delete or cancel a job"
method: DELETE
path: "/jobs/{jobId}"
tags: ["Jobs"]
---

# Delete or cancel a job

`DELETE /jobs/{jobId}`

## Request

- Base URL: `https://pdf2md.dev`
- URL: `https://pdf2md.dev/jobs/{jobId}`
- Auth: HTTP bearer

If the job is in the `queued` or `processing` status, marks it as canceled and deletes the input file.
If `ready` or `error`, deletes the Markdown and the record. The operation is idempotent.

## Path parameters

- `jobId` string, uuid, required

## Headers

- `X-Timestamp` integer, required
- `X-Nonce` string, required
- `X-Body-SHA256` string, required
- `X-Signature` string, required

## Response `200`

Job deleted or canceled

- object
  - `job_id` string, uuid, required
  - `status` 'queued' | 'processing' | 'ready' | 'error' | 'canceled' | 'deleted', required: Job status
  - `message` string

## Other responses

- `401`: Invalid or expired device_token / request signature
- `403`: Device blocked
- `404`: Job not found
- `409`: Replay detected (nonce already used)
- `429`: Device or IP limits exceeded

---

[API](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade.md) · [All operations](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade/llms.txt) · [OpenAPI document](https://skmtc.dev/pdf2md/apis/pdf-to-markdown-api-facade/revisions/4636782fb8b6?raw)
