Zoho User API

The User API from Zoho — 9 operation(s) for user.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

zoho-user-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Helpcenter User API
  version: 1.0.0
tags:
- name: User
paths:
  /api/v1/users/{userId}:
    get:
      tags:
      - User
      summary: Get User Details
      description: This API fetches the details of a particular help center user.
      operationId: getUserDetails
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/userDetailViewJson'
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
        - Desk.settings.READ
        - Desk.basic.READ
      x-audience:
      - external-public
    patch:
      tags:
      - User
      summary: Update User Details
      description: 'This API helps update the details of a particular help center user. '
      operationId: updateUserDetails
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/updateUserJson'
      responses:
        '200':
          $ref: '#/components/responses/userDetailViewJson'
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
        - Desk.settings.UPDATE
      x-audience:
      - external-public
  /api/v1/users/{userId}/groups/associate:
    post:
      tags:
      - User
      summary: Associate Groups To Users
      description: This API adds a user to the groups specified.
      operationId: associateGroupsToUsers
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/userGroupInputJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/massActionListViewResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
        - Desk.settings.UPDATE
      x-audience:
      - external-public
  /api/v1/users/{userId}/labels:
    get:
      tags:
      - User
      summary: Get User Labels
      description: This API lists a particular number of labels associated with a user, based on the limit defined.
      operationId: getUserLabels
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/userLabelJson'
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
        - Desk.settings.READ
      x-audience:
      - external-public
  /api/v1/users/{userId}/labels/remove:
    post:
      tags:
      - User
      summary: Remove Labels From User
      description: This API removes the labels you specify from a particular user.
      operationId: removeLabelsFromUser
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: ./Label.json#/components/requestBodies/labelIdsJson
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/massActionListViewResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
        - Desk.settings.UPDATE
      x-audience:
      - external-public
  /api/v1/users/{userId}/groups/dissociate:
    post:
      tags:
      - User
      summary: Delete Groups From Users
      description: This API removes a user from the groups specified.
      operationId: deleteGroupsFromUsers
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: ./HelpcenterGroups.json#/components/requestBodies/groupIds
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/massActionListViewResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
        - Desk.settings.UPDATE
      x-audience:
      - external-public
  /api/v1/users/{userId}/anonymize:
    post:
      tags:
      - User
      summary: Delete End User
      description: This API permanently deletes all identifying information about a user from your help center.
      operationId: deleteEndUser
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/anonymizeInpJson'
      responses:
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
        - Desk.settings.UPDATE
      x-audience:
      - external-public
  /api/v1/users:
    get:
      tags:
      - User
      summary: Get Users
      description: This API lists a particular number of help center users, based on the limit defined. It also helps you search for specific users.
      operationId: getUsers
      parameters:
      - name: include
        in: query
        description: Additional information related to the user. Value allowed is @count@.
        required: false
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: Additional information related to the user. Value allowed is @count@.
          items:
            type:
            - string
            - 'null'
            enum:
            - count
            maxLength: 100
            minLength: 0
          uniqueItems: true
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/getUsersResponse'
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
        - Desk.settings.READ
        - Desk.basic.READ
        - Desk.search.READ
      x-audience:
      - external-public
  /api/v1/users/{userId}/labels/assign:
    post:
      tags:
      - User
      summary: Assign Labels To User
      description: 'This API assigns the labels you specify to a particular user. '
      operationId: assignLabelsToUser
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/userLabelInputJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/massActionListViewResponse'
      security:
      - iam-oauth2-schema:
        - Desk.contacts.UPDATE
        - Desk.settings.UPDATE
      x-audience:
      - external-public
  /api/v1/users/{userId}/groups:
    get:
      tags:
      - User
      summary: Get User Groups
      description: This API lists a particular number of user groups in a help center, based on the limit defined.
      operationId: getUserGroups
      parameters:
      - $ref: '#/components/parameters/userId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/userGroupJson'
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.contacts.READ
        - Desk.settings.READ
      x-audience:
      - external-public
components:
  responses:
    getUsersResponse:
      description: getUsersResponse template definitions
      content:
        application/json:
          schema:
            allOf:
            - type: object
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      count:
                        type:
                        - string
                        - 'null'
                        - integer
                        format: int32
                        pattern: ([0-9]+)
            - oneOf:
              - type:
                - 'null'
                - object
                additionalProperties: false
                properties:
                  data:
                    $ref: ./User.json#/components/schemas/data
                required:
                - data
              - additionalProperties: false
                allOf:
                - $ref: ./User.json#/components/schemas/userListViewJson
                - type:
                  - 'null'
                  - object
                  properties:
                    count:
                      type:
                      - string
                      - 'null'
                      - integer
                      format: int32
                      pattern: ([0-9]+)
                  required:
                  - count
          examples:
            Valid responses Definitions:
              value:
                data:
                - lastAccessedTime: '2021-06-11T06:21:32.000Z'
                  photoURL: https://desk.zoho.com/portal/api/portalUser/17883000000094001/photo
                  emailAddress: carol@zylker.com
                  name: Developer
                  id: '310975130121'
                  label:
                    preferences:
                      shape: RECTANGLE
                      bgColor: '#39B54A'
                      textColor: '#FFFFFF'
                    name: Lock Label
                    id: '24073000002823026'
                    logoUrl: null
                  type: ENDUSER
                  status: ACTIVE
                count: '1'
    userLabelJson:
      description: userLabelJson template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              data:
                $ref: ./User.json#/components/schemas/userLabelJsonObj
            required:
            - data
          examples:
            Valid responses Definitions:
              value:
                data:
                - preferences:
                    shape: ROUNDED
                    bgColor: '#5787E0'
                    textColor: '#FFFFFF'
                  isPrimary: false
                  name: Prime Customer
                  id: '24073000002958013'
                  helpCenterId: '24073000002886005'
                  logoUrl: null
                  assignedTime: '2020-04-06T05:55:13.000Z'
                - preferences:
                    shape: RECTANGLE
                    bgColor: '#39B54A'
                    textColor: '#FFFFFF'
                  isPrimary: false
                  name: Zoho One
                  id: '24073000002958023'
                  helpCenterId: '24073000002886005'
                  logoUrl: null
                  assignedTime: '2020-04-06T05:55:13.000Z'
                - preferences:
                    shape: RECTANGLE
                    bgColor: '#CE6785'
                    textColor: '#FFFFFF'
                  isPrimary: false
                  name: MVP
                  id: '24073000002958029'
                  helpCenterId: '24073000002886005'
                  logoUrl: null
                  assignedTime: '2020-04-06T05:55:13.000Z'
    massActionListViewResponse:
      description: massActionListViewResponse template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              results:
                $ref: ./User.json#/components/schemas/massActionJsonArray
            required:
            - results
          examples:
            Valid responses Definitions:
              value:
                results:
                - success: true
                  id: '24073000002958013'
                  errors: null
                - success: true
                  id: '24073000002958023'
                  errors: null
                - success: false
                  id: '24073000002152013'
                  errors:
                    errorCode: FORBIDDEN
                    httpCode: 403
                    error: Restricted
    userDetailViewJson:
      description: userDetailViewJson template definitions
      content:
        application/json:
          schema:
            additionalProperties: false
            allOf:
            - $ref: ./User.json#/components/schemas/userDefaultJson
            - type:
              - 'null'
              - object
              properties:
                lastAccessedTime:
                  type:
                  - string
                  - 'null'
                  maxLength: 100
                  minLength: 0
                  pattern: (((19|20)\d\d)[-/.]{1}(0?[1-9]|1[012])[-/.]{1}(0?[1-9]|[12][0-9]|3[01])(T)([01]?[0-9]|2[0-3]):[0-5]?[0-9]:[0-5]?[0-9]([/.][\d]{0,3})?(Z))
                contactId:
                  type:
                  - string
                  - 'null'
                  - integer
                  format: int64
                  pattern: ([0-9]+)
                userType:
                  type:
                  - string
                  - 'null'
                  enum:
                  - ENDUSER
                  - SUPPORTREP
                  maxLength: 100
                  minLength: 0
                label:
                  $ref: ./Label.json#/components/schemas/labelMetaResponse
                email:
                  $ref: ./User.json#/components/schemas/userEmailObjArray
                status:
                  type:
                  - string
                  - 'null'
                  enum:
                  - ACTIVE
                  - DISABLED
                  - DELETED
                  maxLength: 100
                  minLength: 0
              required:
              - contactId
              - email
              - label
              - lastAccessedTime
              - status
              - userType
          examples:
            Valid responses Definitions:
              value:
                lastAccessedTime: '2021-06-11T06:21:32.000Z'
                photoURL: https://desk.zoho.com/portal/api/portalUser/17883000000094001/photo
                contactId: '3313135931139'
                name: Developer
                id: '310975130121'
                label:
                  preferences:
                    shape: RECTANGLE
                    bgColor: '#39B54A'
                    textColor: '#FFFFFF'
                  name: Lock Label
                  id: '24073000002823026'
                  logoUrl: null
                type: ENDUSER
                email:
                - emailAddress: zylcare@zylker.com
                  isVerified: 'false'
                  isPrimary: 'true'
                status: ACTIVE
    userGroupJson:
      description: userGroupJson template definitions
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              data:
                $ref: ./User.json#/components/schemas/userGroupJsonObj
            required:
            - data
          examples:
            Valid responses Definitions:
              value:
                data:
                - addedTime: '2020-04-06T04:50:50.000Z'
                  name: Zoho CRM Partners
                  id: '24073000002957057'
                  helpCenterId: '24073000002733221'
                  logoUrl: null
                  status: ACTIVE
                - addedTime: '2020-04-06T04:50:30.000Z'
                  name: Zoho Desk Partners
                  id: '24073000002957051'
                  helpCenterId: '24073000002733221'
                  logoUrl: https://desk.zoho.com/portal/api/publicImages/24073000002959001?portalId=b363e6f8e029247a38a55e49806bf1f683801f9cd92870bf7cc50d48844902f0
                  status: ACTIVE
                - addedTime: '2020-04-06T04:50:14.000Z'
                  name: Zoho One Prime Customers
                  id: '24073000002957045'
                  helpCenterId: '24073000002733221'
                  logoUrl: null
                  status: ACTIVE
  requestBodies:
    userLabelInputJson:
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              labels:
                $ref: ./User.json#/components/schemas/userLabelInputJsonArr
            required:
            - labels
          examples:
            Valid requestBody Definitions:
              value:
                labels:
                - isPrimary: 'false'
                  id: '24073000002958013'
                - isPrimary: 'true'
                  id: '24073000002152013'
                - isPrimary: 'false'
                  id: '24073000002958023'
    updateUserJson:
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              email:
                type:
                - 'null'
                - array
                items:
                  type:
                  - 'null'
                  - object
                  additionalProperties: false
                  maxProperties: 2
                  minProperties: 2
                  properties:
                    emailAddress:
                      type:
                      - string
                      - 'null'
                      maxLength: 100
                      minLength: 0
                      pattern: ^[a-zA-Z0-9\_]([a-zA-Z0-9\_\+\-\.\'&]*)@(?=.{4,256}$)(([a-zA-Z0-9]+)(([\-\_]*[a-zA-Z0-9])*)[\.])+[a-zA-Z]{2,22}$
                    isPrimary:
                      type:
                      - boolean
                      - 'null'
                  required:
                  - emailAddress
                  - isPrimary
                maxItems: 1
                minItems: 1
                uniqueItems: false
              status:
                type:
                - string
                - 'null'
                description: Activation status of the user. Values supported are @ACTIVE@ and @DISABLED@.
                enum:
                - ACTIVE
                - DISABLED
                - DELETED
                maxLength: 100
                minLength: 0
          examples:
            Valid requestBody Definitions:
              value:
                email:
                - emailAddress: zylcare@zylker.com
                  isPrimary: 'true'
                status: ACTIVE
    anonymizeInpJson:
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              anonymizedName:
                type:
                - string
                - 'null'
                description: Display name of the user in tickets and community topics after anonymization
                maxLength: 100
                minLength: 0
          examples:
            Valid requestBody Definitions:
              value:
                anonymizedName: Guest User 001
    userGroupInputJson:
      content:
        application/json:
          schema:
            type:
            - 'null'
            - object
            additionalProperties: false
            properties:
              groups:
                $ref: ./User.json#/components/schemas/userGroupInputJsonArr
            required:
            - groups
          examples:
            Valid requestBody Definitions:
              value:
                groups:
                - id: '24073000002723212'
                - id: '24073000002732252'
                - id: '24073000002957051'
                - id: '24073000002793019'
  parameters:
    userId:
      name: userId
      in: path
      required: true
      style: simple
      explode: false
      schema:
        type:
        - string
        - 'null'
        - integer
        format: int64
        pattern: ([0-9]+)
  securitySchemes:
    iam-oauth2-schema:
      $ref: ./Common.json#/components/securitySchemes/iam-oauth2-schema
x-entity: Helpcenter