Deletes an interview by ID. Deleted interviews are removed from list and get operations.
Overview
The delete interview endpoint removes an interview from API queries and lists. This helps maintain data hygiene by cleaning up your interview list.
Use Cases
- Remove Canceled Interviews: Clean up interviews that were scheduled but no longer needed
- Clean Up Completed Interviews: Remove old interviews from active lists
- Organization: Maintain a clean interview list by removing irrelevant entries
Impact on Associated Data
Deleting an interview removes it from API queries. The interview will no
longer appear in list queries or be retrievable via the get endpoint.
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
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.
In-Progress Interview Behavior
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.
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
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.
Example Usage
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 |
API key for authentication using Bearer scheme
Interview deleted successfully
The response is of type boolean.