/v3/users/. This page gives you the conceptual walkthrough — see the API reference for full request / response schemas.
List users
GET /v3/users/
Returns a paginated list of users for your application. Supports filters on status, search, date range, and more.
- Sync a subset of users to your data warehouse each day.
- Find flagged users for an analyst queue.
- Search users by display name.
Get a user
GET /v3/users/{vendor_data}/
Retrieve a single user by vendor_data. Returns the full data model including aggregated counters.
vendor_data in the URL is case-sensitive. Always pass the exact value you used on session creation.Create a user
POST /v3/users/create/
Create a User entity before any session runs. Useful for:
- Seeding metadata or custom fields before the customer verifies.
- Setting an initial status (e.g.
FLAGGEDwhile your onboarding team reviews manual documents). - Pre-loading users from an existing database so you have a complete roster from day one.
vendor_data already exists, the call returns a conflict error — use PATCH to update instead.
Update a user
PATCH /v3/users/{vendor_data}/
Update mutable profile fields. Most fields derived from verified sessions are read-only — attempting to change them via PATCH will either be ignored or flagged in the audit log.
Mutable fields: display_name, metadata, tags.
Read-only after verification: full_name, date_of_birth, portrait_image, all aggregate counters, features map.
user.data.updated webhook with the changed_fields array.
Change status
PATCH /v3/users/{vendor_data}/update-status/
Move a user between ACTIVE, FLAGGED, and BLOCKED. Status changes propagate to future sessions and transactions.
| From → to | Common trigger |
|---|---|
ACTIVE → FLAGGED | Transaction rule, analyst review, ongoing AML hit |
ACTIVE → BLOCKED | Confirmed fraud, session declined with auto-block, blocklist match |
FLAGGED → ACTIVE | Analyst cleared review |
BLOCKED → ACTIVE | Manual unblock by an analyst |
user.status.updated webhook.
Delete users (batch)
POST /v3/users/delete/
Delete one or more users. History (sessions, transactions, audit trail) is retained for your configured data retention period, then hard-deleted.
Permission model
All/v3/users/* endpoints are scoped by the users permission resource. Your API key’s role determines which operations are allowed:
| Role | list | get | create | update | update-status | delete |
|---|---|---|---|---|---|---|
| OWNER | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ADMIN | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| COMPLIANCE_OFFICER | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ |
| DEVELOPER | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| READER | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Rate limits and idempotency
- All
/v3/users/*endpoints are subject to the standard rate limits. createis not idempotent — retrying with the samevendor_datareturns a conflict. De-dupe on your side, or alwaysGETfirst.deleteis idempotent — deleting an already-deleted user is a no-op.
Webhooks fired by these operations
| Operation | Webhook |
|---|---|
create | user.data.updated |
update | user.data.updated (with changed_fields) |
update-status | user.status.updated |
delete | user.data.updated (with deleted_at set) |
Next steps
Data model
Full field reference.
List API
GET /v3/users/ schema.
Create API
POST /v3/users/create/ schema.