Skip to main content
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.
This endpoint is never retried automatically by the SDK to prevent duplicate allocations on network errors. Implement your own retry logic using the skipped list for idempotency.

Request Body

string
required
The external tenant ID from your application.
BulkAllocateSeatUser[]
required
List of users to allocate. Maximum 100 users per request. Each entry must have a unique externalUserId — duplicates within the same batch are rejected.
string
required
Your application’s user ID. Must be non-empty and unique within the batch.
string
User’s email address (stored for audit and display purposes).
string
User’s display name.
object
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.