Provisioning API · Internal testing only
listPersonas
const url = 'https://api.builders.ac/api/provisioning/v1alpha1/personas?limit=20&order=created_at.asc';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.builders.ac/api/provisioning/v1alpha1/personas?limit=20&order=created_at.asc' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Opaque cursor returned as next_cursor by a previous Persona page for the same Account, order, and filters.
Creation-time order with ID as the tie-breaker. Legacy rows with null created_at always sort last.
One to 100 comma-separated, case-insensitive Workspace TypeIDs. Omit to span every accessible workspace.
Exact UTF-8 end-customer reference; U+0000 is rejected.
Exact, case-sensitive UTF-8 partner identifier; U+0000 is rejected.
Case-insensitive literal UTF-8 substring search over first name, last name, and full name; U+0000 is rejected.
Inclusive ISO-8601 UTC lower bound (Z or +00:00).
Inclusive ISO-8601 UTC upper bound (Z or +00:00); must not precede created[gte].
Responses
Section titled “Responses”Persona page
object
object
Canonical lowercase TypeID. Legacy Personas can encode UUIDv4; new Personas created through this API encode UUIDv7.
New API writes are non-blank; a legacy row can contain an empty value.
New API writes are non-blank; a legacy row can contain an empty value.
Opaque and case-sensitive; unique per owning Account within the Persona resource type.
Null only for legacy rows; new API-created Personas always carry a timestamp.
Null only for legacy rows; new API-created Personas always carry a timestamp.
Example
{ "data": [ { "id": "per_01k5n7qd2vb8ye4ka3mzt9rf6x", "object": "persona", "workspace_id": "wsp_01k5n2rf8bd3xa9e7m4jt6vq5h", "first_name": "Ava", "last_name": "Stone", "external_id": "crm-8421", "created_at": "2026-04-15T09:15:04Z", "updated_at": "2026-04-16T11:02:37Z" } ], "has_more": true, "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNC0xNVQwOToxNTowNFoiLCJpZCI6ImluYl8wMWs1bmM5dGU0dnI3YmQyaHE4eW0zeHo2YSJ9"}Headers
Section titled “Headers”The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.
Authentication required. The example shows authentication_required; this status is also answered with invalid_api_key. Branch on code, not on the status.
object
Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.
object
Example
{ "type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/authentication_required", "title": "Authentication required", "status": 401, "detail": "Provide an active Provisioning API Key as a Bearer token.", "code": "authentication_required", "retryable": false, "correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"}Headers
Section titled “Headers”The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.
Account inactive. The example shows account_inactive; this status is also answered with insufficient_proof. Branch on code, not on the status.
object
Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.
object
Example
{ "type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/account_inactive", "title": "Account inactive", "status": 403, "detail": "This account is inactive.", "code": "account_inactive", "retryable": false, "correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"}Headers
Section titled “Headers”The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.
Validation failed. The example shows validation_error; this status is also answered with idempotency_mismatch, invalid_sealed_value, mailbox_upload_unavailable, provider_credentials_invalid, domains_not_bound, sequencer_targets_mixed. Branch on code, not on the status.
object
Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.
object
Example
{ "type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/validation_error", "title": "Validation failed", "status": 422, "detail": "One or more request fields are invalid.", "code": "validation_error", "retryable": false, "correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3", "errors": { "display_name": [ "The display name must not be blank." ] }}Headers
Section titled “Headers”The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.
Rate limit exceeded. The example shows rate_limit_exceeded.
object
Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.
object
Example
{ "type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/rate_limit_exceeded", "title": "Rate limit exceeded", "status": 429, "detail": "Too many requests were made for this policy.", "code": "rate_limit_exceeded", "retryable": true, "correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3", "retry_after": "2026-04-15T09:16:04Z"}Headers
Section titled “Headers”The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.
Service unavailable. The example shows service_unavailable; this status is also answered with encryption_keys_unavailable, provider_unreachable. Branch on code, not on the status.
object
Extensible enum. Branch on this, never on title. New codes may appear at any time, so treat an unrecognised one as its HTTP status; GET /problems lists every code this version can answer with, and GET /problems/{code} resolves one.
object
Example
{ "type": "https://api.builders.ac/api/provisioning/v1alpha1/problems/service_unavailable", "title": "Service unavailable", "status": 503, "detail": "Retry the request later; the service is temporarily unavailable.", "code": "service_unavailable", "retryable": true, "correlation_id": "9f1c2b7a-3d5e-4c81-9a77-2f6b0e4d51c3"}Headers
Section titled “Headers”The id of this request, echoed on every response and repeated in the correlation_id member of a problem body. Quote it in support requests.