---
title: "Clone Role"
method: POST
path: "/internal/roles/{role_id}/clone"
tags: ["internal"]
---

# Clone Role

`POST /internal/roles/{role_id}/clone`

Clone a role's permission grants into a new role in the target scope.

The clone is a fresh role (new ``role_id``) carrying a copy of the source role's
``UserRoleToUserPermissions`` rows — users are **not** copied. Used to seed a
company's own box from a General (global) role, or to copy a role between companies.

## Path parameters

- `role_id` string, uuid, required

## Request body

- CloneRoleRequest — Copy a role (its permission grants) into a new role. ``target_company_id=None`` clones into the global/system scope; a UUID clones into that company's own box. Powers both "copy a General role into a company" and "copy a role between two companies".
  - `target_company_id` string, uuid, nullable
  - `new_role_name` string, required
  - `archetype` 'tprm_admin' | 'business_owner' | 'tprm_analyst' | 'sme' | 'view_only' | 'collateral_admin' | 'collateral_reviewer' | 'collateral_submitter' | 'policy_reviewer' — Closed, product-owned set of role identities. Stable machine keys — never renamed.

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/3ff4c0bd276b/schema)
