---
title: "Delete your user"
method: DELETE
path: "/profile"
tags: ["profile"]
---

# Delete your user

`DELETE /profile`

## Request

- Base URL: `https://api.sparkvault.com/v1`
- URL: `https://api.sparkvault.com/v1/profile`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sparkvault/apis/sparkvault-api/docs/profile/delete.ts> (a function with typed inputs; its response is checked against the schema)

A member deletes their own SparkVault user, permanently: their access to the organization, their Delegated Vault Access Keys (DVAKs), sessions and API keys end at once, and the devices they registered for notifications are deregistered. On a web subscription their seat stops renewing (it stays paid for the rest of the period, and nothing is refunded); on a store subscription the license they held passes to another member. The organization's vaults and files stay with its owner. Only from the member's own session (an API key or an impersonated session is refused), confirming with their sign-in email. The account owner cannot delete their user: they delete the account (DELETE /account). A user already gone is answered as deleted.

## Request body

- object
  - `confirmation` string, required: Your sign-in email (letter case and surrounding spaces aside).

## Response `200`

The user is deleted.

- object
  - `data` ProfileDeleted, required
    - `message` string, required
  - `meta` ResponseMeta: Envelope metadata present on every successful response.
    - `api_version` string
    - `request_id` string
    - `response_ms` integer
    - `timestamp` integer: Unix seconds.
    - `pools` object: Storage and bandwidth capacity snapshot for the account.
    - `billing` object
      - `past_due` boolean
    - `quota` object: This minute of the account request budget. Present on authenticated success responses that passed the throttle; absent otherwise.
      - `limit` integer
      - `used` integer
      - `remaining` integer
      - `resets_at` integer: Unix seconds.

## Other responses

- `400`: VALIDATION_ERROR — the confirmation is missing, or is not your sign-in email.
- `401`: AUTHENTICATION_ERROR — missing or invalid credentials.
- `403`: FORBIDDEN — the caller is the account owner, or the credential is an API key or an impersonated session.
- `409`: SEAT_CHANGE_IN_PROGRESS — another billing update for this account is in progress. Try again in a moment.
- `429`: RATE_LIMIT_EXCEEDED — the account exceeded 5000 requests this minute. `Retry-After` carries the seconds to wait, and `details` carries limit/resets_at, plus `used` whenever the request was counted. A request refused because the limiter itself was unavailable reports no `used`.

## Changes

- **2026-10-28** `a9a10e328ba5`: 20 info
  - the response property `error/details` became required for the status `400`
  - the response property `error/details` became required for the status `401`
  - the response property `error/details` became required for the status `403`
  - the response property `error/details` became required for the status `409`
  - …16 more
- **2026-10-28** `56d7c265a77a`: 5 breaking
  - the response property `error/details` became nullable for the status `400`
  - the response property `error/details` became nullable for the status `401`
  - the response property `error/details` became nullable for the status `403`
  - the response property `error/details` became nullable for the status `409`
  - …1 more
- **2026-10-16** `4609037ab07c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sparkvault/apis/sparkvault-api/changes/profile/delete.md)

---

[API](https://skmtc.dev/sparkvault/apis/sparkvault-api.md) - [All operations](https://skmtc.dev/sparkvault/apis/sparkvault-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sparkvault/apis/sparkvault-api/revisions/97cfadccd0c0?raw)
