Skip to main content
DELETE
/
contacts
/
{idOrEmail}
Delete Contact
curl --request DELETE \
  --url https://api.lemlist.com/api/contacts/{idOrEmail} \
  --header 'Authorization: Basic <encoded-value>'
import requests

url = "https://api.lemlist.com/api/contacts/{idOrEmail}"

headers = {"Authorization": "Basic <encoded-value>"}

response = requests.delete(url, headers=headers)

print(response.text)
const options = {method: 'DELETE', headers: {Authorization: 'Basic <encoded-value>'}};

fetch('https://api.lemlist.com/api/contacts/{idOrEmail}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
require 'uri'
require 'net/http'

url = URI("https://api.lemlist.com/api/contacts/{idOrEmail}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Basic <encoded-value>'

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.lemlist.com/api/contacts/{idOrEmail}",
  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: Basic <encoded-value>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
{
  "success": true,
  "deletedContactId": "ctc_xW8Ou6C03Csv8vatp"
}
"The authentication you supplied is incorrect"
{
  "success": false,
  "error": {
    "code": "CONTACT_NOT_FOUND",
    "message": "No contact found with the provided id or email"
  }
}
{
  "success": false,
  "error": {
    "code": "CONTACT_DELETE_BLOCKED",
    "message": "Contact cannot be removed if an enrichment is in progress"
  }
}
Removes a lemlist contact resolved by its id (ctc_xxx) or email. Only the lemlist record is deleted — no CRM-side propagation is performed. Deletion cascades: the contact’s leads, opportunities, contact-list associations, inbox conversations and activities are removed alongside it. The request fails with 409 CONTACT_DELETE_BLOCKED when the contact cannot be deleted right now — for example while an enrichment is still running on it (retry once it finishes); the response error.message states the specific reason. A missing contact returns 404 CONTACT_NOT_FOUND.
There is no soft-delete or undo. Once deleted, the contact and its associated leads, opportunities, list memberships, inbox conversations and activities are gone.

Authorizations

Authorization
string
header
required

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Path Parameters

idOrEmail
string
required

The unique identifier or email of the contact

Response

Contact deleted.

success
boolean
required
deletedContactId
string
required

ID of the deleted lemlist contact.