Zoho Role API

The Role API from Zoho — 7 operation(s) for role.

Operations 9

GET /api/v1/roles/{roleId} Get role #
PATCH /api/v1/roles/{roleId} Update role #
GET /api/v1/rolesByIds List roles by role IDs #
GET /api/v1/personalRole Get personal role #
GET /api/v1/roles/count Get role count #
GET /api/v1/roles/{roleId}/agents List agents by role #
POST /api/v1/roles/{roleId}/delete Delete role #
GET /api/v1/roles List roles #
POST /api/v1/roles Create role #

Documentation

Specifications

Code Examples

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoho-role-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoho-role-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Helpcenter Role API
  version: 1.0.0
tags:
- name: Role
paths:
  /api/v1/roles/{roleId}:
    get:
      tags:
      - Role
      summary: Get role
      description: This API fetches the details of a particular role.
      operationId: getRole
      parameters:
      - $ref: '#/components/parameters/roleId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/roleResponse'
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
    patch:
      tags:
      - Role
      summary: Update role
      description: This API updates details of an existing role.
      operationId: updateRole
      parameters:
      - $ref: '#/components/parameters/roleId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/roleupdateJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/roleResponse'
      security:
      - iam-oauth2-schema:
        - Desk.settings.UPDATE
        - Desk.basic.UPDATE
      x-audience:
      - external-public
  /api/v1/rolesByIds:
    get:
      tags:
      - Role
      summary: List roles by role IDs
      description: This API lists details of the roles whose IDs are passed in the API request.
      operationId: getRolesByIds
      parameters:
      - name: roleIds
        in: query
        description: Comma separated role ids. Maximum allowed count is 50
        required: true
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: Comma separated role ids. Maximum allowed count is 50
          items:
            type:
            - string
            - 'null'
            - integer
            format: int64
            pattern: ([0-9]+)
          uniqueItems: false
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '200':
          $ref: '#/components/responses/roleResponseArray'
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
  /api/v1/personalRole:
    get:
      tags:
      - Role
      summary: Get personal role
      description: This API fetches the details of the personal role configured in your help desk. Agents with personal role can view only the tickets assigned to them and unassigned tickets.
      operationId: getPersonalRole
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/roleResponse'
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
  /api/v1/roles/count:
    get:
      tags:
      - Role
      summary: Get role count
      description: This API fetches the number of roles configured in your help desk.
      operationId: getRoleCount
      parameters:
      - $ref: '#/components/parameters/isDefault'
      - $ref: '#/components/parameters/isVisible'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: ./Department.json#/components/responses/deptCountResponse
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
  /api/v1/roles/{roleId}/agents:
    get:
      tags:
      - Role
      summary: List agents by role
      description: This API lists agents mapped to a particular role.
      operationId: getAgentsByRole
      parameters:
      - $ref: '#/components/parameters/roleId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '200':
          $ref: '#/components/responses/roleAssociatedAgent'
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
  /api/v1/roles/{roleId}/delete:
    post:
      tags:
      - Role
      summary: Delete role
      description: This API deletes a role from your help desk.
      operationId: deleteRole
      parameters:
      - $ref: '#/components/parameters/roleId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/deleteRoleBody'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.settings.DELETE
        - Desk.basic.DELETE
      x-audience:
      - external-public
  /api/v1/roles:
    get:
      tags:
      - Role
      summary: List roles
      description: This API lists a particular number of roles, based on the limit specified.
      operationId: getRoles
      parameters:
      - $ref: '#/components/parameters/isDefault'
      - name: searchStr
        in: query
        description: 'String to search for roles by name or description. The string must contain at least one character. Three search methods are supported: 1) string* - Searches for roles whose name or description start with the string, 2) *string* - Searches for roles whose name or description contain the string, 3) string -  Searches for roles whose name or description is an exact match for the string'
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: 'String to search for roles by name or description. The string must contain at least one character. Three search methods are supported: 1) string* - Searches for roles whose name or description start with the string, 2) *string* - Searches for roles whose name or description contain the string, 3) string -  Searches for roles whose name or description is an exact match for the string'
          maxLength: 100
          minLength: 0
          pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
      - name: limit
        in: query
        description: Number of roles to display. The default value is 15 and the maximum value allowed is 500.
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Number of roles to display. The default value is 15 and the maximum value allowed is 500.
          maximum: 500
          pattern: ([0-9]+)
      - name: from
        in: query
        description: Index number, starting from which the roles must be listed
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Index number, starting from which the roles must be listed
          minimum: 0
          pattern: ([0-9]+)
      - $ref: '#/components/parameters/isVisible'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '200':
          $ref: '#/components/responses/roleResponseArray'
      security:
      - iam-oauth2-schema:
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
    post:
      tags:
      - Role
      summary: Create role
      description: This API creates a role in your help desk.
      operationId: addRole
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/roleJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/roleResponse'
      security:
      - iam-oauth2-schema:
        - Desk.settings.CREATE
        - Desk.basic.CREATE
      x-audience:
      - external-public
components:
  parameters:
    roleId:
      name: roleId
      in: path
      required: true
      style: simple
      explode: false
      schema:
        type:
        - string
        - 'null'
        - integer
        format: int64
        pattern: ([0-9]+)
    isDefault:
      name: isDefault
      in: query
      description: Key that denotes whether the roles must be default roles or custom roles
      required: false
      style: form
      explode: true
      schema:
        type:
        - boolean
        - 'null'
        description: Key that denotes whether the roles must be default roles or custom roles
    isVisible:
      name: isVisible
      in: query
      description: Key that filters roles according to their visibility in the UI
      required: false
      style: form
      explode: true
      schema:
        type:
        - boolean
        - 'null'
        description: Key that filters roles according to their visibility in the UI
  responses:
    roleResponseArray:
      description: roleResponseArray template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              data:
                $ref: ./Role.json#/components/schemas/roleArray
            required:
            - data
          examples:
            Valid responses Definitions:
              value:
                data:
                - isDefault: true
                  shareDataWithPeers: true
                  immediateSubRoles:
                  - '50000785582324'
                  - '50000000779019'
                  - '50000001319909'
                  name: CEO
                  description: Agent belongs to this role can access all other user's data.
                  reportsTo: null
                  id: '50000000008337'
                  isVisible: true
                - isDefault: false
                  shareDataWithPeers: false
                  immediateSubRoles:
                  - '50000091844659'
                  name: Manager
                  description: Agents belongs to this cannot see admin role users data
                  reportsTo: '50000000008337'
                  id: '50000000008339'
                  isVisible: true
                - isDefault: false
                  shareDataWithPeers: false
                  immediateSubRoles: []
                  name: PortalUser
                  description: User belongs to this role are portal users they can access their cases and solutions only
                  reportsTo: '50000000008337'
                  id: '50000000008341'
                  isVisible: false
                - isDefault: false
                  shareDataWithPeers: false
                  immediateSubRoles: []
                  name: Development Team Member
                  description: Development team members from Engineering
                  reportsTo: '50000000008337'
                  id: '50000000469017'
                  isVisible: true
                - isDefault: false
                  shareDataWithPeers: false
                  immediateSubRoles: []
                  name: Product Team Member
                  description: Products Managers
                  reportsTo: '50000000008337'
                  id: '50000000551386'
                  isVisible: true
                - isDefault: false
                  shareDataWithPeers: true
                  immediateSubRoles: []
                  name: Sales Team Member
                  description: ''
                  reportsTo: '50000000008337'
                  id: '50000000779019'
                  isVisible: true
                - isDefault: false
                  shareDataWithPeers: false
                  immediateSubRoles: []
                  name: Personal
                  description: Agents belongs to this role can see only unassigned and his/her data
                  reportsTo: null
                  id: '50000002634005'
                  isVisible: false
                - isDefault: false
                  shareDataWithPeers: false
                  immediateSubRoles: []
                  name: Marketing Team Member
                  description: ''
                  reportsTo: '50000000008337'
                  id: '50000009610999'
                  isVisible: true
                - isDefault: true
                  shareDataWithPeers: false
                  immediateSubRoles: []
                  name: LightAgent
                  description: Agents belonging to this role can access all user's data.
                  reportsTo: null
                  id: '50000565365005'
                  isVisible: false
    roleAssociatedAgent:
      description: roleAssociatedAgent template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              associatedAgents:
                type:
                - 'null'
                - array
                items:
                  type:
                  - string
                  - 'null'
                  - integer
                  format: int64
                  pattern: ([0-9]+)
                uniqueItems: false
            required:
            - associatedAgents
          examples:
            Valid responses Definitions:
              value:
                associatedAgents:
                - '50000000009163'
                - '50000000009300'
                - '50000000010007'
                - '50000000010011'
                - '50000000062391'
                - '50000000062393'
    roleResponse:
      description: roleResponse template definitions
      content:
        application/json:
          schema:
            additionalProperties: false
            allOf:
            - $ref: ./Role.json#/components/schemas/roleJson
            - type:
              - 'null'
              - object
              properties:
                isDefault:
                  type:
                  - boolean
                  - 'null'
                immediateSubRoles:
                  type:
                  - 'null'
                  - array
                  items:
                    type:
                    - string
                    - 'null'
                    - integer
                    format: int64
                    pattern: ([0-9]+)
                  uniqueItems: false
                id:
                  type:
                  - string
                  - 'null'
                  - integer
                  format: int64
                  pattern: ([0-9]+)
                isVisible:
                  type:
                  - boolean
                  - 'null'
              required:
              - id
              - immediateSubRoles
              - isDefault
              - isVisible
          examples:
            Valid responses Definitions:
              value:
                isDefault: false
                shareDataWithPeers: true
                immediateSubRoles: []
                name: Customer Care Associate
                description: Can work on own tickets and can not re-assign tickets.
                reportsTo: 5000000008807
                id: '5000000002973'
                isVisible: true
  requestBodies:
    roleJson:
      content:
        application/json:
          schema:
            additionalProperties: false
            allOf:
            - $ref: ./Role.json#/components/schemas/roleupdateJson
            - type:
              - 'null'
              - object
              properties:
                reportsTo:
                  type:
                  - string
                  - 'null'
                  - integer
                  format: int64
                  pattern: ([0-9]+)
            - type: object
              required:
              - name
              - shareDataWithPeers
          examples:
            Valid requestBody Definitions:
              value:
                shareDataWithPeers: true
                name: Customer Care Associate
                description: Can work on own tickets and can not re-assign tickets.
                reportsTo: 5000000008807
    deleteRoleBody:
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              transferToRoleId:
                type:
                - string
                - 'null'
                - integer
                format: int64
                pattern: ([0-9]+)
            required:
            - transferToRoleId
          examples:
            Valid requestBody Definitions:
              value:
                transferToRoleId: '5000000008807'
    roleupdateJson:
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              shareDataWithPeers:
                type:
                - boolean
                - 'null'
              name:
                type:
                - string
                - 'null'
                maxLength: 100
                minLength: 0
              description:
                type:
                - string
                - 'null'
                maxLength: 100
                minLength: 0
          examples:
            Valid requestBody Definitions:
              value:
                shareDataWithPeers: true
                name: Customer Care and Sales Associate
                description: Can work on own tickets and can not re-assign tickets.
                reportsTo: 5000000008807
  securitySchemes:
    iam-oauth2-schema:
      $ref: ./Common.json#/components/securitySchemes/iam-oauth2-schema
x-entity: Helpcenter