Starts a background job that cascade-deletes every contact matching the supplied filter — for each contact it also deletes the org’s conversations and messages for that contact, fires assignee notifications, emits contact_removed socket events, and writes manual-event audit entries (CONTACT_DELETE). The handler responds 202 immediately with a jobId; the caller should poll GET /api/contacts/bulk-job/{jobId} for progress. The job is registered synchronously before the response is sent so the first poll never gets a 404.
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.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
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.
One or more pipeline-stage IDs. Required unless orgWide is true.
Which collection to target. Defaults to Contact.
Contact, Application When true, ignore stageIds and run across the whole organization.
Owner-based scope (e.g. owned, unowned) — same semantics as the Contacts list view.
Optional advanced filter object (same shape as the Contacts list view).