List setup status for every Environment in the Account
/portal/v1/accounts/{accountSlug}/setup-summariesReturns one setup-status row per (Application × Environment) across the active Account as an { items } collection, in a single query to avoid N+1 fetching on the Applications page. Each row reports has_permissions, has_roles, has_role_permissions, a combined is_complete flag (all three true), and identities_count — the distinct identities holding at least one assignment on a node in that Environment. Read-only and scoped to the Account resolved from the path and guard chain.
Authentication
AuthorizationJWT access token. Never send alongside X-API-Key: a request carrying both is refused.
applications.viewDeveloper ConsoleView the Account's Applications and Environments. Granted through an administrator role in the Admin Workspace; a valid token without it is refused with 403.
Responses
application/json
items *SetupSummaryItemDto[]
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.
Returned object
curl -X GET "https://auth.canopy-io.com/portal/v1/accounts/{accountSlug}/setup-summaries" \ -H "Authorization: Bearer $CANOPY_TOKEN"
{ "items": [ { "application_id": "string", "application_slug": "string", "environment_id": "string", "environment_slug": "string", "has_permissions": false, "has_roles": false, "has_role_permissions": false, "is_complete": false, "nodes_count": 0, "roles_count": 0, "permissions_count": 0, "identities_count": 0 } ] }
Tell us how we can improve this guide.