Launch Week 02 wrapped — explore all five launches

Update Role

PUThttps://api.confident-ai.com/v2/projects/{projectId}/roles/{roleId}

Replaces a custom project role's name, description, and attached policies. Every member already holding the role is affected immediately: permissions are resolved from the role on each request, so anything the new policy set no longer grants stops working on their next call, and anything it adds becomes available at once. policyIds is the role's complete policy set rather than an addition to it, so sending an empty array leaves every member holding the role with no permissions in this project. Only roles the project owns can be updated; a global, system-defined role responds 404.

PUT/v2/projects/{projectId}/roles/{roleId}
curl -X PUT "https://api.confident-ai.com/v2/projects/{projectId}/roles/{roleId}" \
  -H "CONFIDENT_API_KEY: <ORGANIZATION-API-KEY>" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Billing Auditor",
  "description": "Read-only access to invoices and model costs.",
  "policyIds": [
    "<POLICY-ID>"
  ]
}'
200
{
  "success": true,
  "data": {
    "id": "<ROLE-ID>",
    "name": "Release Manager",
    "description": "Can publish prompts and run evaluations, but not delete data.",
    "policies": [
      {
        "id": "<POLICY-ID>",
        "name": "Billing read-only"
      }
    ],
    "projectId": "<PROJECT-ID>"
  },
  "deprecated": false
}

Headers

  • CONFIDENT_API_KEYstringRequired

    The organization API key for your Confident AI organization.

Path parameters

  • projectIdstringRequired

    The id of the project the role belongs to.

  • roleIdstringRequired

    The id of the project role. It must be a role the project owns; a global, system-defined role is not addressable here.

Request body

  • namestringRequired

    The name of the role, unique among the roles the organization or project can use. It cannot match the name of a global, system-defined role, compared without regard to case.

  • descriptionstring | null

    What the role is for. On an update, omit it to leave the stored description unchanged, or send null to clear it.

  • policyIdslist of stringsRequired

    The ids of the policies to attach to the role, which is what gives the role its permissions. This is the role's complete policy set: on an update the list replaces what is stored rather than adding to it, and an empty array leaves the role with no permissions at all. Discover assignable policies with the policies endpoint of the same scope.

Response

Update Role succeeded.

  • successboolean

    Indicates if the request was successful.

  • dataobject

    A named set of project policies that a project member can hold. A member holds at most one role per project, and every permission they have in that project comes from the policies attached to it.

    Show 5 propertiesHide 5 properties
    • idstring

      The id of the role, generated by Confident AI.

    • namestring

      The name of the role.

    • descriptionstring | null

      What the role is for, or null when it has no description.

    • policieslist of objects

      The project policies attached to the role, whose permissions together are everything a member holding it can do in the project. A global role's permissions are system-defined rather than drawn from policies, so its list is empty.

      Show 2 propertiesHide 2 properties
      • idstring

        The id of the policy, generated by Confident AI.

      • namestring

        The name of the policy.

    • projectIdstring | null

  • deprecatedboolean

    Indicates if this endpoint is deprecated.

Built byConfident AI