> ## 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 Interview

> Permanently deletes an interview and all associated data (transcripts, recordings, and analyses). This action is irreversible. Scheduled interviews are automatically removed from the processing queue. For in-progress interviews, the active call continues until completion, but all post-call processing is skipped and concurrency slots are released.

Permanently deletes an interview and its associated data. **This action cannot be undone.**

## Overview

The delete interview endpoint permanently removes an interview and all its data (transcripts, recordings, analyses) from your account. This is useful for data hygiene or removing unwanted tests.

## Use Cases

* **Remove Canceled Interviews**: Clean up interviews that were scheduled but no longer needed
* **Clean Up Test Interviews**: Remove test or development interviews from production
* **Data Management**: Permanently remove interviews and all associated data

## Impact on Associated Data

<Warning>
  **Permanent Deletion**: This action is irreversible. All associated data (transcripts, recordings, and analysis) will be permanently deleted.
</Warning>

## Interview States

Interviews can be deleted regardless of their current status:

| Status        | Deletable | Notes                                               |
| ------------- | --------- | --------------------------------------------------- |
| `SCHEDULED`   | ✅ Yes     | Interview is removed from queue automatically       |
| `IN_PROGRESS` | ✅ Yes     | Call continues, but post-call processing is skipped |
| `COMPLETED`   | ✅ Yes     | Interview finished, analysis available              |
| `FAILED`      | ✅ Yes     | Interview failed to complete                        |
| `CANCELED`    | ✅ Yes     | Already canceled                                    |

## Scheduled Interview Behavior

<Info>
  When you delete a **scheduled** interview, it is automatically removed from
  the processing queue. The call will not be initiated. Any scheduled call
  attempts are marked as **CANCELLED** and removed from the queue.
</Info>

## In-Progress Interview Behavior

<Warning>
  Deleting an **in-progress** interview allows the active call to **continue
  naturally until completion**. However, all post-call processing will be
  **skipped** when the call ends.
</Warning>

When you delete an in-progress interview:

* The active phone call **continues** until it ends naturally
* When the call ends, **no post-call processing** occurs:
  * No transcript generation
  * No analysis or scoring
  * No completion webhooks
* Concurrency slots are released when the call ends

<Tip>
  If you need the interview data (transcripts, analysis), wait until the
  interview completes before deleting it. Deleting an in-progress interview
  prevents any data collection for that call.
</Tip>

## Webhooks

Deletion emits **no webhook**, including no [`interview.cancelled`](/guides/webhooks#interview-cancelled-payload). Deleting removes the resource outright rather than cancelling it, and any of the interview's webhook deliveries still pending at that moment are cancelled as part of the same operation.

<Warning>
  If you rely on a terminal event to close the interview out in your own system,
  record the deletion at the point you issue this call — no event will arrive
  afterwards, and a subsequent `GET /interviews/{id}` returns `404`.
</Warning>

## Example Usage

```javascript theme={null}
async function deleteInterview(interviewId) {
  const response = await fetch(
    `https://api.instaview.sk/interviews/${interviewId}`,
    {
      method: "DELETE",
      headers: {
        Authorization: `Bearer ${apiKey}`,
        "Content-Type": "application/json",
      },
    }
  );

  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.message);
  }

  const { data } = await response.json();
  return data; // Returns true on success
}

// Usage
const deleted = await deleteInterview("550e8400-e29b-41d4-a716-446655440000");
console.log("Interview deleted:", deleted);
```

## Company Isolation

You can only delete interviews that belong to your API key's company. Attempting to delete an interview from another company will result in a `403 Forbidden` error.

## Required Scopes

This endpoint requires the `delete:interviews` scope. Ensure your API key has this scope enabled.

## Error Scenarios

| Status Code | Error        | Description                                         |
| ----------- | ------------ | --------------------------------------------------- |
| 404         | Not Found    | Interview doesn't exist or has already been deleted |
| 403         | Forbidden    | Interview belongs to a different company            |
| 401         | Unauthorized | Invalid or missing API key                          |
| 400         | Bad Request  | Invalid interview ID format                         |

## Related Resources

<CardGroup cols={2}>
  <Card title="Interviews Resource Guide" icon="microphone" href="/guides/resources/interviews">
    Learn about interview management and lifecycle
  </Card>

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

  <Card title="Get Interview" icon="eye" href="/api-reference/interviews/get-interview">
    Retrieve interview details before deletion
  </Card>

  <Card title="Create Interview" icon="plus" href="/api-reference/interviews/create-interview">
    Schedule new interviews
  </Card>
</CardGroup>


## OpenAPI

````yaml DELETE /interviews/{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:
  /interviews/{id}:
    delete:
      tags:
        - Interviews
      summary: Delete interview
      description: >-
        Permanently deletes an interview and all associated data (transcripts,
        recordings, and analyses). This action is irreversible. Scheduled
        interviews are automatically removed from the processing queue. For
        in-progress interviews, the active call continues until completion, but
        all post-call processing is skipped and concurrency slots are released.
      operationId: PublicInterviewsController_deleteInterview_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: Interview deleted successfully
          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

````