Delete conversation
curl --request DELETE \
--url https://api.instaview.sk/conversations/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/conversations/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instaview.sk/conversations/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instaview.sk/conversations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.instaview.sk/conversations/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.instaview.sk/conversations/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/conversations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deleted": true
}Conversations
Delete Conversation
Permanently deletes a conversation and all associated data (transcripts, recordings, and analyses). This action is irreversible. A scheduled conversation is removed from the processing queue. For one already in progress, the active call continues to its natural end, but all post-call processing is skipped and concurrency slots are released.
DELETE
/
conversations
/
{id}
Delete conversation
curl --request DELETE \
--url https://api.instaview.sk/conversations/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/conversations/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instaview.sk/conversations/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instaview.sk/conversations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.instaview.sk/conversations/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.instaview.sk/conversations/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/conversations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"deleted": true
}DELETE /interviews/{id} is a permanent alias of this endpoint and keeps working unchanged, with the same scopes and the same response. See Resource names.Overview
This endpoint removes a conversation and all of its data — transcripts, recordings, analyses — from your account. Use it for data hygiene, or to clear out test calls.Use Cases
- Drop what is no longer needed: conversations scheduled and then called off
- Clean up test calls: remove test or development conversations from production
- Data management: permanently remove a conversation and everything with it
Impact on Associated Data
Permanent Deletion: This action is irreversible. All associated data (transcripts, recordings, and analysis) will be permanently deleted.
Conversation States
A conversation can be deleted whatever its current status:| Status | Deletable | Notes |
|---|---|---|
SCHEDULED | ✅ Yes | Removed from the queue automatically |
IN_PROGRESS | ✅ Yes | Call continues, but post-call processing is skipped |
COMPLETED | ✅ Yes | Already finished, analysis available |
FAILED | ✅ Yes | Never completed |
CANCELED | ✅ Yes | Already canceled |
Scheduled Conversation Behavior
Deleting a scheduled conversation removes it from the processing queue, so the call is
never placed. Its scheduled call attempts are marked CANCELLED and dequeued with it.
In-Progress Conversation Behavior
Deleting an in-progress conversation lets the live call run to its natural end. All
post-call processing is skipped once it does.
- 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 want the call’s data (transcript, analysis), wait for the conversation to complete
before deleting it. Deleting one mid-call collects nothing at all.
Webhooks
Deletion emits no webhook, including noconversation.cancelled. Deleting removes the resource outright rather than cancelling it, and any of the conversation’s webhook deliveries still pending at that moment are cancelled as part of the same operation.
If you rely on a terminal event to close a conversation out in your own system, record the
deletion at the point you issue this call — no event will arrive afterwards, and a subsequent
GET /conversations/{id} returns 404.Example Usage
async function deleteConversation(conversationId) {
const response = await fetch(
`https://api.instaview.sk/conversations/${conversationId}`,
{
method: "DELETE",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
// Without a deadline a stalled request never settles.
signal: AbortSignal.timeout(10_000),
},
);
if (!response.ok) {
const error = await response.json();
throw new Error(error.message);
}
const data = await response.json();
return data; // { id, deleted: true }
}
// Usage
const deleted = await deleteConversation("550e8400-e29b-41d4-a716-446655440000");
console.log("Conversation deleted:", deleted);
Company Isolation
You can only delete conversations belonging to your API key’s company. Reaching for one from another company returns403 Forbidden.
Required Scopes
This endpoint requires thedelete:conversations scope (or its legacy alias delete:interviews). Ensure your API key has this scope enabled.
Error Scenarios
| Status Code | Error | Description |
|---|---|---|
| 404 | Not Found | Does not exist, or has already been deleted |
| 403 | Forbidden | Belongs to a different company |
| 401 | Unauthorized | Invalid or missing API key |
| 400 | Bad Request | Malformed conversation ID |
Related Resources
Conversations Resource Guide
Learn the conversation lifecycle
List Conversations
View a contact’s conversations
Get Conversation
Read it before you delete it
Create Conversation
Schedule a new call
Authorizations
API key for authentication using Bearer scheme
Path Parameters
Query Parameters
Required for ATS API keys to specify which company to access. Ignored for standard company API keys.