---
title: "Delete person"
method: DELETE
path: "/admin/persons/{id}"
tags: ["person"]
---

# Delete person

`DELETE /admin/persons/{id}`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/admin/persons/{id}`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

Cascading soft-delete of a cross-tenant PERSON, not a single account. A tenant_admin caller only removes that person's membership in the ADMIN'S OWN tenant — other tenants' accounts for the same person survive untouched; a system-admin (cross_tenant) caller deletes the person platform-wide. reason is optional and recorded for audit.

## Path parameters

- `id` string, required

## Request body

- InternalDeliveryHttpHandlerReasonRequest
  - `reason` string

## Response `200`

OK

- InternalDeliveryHttpHandlerPersonCascadeResponse
  - `data` EnforcerV3InternalDomainPersonCascadeResult
    - `accounts_soft_deleted` integer
    - `devices_unregistered` integer
    - `links_soft_deleted` integer
    - `person_deleted` boolean: PersonDeleted is false when the person row was KEPT because they still hold live accounts in other tenants. A tenant-scoped delete removes the membership, not the human.
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

---

[API](https://skmtc.dev/instruxi/apis/enforcer-api.md) · [All operations](https://skmtc.dev/instruxi/apis/enforcer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/instruxi/apis/enforcer-api/revisions/fa82bc1becc0?raw)
