Capacity (Seats)
Bulk Allocate Seats
Allocate up to 100 users to a tenant’s subscription in one atomic operation.
POST
Inserts multiple seat allocations in a single call, up to the subscription’s current
capacity_units. No proration is triggered — if the batch would exceed capacity, users are split into allocated and rejected lists. Upgrade capacity first via Proration Checkout, then retry the rejected IDs.
Already-active users are silently skipped and returned in skipped — the call is safe to retry.
Request Body
The external tenant ID from your application.
List of users to allocate. Maximum 100 users per request. Each entry must have a unique
externalUserId — duplicates within the same batch are rejected.Your application’s user ID. Must be non-empty and unique within the batch.
User’s email address (stored for audit and display purposes).
User’s display name.
Arbitrary key-value pairs attached to every allocation created in this batch.
Authentication
Requires a secret key (Authorization: Bearer sk_live_...) or service key (x-service-key).
Response
Returns HTTP 200 when all users were allocated or skipped. Returns HTTP 207 Multi-Status when at least one user was rejected due to capacity limits.| Field | Type | Description |
|---|---|---|
allocated | string[] | externalUserId values inserted this call |
skipped | string[] | Already active — not re-inserted |
rejected | string[] | Would exceed capacity_units — not inserted |
capacity.activeCount | number | Active seat count after this operation |
capacity.capacityUnits | number | Total seat limit on the subscription |
message | string | Present when users were rejected — explains the limit |