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:zoho-department-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: 3.2.0
info:
title: Department API
version: 1.0.0
tags:
- name: Department
paths:
/api/v1/departments/{departmentId}/associateAgents:
post:
tags:
- Department
summary: Associate agents to department
description: This API associates agents to a department.
operationId: associateAgentsToDepartment
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/associateAgents_agentIdsArray'
responses:
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
'204':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
/api/v1/departments/{departmentId}:
get:
tags:
- Department
summary: Get department
description: This API fetches the details of a department from your help desk
operationId: getDepartment
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/getDepartmentResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
patch:
tags:
- Department
summary: Update department
description: This API updates the details of an existing department.
operationId: updateDepartment
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/updateDepartmentJson'
responses:
'200':
$ref: '#/components/responses/getDepartmentResponse'
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
/api/v1/departments/{departmentId}/logo:
get:
tags:
- Department
summary: Get department logo
description: This API fetches the logo set for a department.
operationId: getDepartmentLogo
parameters:
- name: fileSize
in: query
description: Size of the image file to download. Values allowed are @THUMBNAIL@ (image with reduced dimensions and size) and @ACTUAL@ (image with actual dimensions and size). The default value is @ACTUAL@.
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
description: Size of the image file to download. Values allowed are @THUMBNAIL@ (image with reduced dimensions and size) and @ACTUAL@ (image with actual dimensions and size). The default value is @ACTUAL@.
enum:
- THUMBNAIL
- ACTUAL
maxLength: 100
minLength: 0
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: ./Common.json#/components/responses/fileResponse
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
post:
tags:
- Department
summary: Upload department logo
description: This API updates the logo set for a department.
operationId: updateDepartmentLogo
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
departmentLogo:
type: string
format: binary
required:
- departmentLogo
responses:
'422':
$ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
'204':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
delete:
tags:
- Department
summary: Delete department logo
description: This API removes the logo set for a department.
operationId: deleteDepartmentLogo
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'204':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.DELETE
- Desk.basic.DELETE
x-audience:
- external-public
/api/v1/departments/{departmentId}/enable:
post:
tags:
- Department
summary: Enable department
description: This API enables a department in your help desk portal.
operationId: enableDepartment
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'204':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
/api/v1/departments/{departmentId}/disable:
post:
tags:
- Department
summary: Disable department
description: This API disables a department in your help desk portal.
operationId: disableDepartment
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/disableTransfer'
responses:
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
'204':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
/api/v1/departmentsByIds:
get:
tags:
- Department
summary: Get department details by department IDs
description: This API fetches the details of the departments whose IDs are passed in the API request.
operationId: getDepartmentsByIds
parameters:
- name: departmentIds
in: query
description: Comma-separated array of department IDs. Maximum number of IDs allowed is 50.
required: true
style: simple
explode: true
schema:
type:
- 'null'
- array
description: Comma-separated array of department IDs. Maximum number of IDs allowed 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/departmentListViewArray'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/departments/{departmentId}/agents:
get:
tags:
- Department
summary: List agents in department
description: This API lists the agents in a department.
operationId: getAgentsInDepartment
parameters:
- name: fieldName
in: query
description: 'Name of the field that must be used for searching and listing agents. Values allowed are: @firstName@, @lastName@, @name@, and @emailId@.'
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
description: 'Name of the field that must be used for searching and listing agents. Values allowed are: @firstName@, @lastName@, @name@, and @emailId@.'
enum:
- firstName
- lastName
- emailId
- name
maxLength: 100
minLength: 0
- $ref: '#/components/parameters/searchStr'
- name: isLightAgent
in: query
description: Key that denotes if the agents must be light or non light.
required: false
style: form
explode: true
schema:
type:
- boolean
- 'null'
description: Key that denotes if the agents must be light or non light.
- name: sortOrder
in: query
description: 'To sort the available list of agents in either ascending or descending order. Values allowed are: @asc@ or @desc@'
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
description: 'To sort the available list of agents in either ascending or descending order. Values allowed are: @asc@ or @desc@'
enum:
- asc
- desc
maxLength: 100
minLength: 0
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/from'
- name: isConfirmed
in: query
description: Key that denotes if the agents must be confirmed or unconfirmed.
required: false
style: form
explode: true
schema:
type:
- boolean
- 'null'
description: Key that denotes if the agents must be confirmed or unconfirmed.
- name: status
in: query
description: 'Key that filters agents, based on their activation status: @ACTIVE@ or @DISABLED@'
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
description: 'Key that filters agents, based on their activation status: @ACTIVE@ or @DISABLED@'
enum:
- ACTIVE
- DISABLED
maxLength: 100
minLength: 0
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'204':
$ref: ./Common.json#/components/responses/emptyResponse
'200':
$ref: ./Agent.json#/components/responses/agentListArray
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/departments/count:
get:
tags:
- Department
summary: Get department count
description: This API returns the number of departments configured in your help desk portal.
operationId: getDepartmentsCount
parameters:
- $ref: ./Common.json#/components/parameters/orgId
responses:
'200':
$ref: '#/components/responses/deptCountResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
/api/v1/departments/{departmentId}/dissociateAgents:
post:
tags:
- Department
summary: Dissociate agents from department
description: This API dissociates agents from a department.
operationId: dissociateAgents
parameters:
- $ref: '#/components/parameters/departmentId'
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/dissociateAgents_agentIdsArray'
responses:
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
'204':
$ref: ./Common.json#/components/responses/emptyResponse
security:
- iam-oauth2-schema:
- Desk.settings.UPDATE
- Desk.basic.UPDATE
x-audience:
- external-public
/api/v1/departments:
get:
tags:
- Department
summary: List departments
description: This API lists a particular number of departments, based on the limit specified.
operationId: getDepartments
parameters:
- name: chatStatus
in: query
description: Key that filters departments based on their chat status. Values allowed are @AVAILABLE@, @DISABLED@, @NOT_CREATED@, and @${UNAVAILABLE}@. @${UNAVAILABLE}@ refers to departments which are not available for chat.
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
description: Key that filters departments based on their chat status. Values allowed are @AVAILABLE@, @DISABLED@, @NOT_CREATED@, and @${UNAVAILABLE}@. @${UNAVAILABLE}@ refers to departments which are not available for chat.
enum:
- AVAILABLE
- DISABLED
- NOT_CREATED
- ${UNAVAILABLE}
maxLength: 100
minLength: 0
- $ref: '#/components/parameters/searchStr'
- name: isEnabled
in: query
description: Key that filters departments based on their enabled status
required: false
style: form
explode: true
schema:
type:
- boolean
- 'null'
description: Key that filters departments based on their enabled status
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/from'
- $ref: ./Common.json#/components/parameters/orgId
responses:
'204':
$ref: ./Common.json#/components/responses/emptyResponse
'200':
$ref: '#/components/responses/departmentListViewArray'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
post:
tags:
- Department
summary: Add department
description: This API adds a department to your help desk portal.
operationId: addDepartment
parameters:
- $ref: ./Common.json#/components/parameters/orgId
requestBody:
$ref: '#/components/requestBodies/addDepartmentJson'
responses:
'422':
$ref: ./Common.json#/components/responses/invalidDataErrorResponse
'200':
$ref: '#/components/responses/getDepartmentResponse'
security:
- iam-oauth2-schema:
- Desk.settings.CREATE
- Desk.basic.CREATE
x-audience:
- external-public
/api/v1/departments/checkExists:
get:
tags:
- Department
summary: Check for duplicate departments
description: This API checks if multiple departments have the same name.
operationId: checkDepartmentNameExist
parameters:
- name: departmentName
in: query
description: Name of the department for which you want to check duplicate entries
required: true
style: form
explode: true
schema:
type:
- string
- 'null'
description: Name of the department for which you want to check duplicate entries
maxLength: 200
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
- $ref: ./Common.json#/components/parameters/orgId
responses:
'422':
$ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
'200':
$ref: '#/components/responses/checkNameResponse'
security:
- iam-oauth2-schema:
- Desk.settings.READ
- Desk.basic.READ
x-audience:
- external-public
components:
requestBodies:
updateDepartmentJson:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
isAssignToTeamEnabled:
type:
- boolean
- 'null'
description: Key that denotes if the assign to team functionality is enabled or not
nameInCustomerPortal:
type:
- string
- 'null'
description: Display name of the department in the help center
maxLength: 200
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
examples:
Valid requestBody Definitions:
value:
isAssignToTeamEnabled: true
nameInCustomerPortal: zPhone Support
dissociateAgents_agentIdsArray:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
agentIds:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: false
required:
- agentIds
examples:
Valid requestBody Definitions:
value:
agentIds:
- '1892000000056007'
disableTransfer:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
emailNewDepartment:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
agentNewDepartment:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
required:
- agentNewDepartment
examples:
Valid requestBody Definitions:
value:
emailNewDepartment: '1892000000082069'
agentNewDepartment: '1892000000082069'
addDepartmentJson:
content:
application/json:
schema:
additionalProperties: false
allOf:
- $ref: '#/components/schemas/updateDepartmentJson'
- type:
- 'null'
- object
properties:
isVisibleInCustomerPortal:
type:
- boolean
- 'null'
description: Key that denotes if the department is visible in the help center or not
name:
type:
- string
- 'null'
description: Name of the department
maxLength: 200
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
description:
type:
- string
- 'null'
description: A short description of the department
maxLength: 100
minLength: 0
associatedAgentIds:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: false
- type: object
required:
- associatedAgentIds
- name
examples:
Valid requestBody Definitions:
value:
isAssignToTeamEnabled: false
isVisibleInCustomerPortal: true
name: zPhone
description: With the most advanced technology, the zPhone is the world’s largest selling smartphone.
associatedAgentIds:
- '1892000000042001'
- '1892000000056007'
nameInCustomerPortal: zPhone
associateAgents_agentIdsArray:
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
agentIds:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: false
required:
- agentIds
examples:
Valid requestBody Definitions:
value:
agentIds:
- '1892000000042001'
- '1892000000056007'
responses:
deptCountResponse:
description: deptCountResponse template definitions
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
count:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
required:
- count
examples:
Valid responses Definitions:
value:
count: 5
departmentListViewArray:
description: departmentListViewArray template definitions
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
data:
$ref: '#/components/schemas/data'
required:
- data
examples:
Valid responses Definitions:
value:
data:
- isAssignToTeamEnabled: true
chatStatus: AVAILABLE
isDefault: true
hasLogo: true
isVisibleInCustomerPortal: true
isEnabled: true
name: Zylker
creatorId: '1892000000042001'
description: Zylker Inc. is a multinational technology company that designs, develops, and sells consumer electronics.
createdTime: 1564146662000
id: '1892000000082069'
nameInCustomerPortal: ZylCares
- isAssignToTeamEnabled: true
chatStatus: AVAILABLE
isDefault: false
hasLogo: true
isVisibleInCustomerPortal: true
isEnabled: true
name: zPad
creatorId: '1892000000042001'
description: zPad is the most advanced tablet that brings you the never-experienced-before processing power.
createdTime: 1566904321000
id: '1892000000082085'
nameInCustomerPortal: zPad
checkNameResponse:
description: checkNameResponse template definitions
content:
application/json:
schema:
type:
- 'null'
- object
additionalProperties: false
properties:
isDepartmentNameExist:
type:
- boolean
- 'null'
required:
- isDepartmentNameExist
examples:
Valid responses Definitions:
value:
isDepartmentNameExist: true
getDepartmentResponse:
description: getDepartmentResponse template definitions
content:
application/json:
schema:
additionalProperties: false
allOf:
- $ref: '#/components/schemas/commonDepartmentResponse'
- type:
- 'null'
- object
properties:
associatedAgentIds:
type:
- 'null'
- array
items:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
uniqueItems: false
required:
- associatedAgentIds
examples:
Valid responses Definitions:
value:
isAssignToTeamEnabled: false
chatStatus: NOT_CREATED
hasLogo: false
isVisibleInCustomerPortal: true
creatorId: '1892000000042001'
description: With the most advanced technology, the zPhone is the world’s largest selling smartphone.
associatedAgentIds:
- '1892000000042001'
- '1892000000056007'
isDefault: false
isEnabled: true
name: zPhone
createdTime: 1564146662000
id: '1892000000082085'
nameInCustomerPortal: zPhone
parameters:
limit:
name: limit
in: query
description: Number of agents to fetch; default value is 10 and maximum value is 200
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
- integer
format: int32
description: Number of agents to fetch; default value is 10 and maximum value is 200
maximum: 200
minimum: 0
pattern: ([0-9]+)
departmentId:
name: departmentId
in: path
required: true
style: simple
explode: false
schema:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
searchStr:
name: searchStr
in: query
description: 'String to search for agents by first name, last name, or email ID. The string must contain at least one character. Three search methods are supported: 1) string* - Searches for agents whose first name, last name, or email ID start with the string, 2) *string* - Searches for agents whose first name, last name, or email ID contain the string, 3) string - Searches for agents whose first name, last name, or email ID is an exact match for the string'
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
description: 'String to search for agents by first name, last name, or email ID. The string must contain at least one character. Three search methods are supported: 1) string* - Searches for agents whose first name, last name, or email ID start with the string, 2) *string* - Searches for agents whose first name, last name, or email ID contain the string, 3) string - Searches for agents whose first name, last name, or email ID is an exact match for the string'
maxLength: 100
minLength: 0
from:
name: from
in: query
description: Index number, starting from which the agents must be listed
required: false
style: form
explode: true
schema:
type:
- string
- 'null'
- integer
format: int32
description: Index number, starting from which the agents must be listed
minimum: 0
pattern: ([0-9]+)
schemas:
updateDepartmentJson:
type:
- 'null'
- object
additionalProperties: false
properties:
isAssignToTeamEnabled:
type:
- boolean
- 'null'
description: Key that denotes if the assign to team functionality is enabled or not
nameInCustomerPortal:
type:
- string
- 'null'
description: Display name of the department in the help center
maxLength: 200
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
required:
- isAssignToTeamEnabled
- nameInCustomerPortal
data:
type:
- 'null'
- array
items:
$ref: '#/components/schemas/commonDepartmentResponse'
commonDepartmentResponse:
type:
- 'null'
- object
additionalProperties: false
properties:
isAssignToTeamEnabled:
type:
- boolean
- 'null'
chatStatus:
type:
- string
- 'null'
enum:
- AVAILABLE
- DISABLED
- NOT_CREATED
maxLength: 100
minLength: 0
hasLogo:
type:
- boolean
- 'null'
sanitizedName:
type:
- string
- 'null'
maxLength: 100
minLength: 0
isVisibleInCustomerPortal:
type:
- boolean
- 'null'
creatorId:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
description:
type:
- string
- 'null'
maxLength: 100
minLength: 0
isDefault:
type:
- boolean
- 'null'
isEnabled:
type:
- boolean
- 'null'
name:
type:
- string
- 'null'
maxLength: 200
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
createdTime:
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))
id:
type:
- string
- 'null'
- integer
format: int64
pattern: ([0-9]+)
nameInCustomerPortal:
type:
- string
- 'null'
maxLength: 200
minLength: 0
pattern: ([0-9a-zA-Z_\-\.\$@\?\,\:\'\/\!\P{InBasicLatin}\s])+
required:
- chatStatus
- createdTime
- creatorId
- description
- hasLogo
- id
- isAssignToTeamEnabled
- isDefault
- isEnabled
- isVisibleInCustomerPortal
- name
- nameInCustomerPortal
- sanitizedName
securitySchemes:
iam-oauth2-schema:
$ref: ./Common.json#/components/securitySchemes/iam-oauth2-schema
x-entity: Department