---
title: "Cancel an extract job"
method: DELETE
path: "/v1/extract/{id}"
tags: ["extract"]
---

# Cancel an extract job

`DELETE /v1/extract/{id}`

## Request

- Base URL: `https://api.fastcrw.com`
- URL: `https://api.fastcrw.com/v1/extract/{id}`
- Auth: one of:
  - HTTP bearer
  - none

Idempotent. Processing becomes cancelling while a claimed URL settles, then cancelled. Completed, failed, and cancelled states are immutable.

## Path parameters

- `id` string, required

## Response `200`

Canonical job status + ordered per-URL results

- ExtractStatus
  - `success` boolean, required
  - `id` string, required
  - `status` 'processing' | 'cancelling' | 'completed' | 'failed' | 'cancelled', required
  - `results` ExtractUrlResult[], required: Fixed-cardinality per-URL slots in original request order. Pending slots are processing; untouched terminal slots are cancelled.
    - `url` string, required
    - `status` 'processing' | 'completed' | 'failed' | 'cancelled', required
    - `data` object: Extracted JSON object (present when status is completed). Untouched cancelled slots omit data, error, usage, and basis.
    - `error` string
    - `llmUsage` object: Per-URL LLM token usage (provider/model/input/output tokens).
    - `basis` Basis[]: Per-field evidence for this URL; present only when the request set basis:true.
      - `basisVersion` integer, required
      - `field` string, required
      - `value` unknown, required
      - `status` 'supported' | 'unverified' | 'unsupported' | 'notFound', required: How well an extracted field is attributed to its source. Honest: a field whose attribution could not be verified is 'unverified'/'unsupported' rather than given a fabricated citation.
      - `confidence` 'low' | 'medium' | 'high'
      - `citations` EvidenceCitation[], required
        - `url` string, required: The document the engine fetched.
        - `title` string
        - `excerpt` string: Verbatim span from the canonical source text. Absent when the span could not be established (status 'unverified').
        - `sourceHash` string, required: 'sha256:<hex>' of the exact text sent to the model.
        - `sourceTextKind` string, required: Which text sourceHash covers. 'llmInput' for extraction basis (the truncated markdown sent to the model).
    - `basisWarnings` BasisWarning[]
      - `field` string, required
      - `code` string, required
    - `llmInputHash` string: 'sha256:'-prefixed hash of the canonical text sent to the extraction LLM.
  - `error` string: Job-level error, set only when every URL failed.
  - `expiresAt` string, date-time, required
  - `creditsUsed` integer, required
  - `tokensUsed` integer, required

## Other responses

- `400`: Invalid request body
- `404`: Resource not found

---

[API](https://skmtc.dev/fastcrw/apis/crw-rest-api.md) · [All operations](https://skmtc.dev/fastcrw/apis/crw-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fastcrw/apis/crw-rest-api/revisions/9bc1842aa048?raw)
