Skip to main content
DELETE
/
api
/
contacts
/
query-bulk-delete
Bulk-delete all matching contacts (async)
curl --request DELETE \
  --url https://your-instance.example.com/api/contacts/query-bulk-delete \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "stageIds": [
    "64b2c3d4e5f60012345678aa"
  ],
  "pipelineType": "Contact",
  "ownerFilter": "unowned",
  "advancedParams": {
    "createdAfter": "2026-01-01T00:00:00.000Z"
  }
}
'
{
  "jobId": "b09c2c61-2f8f-4f02-9c1b-2f23a3a2f9c1",
  "message": "Bulk delete started"
}

Documentation Index

Fetch the complete documentation index at: https://docs.tetherai.ca/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Shared filter shape used by query-count, query-bulk-move, query-bulk-delete, and query-bulk-export. Either supply stageIds[] OR set orgWide: true. pipelineType selects whether the operation runs against the Contact or Application collection.

stageIds
string[]

One or more pipeline-stage IDs. Required unless orgWide is true.

pipelineType
enum<string>

Which collection to target. Defaults to Contact.

Available options:
Contact,
Application
orgWide
boolean

When true, ignore stageIds and run across the whole organization.

ownerFilter
string

Owner-based scope (e.g. owned, unowned) — same semantics as the Contacts list view.

advancedParams
object

Optional advanced filter object (same shape as the Contacts list view).

Response

Bulk delete job started

202 Accepted response — the delete runs in the background. Poll GET /api/contacts/bulk-job/{jobId} for progress.

jobId
string
required

UUID to use with GET /api/contacts/bulk-job/{jobId}.

message
string
required