List environment roles

GET /v1/roles · permission roles:read

Lists the environment's role catalogue, oldest first. Only forward pagination is supported: before and an order other than asc return 422. The cursor is bound to this list. Organization roles are not part of this list. The role's permission set is not returned in this release.

Request

Field Type Required Description
limit query no 1–100, default 20.
after query no Cursor from list_metadata.after.

No request body.

Response

200 OK with a page of roles.

{
  "data": [
    {
      "id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
      "organization_id": null,
      "key": "support",
      "name": "Support",
      "description": "",
      "is_privileged": false,
      "assignable_in_self_service": true,
      "permission_ids": [],
      "created_at": "2026-10-12T09:31:00.123456Z",
      "updated_at": "2026-10-12T09:31:00.123456Z",
      "version": 1
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}

Errors

HTTP code When
400 invalid_cursor The cursor is invalid or belongs to another list.
422 validation_failed limit is out of range, or before or a non-asc order was given.
401 unauthenticated The credential is missing, invalid or revoked.
403 insufficient_permissions The credential lacks the required permission.
429 rate_limited The rate limit was exceeded; retry after the Retry-After period.
503 service_unavailable A dependency is temporarily unavailable; retry after the Retry-After period.

Example

curl -i "https://api.eu.keenauth.com/v1/roles?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"