> ## Documentation Index
> Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Sets or updates permissions for a specific role

# Set Role Permissions

For the complete error reference, see [Error Guide](/articles/error-guide).


## OpenAPI

````yaml put /roles/{role}/permissions
openapi: 3.0.0
info:
  title: Chat APIs
  description: Manage messages, users, groups for a particular app using our Chat API.
  version: '3.0'
servers:
  - url: https://{appId}.api-{region}.cometchat.io/v3
    variables:
      appId:
        default: appId
        description: (Required) App ID
      region:
        enum:
          - us
          - eu
          - in
        default: us
        description: Select Region
security: []
tags:
  - name: API Keys
    description: The API keys are used to authorise the APIs
  - name: Roles
    description: The roles are used to give user access rights
  - name: Users
    description: The REST collection for users.
  - name: Auth Tokens
    description: The auth tokens are used to login end users using client SDKs.
  - name: Blocked Users
    description: The REST collections for blocked users.
  - name: Friends
    description: List,add and remove friends by passing UID in path variables
  - name: Groups
    description: The REST collections for groups.
  - name: Banned Users
    description: Ban and Unban user by passing other UID in path variables.
  - name: Group Members
    description: The REST collections for group members.
  - name: Messages
    description: The REST collections for messages.
  - name: Conversations
    description: The REST collections for conversations.
  - name: Restrict Features
    description: Allows Restricting Features
  - name: Metrics
    description: Allows accessing Data Metrics
  - name: Triggers
    description: Allows adding triggers to a webhook.
  - name: Webhooks
    description: Allows accessing Webhooks.
  - name: Notifications
    description: Allows configuring Notifications core.
paths:
  /roles/{role}/permissions:
    put:
      tags:
        - RBAC
      summary: Set Role Permissions
      description: Sets or updates permissions for a specific role
      operationId: set-role-permissions
      parameters:
        - name: role
          in: path
          description: The role identifier to update permissions for
          required: true
          schema:
            type: string
            example: default
      requestBody:
        content:
          application/json:
            schema:
              required:
                - permissions
              properties:
                permissions:
                  description: >-
                    Permissions object containing key-value pairs for role
                    permissions
                  type: object
                  example:
                    createGroup: allow
                    listUsers.mode: friends
                    createGroup.allowedGroupTypes:
                      - public
                  additionalProperties: true
              type: object
      responses:
        '200':
          description: Role permissions updated successfully
          content:
            application/json:
              schema:
                properties:
                  data:
                    type: object
                type: object
              example:
                data:
                  sendMessage:
                    success: true
                    message: >-
                      Permission with id sendMessage have been mapped
                      successfully to role default.
                  permissions:
                    listUsers: allow
                    listUsers.mode: all
                    listUsers.allowedRoles:
                      - new_role
                    getUserDetails.mode: friends
                    getUserDetails.allowedRoles:
                      - default
                    sendMessage: allow
                    sendMessage.mode: all
                    sendMessage.allowedReceiverTypes:
                      - group
                    sendMessage.allowedReceiverRoles:
                      - new_role
                      - default
                    sendMessage.allowedMessageTypes:
                      - file
                      - audio
                      - video
                      - image
                      - text
                    sendMessage.allowedMessageCategories:
                      - message
                      - custom
                    editMessage: deny
                    deleteMessage: deny
                    sendMessage.allowedMimeTypes:
                      - image/png
                    initiateCall: allow
                    initiateCall.mode: all
                    initiateCall.allowedReceiverRoles:
                      - new_role
                    createGroup: allow
                    createGroup.allowedGroupTypes:
                      - private
                    listGroups: allow
                    listGroups.allowedGroupTypes:
                      - password
                    joinGroup: allow
                    joinGroup.allowedGroupTypes:
                      - public
                    listMessages.allowedMessageCategories:
                      - message
                    listMessages.allowedMessageTypes:
                      - audio
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      description: API Key with fullAccess scope(i.e. Rest API Key from the Dashboard).
      name: apikey
      in: header

````