---
title: "Delete the account (scheduled 7 days out; cancellable until then)."
method: POST
path: "/account/deletion"
tags: ["Account"]
---

# Delete the account (scheduled 7 days out; cancellable until then).

`POST /account/deletion`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/account/deletion`
- Auth: HTTP bearer

Schedules the deletion of the account and everything it made: scripts, projects, Series Bibles, outlines and coverage; table reads, decks, trailers and every stored file; shows, their feeds and public pages; voices, here and at the voice provider; API keys, connected apps and sign-ins; stored app logins. Nothing is removed until `scheduledFor` (7 days); the account owner is emailed and can cancel (DELETE /account/deletion) until the purge starts. Unused Studio Credits are forfeited at the purge. Payment records are kept without a name or email, as tax law requires. Videos on the owner's own YouTube or TikTok channel are listed in the confirmation email for them to remove. `confirmEmail` must be the account's email address (400 `account_email_mismatch`; nothing is scheduled). 409 `account_deletion_refused` for an admin, a workshop host or an organization owner (`message` says why). A deletion already scheduled is returned unchanged.  Requires `Idempotency-Key`. Scope: `account:write`. Free.

## Headers

- `Idempotency-Key` string, required

## Request body

- AccountDeletionRequest
  - `confirmEmail` string, required: The account's email address, to confirm whose account is being deleted.

## Response `200`

The deletion is scheduled.

- AccountDeletionStatus: Where the account's deletion stands, with the credit balance and what deleting removes.
  - `state` 'none' | 'scheduled' | 'purging' | 'blocked', required
  - `requestedAt` string, date-time, nullable, required
  - `scheduledFor` string, date-time, nullable, required: When the purge runs; cancellable until then.
  - `blockedReason` string, nullable, required: Why a purge stopped and needs a person (state `blocked`).
  - `canRequest` boolean, required
  - `refusal` string, nullable, required: Why this account cannot delete itself, when it cannot.
  - `credits` object, required
    - `balance` integer, required
    - `refundableTopUps` AccountDeletionTopUp[], required
      - `purchasedAt` string, date-time, required
      - `credits` integer, required
      - `usd` number, nullable, required
      - `refundableUntil` string, date-time, required: The end of the 14-day refund window for unused top-ups.
    - `notice` string, required: The balance, that unused credits are forfeited at the purge, and a refund prompt for any top-up still refundable. Show it before the confirm.
  - `deletes` string[], required
  - `keeps` string, required
  - `exportNotice` string, required
  - `uploadsNotice` string, required
  - `graceDays` integer, required

## Other responses

- `400`: `confirmEmail` is not the account's email address (`account_email_mismatch`), so no deletion was scheduled.
- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `409`: The account cannot delete itself (`account_deletion_refused`): an admin account, a workshop host, or an organization owner (transfer or delete it first); or the purge already started, so the deletion can no longer be cancelled. `message` says which. Nothing was changed.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/64c1102ccb2f?raw)
