Skip to main content
DELETE
/
contacts
/
lists
/
{listId}
/
entities
Remove Contacts from List
curl --request DELETE \
  --url https://api.lemlist.com/api/contacts/lists/{listId}/entities \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "contactIds": [
    "ctc_abc123def456ghi78",
    "ctc_xyz789uvw012rst34"
  ]
}
'
{
  "message": "Contacts removed from list successfully",
  "removedCount": 2
}
Removes existing contacts from a static contact list. Contacts that are not in the list are silently skipped. The removedCount field reflects the number of list associations that were actually removed.
You cannot remove contacts from a dynamic list. Dynamic lists are auto-populated based on filter rules configured in the lemlist UI.
Removing a contact from a list only affects list membership — it does not delete the contact from your CRM.

Typical workflow

  1. Find the list — use GET /contacts/lists to find the list ID (clt_xxx)
  2. Find contacts — use GET /contacts with search, email, or listId to get contact IDs (ctc_xxx)
  3. Remove contacts from the list — call this endpoint with the contact IDs and list ID

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

listId
string
required

The unique identifier of the contact list (clt_xxx format)

Pattern: ^clt_[a-zA-Z0-9]+$

Body

application/json
contactIds
string[]
required

Array of contact IDs to remove from the list (ctc_xxx format). Maximum 1,000 per request.

Maximum array length: 1000
Pattern: ^ctc_[a-zA-Z0-9]+$

Response

Contacts removed from list successfully

message
string
removedCount
integer

Number of list associations actually removed. Contacts that were not in the list are not counted.