---
title: "List the roles"
method: GET
path: "/api/v1/roles"
tags: ["Access"]
---

# List the roles

`GET /api/v1/roles`

## Request

- Base URL: `https://pcp.example.com`
- URL: `https://pcp.example.com/api/v1/roles`
- Auth: HTTP bearer

## Query parameters

- `category` 'standard' | 'advanced'

## Response `200`

OK

- RoleResponse[]
  - `builtin` boolean
  - `category` string
  - `conflicts_with` object[], nullable
    - `reason` string, nullable
    - `role` string
  - `description` string
  - `display_name` string
  - `grants` object[]
    - `access` object
      - `can_author` boolean
      - `can_delete` boolean
      - `can_execute` boolean
      - `can_view` boolean
    - `resource_type` string
  - `name` string
  - `rolls_up_to` string, nullable

## Other responses

- `400`: Bad Request _(validation or deserialization error)_
- `401`: Missing, invalid or expired credentials
- `403`: The caller may not do this
- `500`: Internal Server Error _(panics)_
- `default`

---

[API](https://skmtc.dev/plakar/apis/plakar-control-plane-api-v1.md) - [All operations](https://skmtc.dev/plakar/apis/plakar-control-plane-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/plakar/apis/plakar-control-plane-api-v1/revisions/2ac049494a01?raw)
