---
title: "List project roles"
method: GET
path: "/projects/{project_id}/roles"
tags: ["Roles"]
---

# List project roles

`GET /projects/{project_id}/roles`

## Request

- Base URL: `https://api.openai.com/v1`
- URL: `https://api.openai.com/v1/projects/{project_id}/roles`
- Auth: HTTP bearer

Lists the roles configured for a project.

## Path parameters

- `project_id` string, required

## Query parameters

- `limit` integer
- `after` string
- `order` 'asc' | 'desc'

## Response `200`

Project roles listed successfully.

- PublicRoleListResource: Paginated list of roles available on an organization or project.
  - `object` 'list', required: Always `list`.
  - `data` Role[], required: Roles returned in the current page.
    - `object` 'role', required: Always `role`.
    - `id` string, required: Identifier for the role.
    - `name` string, required: Unique name for the role.
    - `description` string, nullable, required: Optional description of the role.
    - `permissions` string[], required: Permissions granted by the role.
    - `resource_type` string, required: Resource type the role is bound to (for example `api.organization` or `api.project`).
    - `predefined_role` boolean, required: Whether the role is predefined and managed by OpenAI.
  - `has_more` boolean, required: Whether more roles are available when paginating.
  - `next` string, nullable, required: Cursor to fetch the next page of results, or `null` when there are no additional roles.

## Other responses

- `400`: The request parameters are invalid or the requested operation cannot be performed.
- `403`: The caller does not have permission to perform this operation.
- `404`: The endpoint is unavailable or a requested resource was not found in this organization or project.
- `429`: The request was rejected because a rate limit was exceeded.

## Changes

- **2026-10-06** `487892d3954e`: 4 info
  - added the optional property `error/anyOf[#/components/schemas/Error]/misalignment/review_target` to the response with the `403` status
  - added the optional property `error/misalignment/review_target` to the response with the `400` status
  - added the optional property `error/misalignment/review_target` to the response with the `404` status
  - added the optional property `error/misalignment/review_target` to the response with the `429` status
- **2026-10-05** `7f654af7f94f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/omnistack-sh/apis/openai-api/changes/projects/:project_id/roles/get.md)

---

[API](https://skmtc.dev/omnistack-sh/apis/openai-api.md) - [All operations](https://skmtc.dev/omnistack-sh/apis/openai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnistack-sh/apis/openai-api/revisions/0a26f104d35f?raw)
