curl --request DELETE \
--url https://api.instantly.ai/api/v2/ai-agents/sales/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instantly.ai/api/v2/ai-agents/sales/{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.instantly.ai/api/v2/ai-agents/sales/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.delete("https://api.instantly.ai/api/v2/ai-agents/sales/{id}")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/ai-agents/sales/{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.instantly.ai/api/v2/ai-agents/sales/{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))
}{
"id": "01a08b36-69b1-7dc6-96ad-2a5bba24fa7c",
"name": "Test AI Agent",
"status": 1,
"timestamp_created": "2026-09-10T12:06:34.161Z",
"timestamp_updated": "2026-09-10T12:06:34.161Z",
"configuration_mode": "copilot",
"type": 1
}{
"statusCode": 400,
"error": "Bad Request",
"message": "body must have required property 'name'"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 409,
"error": "Conflict",
"message": "The resource already exists"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}Delete an AI Sales Agent
Delete an AI Sales Agent. Returns the core fields of the deleted agent. Fails with a conflict while campaigns are still linked to the agent.
Requires one of the following scopes: ai_sdr:delete, ai_sdr:all, all:delete, all:all
curl --request DELETE \
--url https://api.instantly.ai/api/v2/ai-agents/sales/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instantly.ai/api/v2/ai-agents/sales/{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.instantly.ai/api/v2/ai-agents/sales/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.delete("https://api.instantly.ai/api/v2/ai-agents/sales/{id}")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/ai-agents/sales/{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.instantly.ai/api/v2/ai-agents/sales/{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))
}{
"id": "01a08b36-69b1-7dc6-96ad-2a5bba24fa7c",
"name": "Test AI Agent",
"status": 1,
"timestamp_created": "2026-09-10T12:06:34.161Z",
"timestamp_updated": "2026-09-10T12:06:34.161Z",
"configuration_mode": "copilot",
"type": 1
}{
"statusCode": 400,
"error": "Bad Request",
"message": "body must have required property 'name'"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 409,
"error": "Conflict",
"message": "The resource already exists"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
AI Sales Agent ID
"01a08b36-b277-7624-9f8a-290035be2eba"
Response
The deleted AI Sales Agent
The fields shared by every AI agent type
Unique identifier for the AI agent
"01a08b36-69b1-7dc6-96ad-2a5bba24fa7c"
Name of the AI Agent
"Test AI Agent"
Status of the AI Agent
-1, 0, 1 1
Timestamp when the AI agent was created
"2026-09-10T12:06:34.161Z"
Timestamp when the AI agent was updated
"2026-09-10T12:06:34.161Z"
How much autonomy the agent runs with. Null for agent types that have no autonomy setting, and for agents whose mode is not configured yet.
copilot, fully_automatic, null "copilot"
Type of the AI Agent
1, 2, 3, 4, 6, 7, 8, 9, 10, 11 1