Endpoints // Lists
Take members out of a List with their stored data, or dismiss Pending Intake lines, for free.
Credits
Free.
Introduction
The Remove members endpoint takes List Members out of a List, with the data the List stored for them, and dismisses Pending Intake lines. Removing members never dismisses Pending Intake: send the pendingIds of the lines you want gone.
Removing is free (0 credits), and nothing is refunded: credits spent on a member stay spent. A person removed then added again is charged again at the price of its Signal.
The API key needs the lists permission (see API key management).
Authorization
| Name | Type | Required | Description |
|---|---|---|---|
apikey | string | Yes | Your API key from the developer dashboard. Pass it via Authorization: Bearer YOUR_API_KEY header. |
Request body
The List is named in the path: DELETE /v2/lists/:listId/members. Send at least one id in either array, and at most 25,000 ids in both together.
| Name | Type | Required | Description |
|---|---|---|---|
memberIds | string | Conditional | Member ids (UUID) to remove, the id of rows with kind: "member" |
pendingIds | string | Conditional | Pending Intake ids (UUID) to dismiss, the id of rows with kind: "pending" |
Response structure
| Field | Type | Description |
|---|---|---|
success | boolean | true if the request was processed |
error | null | Always null on success |
dataobjectWhat was removed
Show child attributesHide child attributes
| Field | Type | Description |
|---|---|---|
removed | number | Members removed |
dismissed | number | Pending Intake lines dismissed |
An id that is not on the List is left out of the counts. quotas and metadata are the blocks of every V2 response: see Usage.
Errors
| Status | Code | Meaning |
|---|---|---|
400 | LIST_INVALID_INPUT | Neither memberIds nor pendingIds holds an id, or they hold more than 25,000 ids together |
404 | LIST_NOT_FOUND | No List with this id in your workspace |
404 | LISTS_NOT_ACTIVATED | The workspace has never had a List |
422 | VALIDATION_ERROR | An id is not a UUID |
Code examples
Code Examples
curl -X DELETE https://api.reversecontact.com/v2/lists/3f6c2a8e-1b4d-4f0a-9c7e-5d2b8a1e6f40/members \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"memberIds": ["9b1e4c7a-2d3f-4e8a-b6c5-0a1f2e3d4c5b"],
"pendingIds": ["7e8f9a0b-1c2d-4e3f-8a4b-5c6d7e8f9a0b"]
}'const listId = "3f6c2a8e-1b4d-4f0a-9c7e-5d2b8a1e6f40";
const response = await fetch(`https://api.reversecontact.com/v2/lists/${listId}/members`, {
method: "DELETE",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
memberIds: ["9b1e4c7a-2d3f-4e8a-b6c5-0a1f2e3d4c5b"],
pendingIds: ["7e8f9a0b-1c2d-4e3f-8a4b-5c6d7e8f9a0b"]
})
});
const { data } = await response.json();
console.log(`${data.removed} removed, ${data.dismissed} dismissed`);import requests
list_id = "3f6c2a8e-1b4d-4f0a-9c7e-5d2b8a1e6f40"
response = requests.delete(
f"https://api.reversecontact.com/v2/lists/{list_id}/members",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"memberIds": ["9b1e4c7a-2d3f-4e8a-b6c5-0a1f2e3d4c5b"],
"pendingIds": ["7e8f9a0b-1c2d-4e3f-8a4b-5c6d7e8f9a0b"]
}
)
data = response.json()["data"]
print(f"{data['removed']} removed, {data['dismissed']} dismissed")Example response
Example Response
{
"success": true,
"data": {
"removed": 1,
"dismissed": 1
},
"error": null,
"quotas": {
"creditsConsumed": 0,
"workspace": {
"id": "ws_abc123",
"credits": { "total": 10000, "used": 4522, "left": 5478 }
}
},
"metadata": {
"requestId": "req_r1e2m3o4v5e6",
"executionTimeMs": 33
}
}