Docs
API ReferenceReferenceEnd users

Create or update an end user

POST
/end-users

Idempotent on email: the first call creates the account (201), repeat calls update it in place (200). Re-provisioning a revoked account restores it. A deleted account is never restored: provisioning its email answers 409 deleted_identity. Optionally assigns one or more plans (each becomes its own subscription with its own credit pool; access is the union of held plans) and adds the person to groups (groupIds), whose access they inherit. Nothing is emailed unless sendEmail is true.

Validation runs before any write: a request failing with tier_not_found, group_not_found, plan_group, grants_unsupported, grant_target_not_found, deleted_identity, or live_paid_subscription leaves no partial account behind.

grants (per-user access grants) is deprecated. Organizations that manage access with groups refuse it with grants_unsupported; give a group the access and add the person to it instead.

Requires the end_users:write scope.

AuthorizationBearer <token>

An organization API key, created from a Portal's Webhooks page (Provisioning API card). The secret is shown once at creation and stored only as a hash. Keys are organization-wide and carry scopes (end_users:read, end_users:write). Rate limit: 120 requests per minute per key (sliding 60-second window).

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/end-users" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com"  }'
{  "endUser": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "email": "user@example.com",    "fullName": "string",    "createdAt": "2019-08-24T14:15:22Z"  },  "created": true,  "subscriptions": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "tierPlanId": "5e2e90db-0903-4f92-af9a-07e1540bc709",      "tierPlanName": "string",      "status": "string",      "creditAllowance": 0,      "creditsUsed": 0,      "creditsResetAt": "2019-08-24T14:15:22Z"    }  ],  "groupsJoined": [    "5453f963-0eb2-4036-8d37-94dde332299c"  ],  "grantsCreated": 0}