List identities with their role assignments
/portal/v1/accounts/{accountSlug}/applications/{appSlug}/environments/{envSlug}/identities/with-rolesReturns a paginated list of the current Environment's identities, each enriched with its role assignments (role id/name plus the node id/name the role is held at). Filter with role_id to return only identities holding a given role, or the sentinel no_assignment to return identities with no assignments in this Environment; q searches name and email and status narrows to active or inactive. Identities with no assignments come back with an empty roles array.
Authentication
AuthorizationJWT access token. Never send alongside X-API-Key: a request carrying both is refused.
env_identities.viewDeveloper ConsoleView identities, invitations, and role assignments in an Environment. Granted through an administrator role in the Admin Workspace; a valid token without it is refused with 403.
production_identities.accessDeveloper ConsoleAccess identities in production Environments. Applies to users only, and only in an Environment marked production: its identities are real end users. API keys and identity principals are exempt.
Query Parameters
pagenumber Optional Page number (1-based)
takenumber Optional Items per page (1-100, default 20)
qstring Optional Search term
sort_bystring Optional Column to sort by. Allowed values depend on the endpoint.
orderenum Optional Sort direction
role_idstring Optional Filter by role ID (UUID) or "no_assignment" for unassigned identities
statusenum Optional Filter by active/inactive status. Omit to show all.
Responses
application/json
items *IdentityRowDto[]pagination *PageMetaDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Errors
When the request can't be completed, the response body includes a stable error code you can branch on.
account.capability_requiredForbiddenThe signed-in user's administrator roles do not grant the capability this endpoint requires.
Ask an account administrator to grant a role carrying the capability named in the Authentication section, then retry.
environment.production_identities_forbiddenForbiddenThe Environment is marked production and the caller is a user without production identity access.
Manage these people in the Admin Workspace, or ask an administrator to grant the Production Support role, then retry.
Pagination
This endpoint returns a paginated collection. Use the query parameters below to page through results.
pagenumberPage number (1-indexed). Defaults to 1.
takenumberItems per page (1–100). Defaults to 20.
Each response includes an items array alongside a pagination object with item_count, page_count, has_previous_page, and has_next_page fields.
Returned object
curl -X GET "https://auth.canopy-io.com/portal/v1/accounts/{accountSlug}/applications/{appSlug}/environments/{envSlug}/identities/with-roles?page=0&take=0&q=value&sort_by=value&order=asc&role_id=value&status=active" \ -H "Authorization: Bearer $CANOPY_TOKEN"
{ "items": [ { "id": "string", "email": "string", "first_name": "string", "last_name": "string", "name": "string", "avatar_url": "string", "is_active": false, "roles": [ { "assignment_id": "string", "id": "string", "name": "string", "node_id": "string", "node_name": "string", "effective_from": "string", "effective_to": "string" } ], "created_at": "2026-04-20T12:00:00.000Z" } ], "pagination": { "page": 0, "take": 0, "item_count": 0, "page_count": 0, "has_previous_page": false, "has_next_page": false } }
Tell us how we can improve this guide.