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

# Delete Candidate

> Soft-deletes a candidate that belongs to the API key's company. Candidates can be deleted regardless of job association status.

Permanently deletes a candidate and their profile. **This action cannot be undone.**

## Overview

The delete candidate endpoint permanently removes a candidate's information and profile from your account. This helps maintain a clean candidate database and ensures data hygiene.

## Use Cases

* **Remove Duplicates**: Clean up duplicate candidate entries
* **GDPR Compliance**: Handle data deletion requests for permanent removal
* **Pipeline Cleanup**: Remove candidates who are no longer in consideration
* **Data Management**: Maintain a clean candidate database

## Permanent Deletion Behavior

<Info>
  Deleting a candidate permanently removes their profile and all associated personal data from your account. This action is irreversible.
</Info>

## Impact on Existing Interviews

<Warning>
  Deleting a candidate does not affect existing interviews. Those interviews retain their association with the candidate for historical accuracy. However, you cannot create new interviews for a deleted candidate.
</Warning>

## GDPR Considerations

<Info>
  For GDPR "right to be forgotten" requests requiring permanent deletion, contact support. Soft deletion maintains audit trails while removing candidates from active operations.
</Info>

## Company Isolation

You can only delete candidates that are associated with jobs in your API key's company. The API validates company ownership before allowing deletion.

## Error Scenarios

* **404 Not Found**: Candidate doesn't exist or has already been deleted
* **403 Forbidden**: Candidate's job belongs to a different company

## Related Resources

<CardGroup cols={2}>
  <Card title="Candidates Resource Guide" icon="user" href="/guides/resources/candidates">
    Learn about candidate management
  </Card>

  <Card title="List Candidates" icon="list" href="/api-reference/candidates/list-candidates">
    View all active candidates
  </Card>

  <Card title="Create Candidate" icon="plus" href="/api-reference/candidates/create-candidate">
    Create new candidates
  </Card>
</CardGroup>


## OpenAPI

````yaml DELETE /candidates/{id}
openapi: 3.0.0
info:
  title: InstaView API
  description: |-
    InstaView API Documentation

    ## Authentication

    All endpoints require API key authentication using Bearer token:
    ```
    Authorization: Bearer sk_your_api_key_here
    ```

    ## API Key Management

    The API Key module provides comprehensive key management for:
    - **Direct Client Keys**: Company-scoped keys for your applications
    - **ATS Partner Keys**: Resource-scoped keys for ATS integrations

    ### Key Features
    - HMAC-SHA256 hashing for API key storage
    - Configurable rate limiting
    - Comprehensive audit logging
    - Company-level isolation
    - Resource scoping for ATS partners
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.instaview.sk
    description: Production API Gateway
security: []
tags: []
paths:
  /candidates/{id}:
    delete:
      tags:
        - Candidates
      summary: Delete candidate
      description: >-
        Soft-deletes a candidate that belongs to the API key's company.
        Candidates can be deleted regardless of job association status.
      operationId: PublicCandidatesController_deleteCandidate_v1
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
            format: uuid
        - name: companyId
          required: false
          in: query
          description: >-
            Required for ATS API keys to specify which company to access.
            Ignored for standard company API keys.
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicBooleanResponseDto'
      security:
        - bearer: []
components:
  schemas:
    PublicBooleanResponseDto:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Success
        data:
          type: boolean
        traceId:
          type: string
          nullable: true
      required:
        - statusCode
        - message
        - data
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: API key for authentication using Bearer scheme

````