Skip to content

Delete your account — into the Bin

POST
/v1/me/deletion
curl --request POST \
--url https://beta-api.plune.ai/v1/me/deletion \
--header 'Content-Type: application/json' \
--cookie plune_session=<plune_session> \
--data '{ "email": "[email protected]" }'

Account → Profile → Delete my account (#952, ADR 0069, api.ts → deleteMyAccount). The body is the address you sign in with, typed to confirm; it is compared as a sign-in compares it, trimmed and whatever the case. In one step: the account goes to the Bin, and with it every company nobody but you is in, with its projects, and every project you are alone in, personal or a company’s (each feed records it), all under one stamp; open handovers of ownership to or from you are cancelled; every session ends (this browser’s cookie is cleared too) and every API token of the account stops working. Membership and history in projects of companies and of other people stay as they are — member lists mark the person deleted, and the account holds no seat — until the purge. The account waits in the Bin binUntil (30 days) — support can restore it until then — and a sign-in link asked for its address meanwhile brings a letter saying so instead of a link. Then the nightly purge makes it nobody: its places, tokens and invitations go, its address becomes deleted-<id>@deleted.invalid (the real one is free for a new account), its name, language and theme go; what it did stays, and the dashboard names the author «deleted account» wherever the project’s records name the account (the list in GET /v1/members, #2053) and as an inviter on the company’s people page, as do the rollback preview (byDeleted) and the run export. Refused before anything changes for the owner of the application and for the owner of a place where other people work, who hands ownership over first (see GET /v1/me/deletion). Session-only: a leaked token must not be able to delete you.

Media type application/json
object
email
required
string
<= 320 characters
Examples
Example example

The address you sign in with

{
"email": "[email protected]"
}

The account is in the Bin; the session cookie is cleared

Media type application/json
object
deletedAt
required
string format: date-time
binUntil
required
string format: date-time
Example
{
"deletedAt": "2026-10-25T18:00:00.000Z",
"binUntil": "2026-11-24T18:00:00.000Z"
}

Not JSON, no email, or an address that is not the one you sign in with (email_mismatch) — nothing was deleted

Media type application/json
object
error
required
string
Example
{
"error": "the address is not the one you sign in with - nothing was deleted",
"code": "email_mismatch"
}

No / invalid session

Session valid but the user no longer exists, or is already in the Bin

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

Refused, nothing was deleted: the refusal of GET /v1/me/deletion, beside a sentence

Media type application/json

Why the account may not be deleted here (#952): application_owner — it owns the application; last_owner — it is the owner of the projects and companies listed, where other people work, and hands ownership over in each first (ADR 0050 §4; the code keeps the name it has had since #952). A 409 carries error, a sentence, beside it.

object
error
string
code
required
string
Allowed values: application_owner last_owner
projects

last_owner only.

Array<object>

A project or a company the person is the last owner of while other people work in it (#952).

object
id
required
string
name
required
string
people
required

Everybody in it, the person included — live accounts only (one in the Bin is nobody); a company counts its members and the people of its live projects, once each.

integer
>= 2
companies

last_owner only.

Array<object>

A project or a company the person is the last owner of while other people work in it (#952).

object
id
required
string
name
required
string
people
required

Everybody in it, the person included — live accounts only (one in the Bin is nobody); a company counts its members and the people of its live projects, once each.

integer
>= 2
Example
{
"error": "this account owns the application and cannot be deleted - nothing was deleted",
"code": "application_owner"
}

A body that is not application/json — a plain form of another page cannot send this with the cookie; nothing was deleted

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

Rate-limited: the per-route throttle, or the per-minute request limit of the plan an API token counts by (#1442; the body names the plan, #2092). Retry-After carries the seconds until the window rolls over.

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}
Retry-After
integer

Seconds until the window rolls over

In each of three attempts somebody left one of your places after it was read, leaving you alone in it (#2070) — nothing was deleted; Retry-After: 1, ask again

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}