curl
Users
Batch Delete Users
Hard delete users via qs.delete() — rows removed permanently. For everyday blocking prefer Update User Status with BLOCKED.
POST
curl
Overview
Deletes one or more User entities. Session history, transactions, and audit logs are retained for your application’s data retention period before hard deletion.When to use it
- Right-to-be-forgotten requests (GDPR / CCPA).
- Clean-up of test users during QA.
- Deprovisioning users removed from your own platform.
Notes
- Accepts a list of
vendor_datavalues ordidit_internal_idvalues. - Idempotent — deleting an already-deleted user is a no-op and returns success for that row.
- Returns per-row results so you can detect unknown IDs or rows that could not be deleted.
- Emits a
user.data.updatedwebhook withdeleted_atset. - Faces, documents, and sessions linked to the user are deleted alongside and removed from the face-search index.
Permissions
Role must grantdelete:users. This is typically reserved for OWNER and ADMIN.
Related
Authorizations
Body
application/json
Provide exactly one of vendor_data_list, didit_internal_id_list, or delete_all: true.
Your own identifiers to delete. Matching is case-insensitive after normalisation.
Didit's internal UUIDs (didit_internal_id) to delete.
If true, deletes every user in the application. Cannot be combined with the list selectors.
Response
Users deleted. Returns the number of rows actually removed.
Number of users deleted (excludes vendor_data values that didn't match anything).