---
title: "Cancel an open draw"
method: DELETE
path: "/v1/draws/{id}"
tags: ["Draws"]
---

# Cancel an open draw

`DELETE /v1/draws/{id}`

Only draws in state `open` can be cancelled. Sealed draws are public commitments and cannot be erased.

## Response `200`

Draw cancelled.

- DrawResponse
  - `success` boolean
  - `message` string
  - `data` object
    - `draw` Draw
      - `id` string
      - `name` string
      - `description` string, nullable
      - `state` 'open' | 'sealed' | 'resolved' | 'cancelled'
      - `direction` 'winner' | 'loser'
      - `winner_count` integer
      - `entry_count` integer
      - `drand_chain` 'quicknet' | 'classic'
      - `drand_round` integer, nullable
      - `drand_round_time` string, date-time, nullable
      - `list_hash` string, nullable — SHA-256 over the sealed list bytes.
      - `list_url` string, nullable
      - `verify_url` string, nullable — Public per-draw verification page.
      - `winner_row` integer, nullable — 0-based index into the sealed list.
      - `winner_ticket` string, nullable
      - `callback_url` string, nullable
      - `callback_secret` string, nullable — Returned only on the creating response. HMAC key for webhook signatures.
      - `public_commit_url` string, nullable
      - `sealed_at` string, date-time, nullable
      - `resolved_at` string, date-time, nullable
      - `created_at` string, date-time
      - `ots_proof_url` string, nullable
      - `ots_calendar_url` string, nullable
      - `ots_attested_at` string, date-time, nullable

## Other responses

- `401` — Missing or invalid API key (`unauthenticated`).
- `404` — Draw not found or not yours (`not_found`).
- `409` — Operation not valid in the draw's current state (`state_conflict`).

---

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