> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alex.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Candidate

> Permanently deletes a candidate and everything associated with them. This is **irreversible** — see the warning on this page for the full list of what is destroyed.

Identify the candidate with exactly one of `candidateId`, `candidateExternalId`, or `email`. Supplying zero or more than one returns 400. All lookups are scoped to the company owning the API key, so you can never delete another company's records.

`candidateExternalId` is not guaranteed unique — if several candidates in your company share one, every match is deleted and `deletedCount` reflects the total.

The response returns a snapshot of each deleted record. This is your only copy: once the call returns, the data is gone from Alex. Note that `assets.cleanupSucceeded` is `false` when the database records were removed but some stored files could not be — alert on it if you must guarantee media removal.

<Warning>
  **This action is irreversible.** Deleting a candidate permanently destroys, with no undo and no
  way for Alex support to recover it:

  * the candidate record and all of their contact details
  * every interview session and application belonging to them
  * all interview transcripts, scores, feedback, and generated reports
  * their stored resume file
  * all interview recordings — audio and video

  There is no soft delete, no trash, and no recovery window. Once the call returns, the data is
  gone. Use the snapshot in the response as your own record of what was removed.
</Warning>

<Note>
  Identify the candidate with **exactly one** of `candidateId`, `candidateExternalId`, or `email`. Supplying none — or more
  than one — returns a `400`.
</Note>

## Scoping

Every lookup is scoped to the company that owns the API key. You cannot delete a candidate
belonging to another company, and an identifier that exists elsewhere in Alex but not in your
company returns `404`.

## Duplicate external IDs

`candidateExternalId` is not required to be unique. If several candidates in your company share
one, **all** of them are deleted and `deletedCount` reports the total. Use `candidateId` when you
need to target exactly one record.

## Confirming media was removed

Database records and stored files are deleted separately. If the records are removed but some
files cannot be, the call still succeeds and `data.assets.cleanupSucceeded` is `false`. If you
must guarantee that recordings and resumes are gone — for a data-retention or GDPR obligation, for
example — alert on that flag rather than on the HTTP status alone.


## API Specification

The full API specification for this endpoint is available in the [documentation index](https://docs.alex.com/llms.txt).
