Zoho User API

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

Operations 10

GET /api/v1/users/{userId} Get User Details #
PATCH /api/v1/users/{userId} Update User Details #
POST /api/v1/users/{userId}/groups/associate Associate Groups To Users #
GET /api/v1/users/{userId}/labels Get User Labels #
POST /api/v1/users/{userId}/labels/remove Remove Labels From User #
POST /api/v1/users/{userId}/groups/dissociate Delete Groups From Users #
POST /api/v1/users/{userId}/anonymize Delete End User #
GET /api/v1/users Get Users #
POST /api/v1/users/{userId}/labels/assign Assign Labels To User #
GET /api/v1/users/{userId}/groups Get User Groups #

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-user-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-user-api-openapi.yml Raw ↑
openapi: 3.2.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:
    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
    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
    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
    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'
    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'
  parameters:
    userId:
      name: userId
      in: path
      required: true
      style: simple
      explode: false
      schema:
        type:
        - string
        - 'null'
        - integer
        format: int64
        pattern: ([0-9]+)
  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'
  securitySchemes:
    iam-oauth2-schema:
      $ref: ./Common.json#/components/securitySchemes/iam-oauth2-schema
x-entity: Helpcenter