User Management API

User Records and Admin Toolsfor Your Product

Every user is a record in your app's database, with your own typed fields and indexes, ready for support, CRM and analytics queries.

Your Fields on Every User

Add typed fields and indexes to the users collection and query it like any other collection. Email stays unique.

collections/_users.json
{
  "schema": {
    "strict": false,
    "rules": [
      { "field": "plan", "type": "string", "enum": ["free", "pro", "team"] },
      { "field": "tag", "type": "string", "max": 40 }
    ]
  },
  "indexes": ["plan", "tag"]
}

Contacts Without a Password

Create a person who has never signed in, from a newsletter, an order or an import. When they sign in with that email, they keep the same record.

POST /v1/_users 201
{
  "email": "[email protected]",
  "name": "Ana Ruiz",
  "fields": { "plan": "free", "tag": "newsletter" }
}

Support Impersonation

An administrator sees your app exactly as one user does, then returns to their own permissions with one call.

Impersonate, then exit
POST /v1/_users/42/impersonate     200
POST /v1/_users/impersonate/exit  200

Lifecycle Controls

Lock, disable, soft delete or erase a user. An email change moves the sign-in and the record together and ends every session.

Update, change email, delete, erase
PATCH  /v1/_users/42          200
POST   /v1/_users/42/email    200
DELETE /v1/_users/42          200
DELETE /v1/_auth/me           200

Accounts and Teams

Substrio accounts carry members with owner, admin and developer roles, invite links you can revoke and an audit trail of every change.

Invite, add, require MFA, audit
POST   /v1/_accounts/7/invites         201
PUT    /v1/_accounts/7/members/42      200
PUT    /v1/_accounts/7/mfa             200
GET    /v1/_accounts/7/audit           200