Skip to main content
DELETE https://api.craftkit.dev/v1/projects/{id}
Soft-delete a project. The row and everything under it (templates, renders, signature requests, API keys) is retained, but the project stops appearing in list and get, and every project-scoped call against it — including render and sign calls made with its ck_live_… keys — is rejected from that point on.
The slug is not freed. (userId, slug) is a non-partial unique index, so a soft-deleted project’s slug stays reserved for that account — POST /v1/projects with the same derived slug gets a numeric suffix instead of reusing it. This is intentional, documented behavior, not a bug.

Authorization

Authorization
string
required
Bearer ck_acct_… — must own the project.

Path

id
string
required
The project id (UUID).

Response

200:
id
string
The deleted project’s id.
deleted
boolean
Always true on success.
A second DELETE of the same id returns 404 — the operation is idempotent in effect.

Errors

StatuscodeMeaning
401unauthorizedMissing/invalid account key.
404not_foundNo such project owned by this account (already deleted, or never existed).
cURL
curl -X DELETE https://api.craftkit.dev/v1/projects/3f9b6c2e-1a2b-4c3d-9e8f-7a6b5c4d3e2f \
  -H "Authorization: Bearer $CRAFTKIT_ACCOUNT_KEY"
200
{
  "id": "3f9b6c2e-1a2b-4c3d-9e8f-7a6b5c4d3e2f",
  "deleted": true
}