---
title: "Deletes a custom role from a project."
method: DELETE
path: "/projects/{project_id}/roles/{role_id}"
tags: ["Roles"]
---

# Deletes a custom role from a project.

`DELETE /projects/{project_id}/roles/{role_id}`

## Path parameters

- `project_id` string, required
- `role_id` string, required

## Response `200`

Project role deleted successfully.

- RoleDeletedResource — Confirmation payload returned after deleting a role.
  - `object` 'role.deleted', required — Always `role.deleted`.
  - `id` string, required — Identifier of the deleted role.
  - `deleted` boolean, required — Whether the role was deleted.

## Other responses

- `429` — The request was rejected because a rate limit was exceeded.

## Changes

- **2026-08-14** `6ac2618eefd7` — 1 info
  - added the non-success response with the status `429`
- **2026-05-13** `74cbcf73838f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/projects/:project_id/roles/:role_id/delete.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openai/openapi/revisions/959ef977e135/schema)
