# Delete a Project (/docs/projects/delete)



Delete is available under
[Project settings → General](/docs/projects/settings-general) in the
**Delete Project** danger-zone card.

## Flow [#flow]

1. Click **Delete project**. A confirmation dialog opens.
2. Click **Delete project** again. The dialog switches to a progress
   state and streams server-sent events from
   `POST /api/projects/{projectId}/purge`.
3. When the `done` event fires, the page navigates to the Org's
   projects list.

Deletion is **immediate and irreversible**. There is no archive state,
no "scheduled for deletion in 30 days" grace period, no cancel window.

## What the purge endpoint does [#what-the-purge-endpoint-does]

The purge endpoint connects directly to the project's backing database,
sets `statement_timeout = 0`, and removes the project's data in batched
`DELETE`s. Progress is streamed back as SSE events (`progress`, `done`,
`error`).

## Retry behavior [#retry-behavior]

If the request hits a 429, the UI waits for `Retry-After` seconds and
retries up to 5 times. Long deletions can take a minute or more.

## Pre-flight [#pre-flight]

The UI shows a simple warning about permanence before you confirm but
does **not** run pre-flight checks for connected ad accounts, open
SideShift briefs, or unpaid wallet balances in the current code.
Anything that needs to be revoked at a platform (e.g. Business Center
partnerships) must be handled separately.

## What persists after delete [#what-persists-after-delete]

The purge deletes rows tied to the project across many tables. Audit
log retention and invoice history are controlled at the Org / billing
layer, not by this route.
