Quickstart
Assign roles to identities — one at a time or many at once.
Using the Dashboard
There are two flows on the Identities page: open a single identity's drawer to manage their assignments one at a time, or tick checkboxes across multiple rows to assign the same role to all of them at once.
Assign a role to a single identity
Bulk-assign a role to multiple identities
First time setting up?
When you land on a fresh Environment — the dashboard seeds every Account with a Development and Production env at signup, both empty — the Overview page shows a banner that reads "You haven't invited any users or assigned them roles yet." Click Complete Invite & Assign Users Setup to open the Setup Guide on its Invite & Assign Users tab — an interactive slide-out panel that walks you through inviting identities and assigning them roles. Each step links directly to the right page and surfaces contextual help alongside, so you don't have to bounce between docs and the dashboard to figure out where to click next.
What the guide walks you through:
Using the API
Two endpoints cover the same two flows. Use the single-create endpoint when adding access for one identity at a time; use the bulk-create endpoint when provisioning a cohort, syncing from an HR system, or backfilling roles after a migration. Each API key is scoped to one Environment — assignments are created in that Environment and nowhere else.
Single — Endpoint
POST /api/v1/assignmentsAuthenticate with your API key in the X-API-Key header.
Example
Send the identity, node, and role IDs in the request body. effective_from and effective_to are optional ISO-8601 timestamps:
{
"identity_id": "9d7e3a6f-2c4b-4e1a-9f5d-1a3c4b5d6e7f",
"node_id": "0aa1b2c3-d4e5-4f6a-7b8c-9d0e1f2a3b4c",
"role_id": "5e1f2a3b-4c5d-4e6f-7a8b-9c0d1e2f3a4b",
"effective_from": "2026-05-01T00:00:00Z",
"effective_to": "2026-12-31T23:59:59Z"
}The response returns the created assignment with its id and computed lifecycle state. The role's permissions take effect immediately at that node and every descendant — no separate evaluation step or cache flush is required.
Bulk — Endpoint
POST /api/v1/assignments/bulk-createSame auth as the single-create endpoint. The body is an array of assignments processed independently.
Example
Send an array of { identity_id, node_id, role_id } entries. Per-item effective_from / effective_to are optional:
{
"assignments": [
{
"identity_id": "9d7e3a6f-2c4b-4e1a-9f5d-1a3c4b5d6e7f",
"node_id": "0aa1b2c3-d4e5-4f6a-7b8c-9d0e1f2a3b4c",
"role_id": "5e1f2a3b-4c5d-4e6f-7a8b-9c0d1e2f3a4b"
},
{
"identity_id": "ab1cd2ef-3456-4789-abcd-ef1234567890",
"node_id": "0aa1b2c3-d4e5-4f6a-7b8c-9d0e1f2a3b4c",
"role_id": "5e1f2a3b-4c5d-4e6f-7a8b-9c0d1e2f3a4b"
}
]
}The endpoint returns 200 OK with { summary, results } when every item succeeded, or 207 Multi-Status with the same shape when at least one item failed (e.g., the identity already had the role). Iterate results to know which entries landed and which were skipped — partial success is the norm here, not an error.