Skip to content

Request account or team deletion

POST
/api/v1/team/deletion
curl --request POST \
--url https://api.deploybase.eu/api/v1/api/v1/team/deletion \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "kind": "account" }'

Opens the cancelable 14-day grace period before the team and its data are erased (GDPR Art. 17). kind=account (the default, and the only kind on your home team) also erases your account and your memberships elsewhere; kind=team erases only this team and its sign-in organization, and is refused on your home team. Nothing is deleted until the grace period expires: sites stay online, the subscription is untouched, and access is retained so the request can be cancelled. Idempotent — a second request returns the outstanding one without moving the deadline. Refused, with a route to support, when the team has a live paid subscription, has other members, its sign-in organization holds other people’s accounts, or (account kind) the caller is the only owner of another team.

Deletion kind; an empty body means account

Media type application/json
object
kind

Kind is “account” (this team, which must be your home team, and your account) or “team” (this team only, which must not be your home team). Omitted means account.

string
Allowed values: account team

Example

team

Accepted

Media type application/json
object
data
meta
object
request_id
string
timestamp
string
trace_id
string
data
object
already_pending

AlreadyPending marks an idempotent re-request: the response describes the request that was already outstanding, and the clock was NOT reset.

boolean
cancelable
boolean
job
object
attempts
integer
created_at
string
error_message
string
finished_at
string
id
string
kind

Kind is copied from teams.deletion_kind at claim time and decides Progress (DEP-763). Rows from before DEP-763 default to account in the database.

string
Allowed values: account team
next_attempt_at
string
progress
Array<object>
object
counts
object
key
additional properties
integer format: int64
error
string
key
string
label
string
status
string
Allowed values: pending running done failed
requested_by

RequestedBy is copied from teams.deletion_requested_by at claim time, so the job still names the requester after the teams row is anonymised.

string
started_at
string
status
string
Allowed values: pending running completed failed blocked
team_id
string
updated_at
string
kind

Kind is which erasure was requested: account (the team and the requester’s account) or team (this team only). DEP-763.

string
Allowed values: account team
purge_after
string
purged_at
string
requested_at
string
status
string
Allowed values: active pending_deletion purging purged
team_id
string

Example

{
"data": {
"job": {
"kind": "account",
"progress": [
{
"status": "pending"
}
],
"status": "pending"
},
"kind": "account",
"status": "active"
}
}

Bad Request

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Forbidden

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Not Found

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Conflict

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Internal Server Error

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Service Unavailable

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string

Example generated

{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Live a8b7eb1d built