Delete contact
curl --request DELETE \
--url https://api.instaview.sk/contacts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/contacts/{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/contacts/{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/contacts/{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/contacts/{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/contacts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/contacts/{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
}Contacts
Delete Contact
Permanently deletes a contact that belongs to the API key’s company, whether or not it holds job assignments. The delete cascades: every conversation the contact had, with its transcripts, recordings and analyses, is deleted too. This cannot be undone.
DELETE
/
contacts
/
{id}
Delete contact
curl --request DELETE \
--url https://api.instaview.sk/contacts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instaview.sk/contacts/{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/contacts/{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/contacts/{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/contacts/{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/contacts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.instaview.sk/contacts/{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 /candidates/{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 contact and their personal data from your account outright. It is a hard delete, not a flag.Use Cases
- Remove duplicates: clean up a contact entered twice
- GDPR compliance: satisfy an erasure request
- Cleanup: drop contacts you no longer hold a reason to keep
What Else Is Deleted
Deleting a contact deletes every conversation they had. Their transcripts, recordings and
analyses go with them, along with their job assignments. Nothing of theirs is readable through
the API afterwards: a later
GET /conversations?contactId=… for that contact returns nothing,
and there is no endpoint that brings any of it back.If you need the call history, export it before you issue the delete.Deleted rows are archived internally first — a deletion audit log and an archive table that
exist for our own compliance obligations. Neither is reachable through the public API, so
neither is a way for you to get the data back.
GDPR Considerations
This is the deletion the API offers, and it is the one to reach for on an erasure request. Note
the internal archive above before you promise a data subject that nothing remains anywhere: if
your obligation is erasure from our systems rather than from your integration, raise it with
our support team rather than assuming this call has satisfied it.
Company Isolation
You can only delete contacts belonging to your API key’s company. Ownership is validated first.Error Scenarios
- 404 Not Found: the contact does not exist, or has already been deleted
- 403 Forbidden: the contact belongs to a different company
Related Resources
Contacts Resource Guide
Learn about managing contacts
List Contacts
Browse your contacts
Create Contact
Create a new contact
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.