Zoho Desk API Directory

Zoho Desk is a powerful, cloud-based customer service software designed to streamline support operations and enhance customer satisfaction. As part of the Zoho suite, Zoho Desk empowers businesses to manage customer queries across multiple channels—email, social media, chat, and more—through a unified platform. It offers features like ticket management, workflow automation, and detailed analytics, helping support teams stay organized and efficient.

With the Zoho Desk API, developers can take things a step further by connecting Zoho Desk with other tools, automating tasks, and customizing workflows. 

Key highlights of Zoho Desk API are as follows - 

  1. Multi-Channel Ticket Management: These APIs help you to access and manage tickets from multiple channels, like email, chat, and social media, through a single API.
  2. Workflow Automation: These endpoints can automate repetitive tasks, such as ticket assignments and status updates, to improve response times and team efficiency.
  3. Custom Integrations: These APIs help to connect Zoho Desk with other apps, CRMs, or systems to create a unified customer support experience.
  4. Advanced Reporting: These APIs help to retrieve data for performance tracking, including response times, ticket trends, and customer satisfaction metrics.
  5. Custom Fields and Modules: These APIs help to extend Zoho Desk functionality with custom fields and modules tailored to your business needs.
  6. Real-Time Updates: These APIs can be used to get instant notifications for ticket changes, comments, and other updates using webhooks.
  7. Secure Authentication: Zoho Desk APIs use OAuth 2.0 for secure access, ensuring data safety and privacy.

In this article, we’ll explore the key Zoho Desk API endpoints and how they can provide flexibility to build powerful, custom solutions that enhance your customer service capabilities.

Zoho Desk API Endpoints

Zoho Desk APIs make it easy to connect with other Zoho apps and external tools by using RESTful principles. With these APIs, you can automatically get and update data in various parts of Zoho Desk, like Tickets, Contacts, and Accounts. All the APIs follow standard HTTP rules and use error codes for better understanding.

Here are the most commonly used Zoho Desk API endpoints - 

Organizations

  • GET /api/v1/organizations/{organization_Id}
  • GET /api/v1/organizations
  • GET /api/v1/accessibleOrganizations
  • PATCH /api/v1/organizations/{organization_Id}
  • GET /api/v1/organizations/{organization_Id}/logo
  • GET /api/v1/organizations/{organization_Id}/favicon
  • POST /api/v1/organizations/{organization_Id}/logo
  • POST /api/v1/organizations/{organization_Id}/favicon
  • DELETE /api/v1/organizations/{organization_Id}/logo
  • DELETE /api/v1/organizations/{organization_Id}/favicon
  • POST /api/v1/organizations/markDefault

Agents

  • GET /api/v1/agents/{agent_id}
  • GET /api/v1/agents
  • GET /api/v1/agents/count
  • GET /api/v1/agentsByIds?agentIds={agent_ids}
  • GET /api/v1/myinfo
  • POST /api/v1/agents/activate
  • POST /api/v1/agents/{agent_id}/deactivate
  • POST /api/v1/agents/reinvite
  • POST /api/v1/agents
  • PATCH /api/v1/agents/{agent_id}
  • POST /api/v1/agents/deleteUnconfirmed
  • POST /api/v1/agents/{agent_id}/delete
  • POST /api/v1/deletedAgents/{agent_id}/anonymize
  • POST /api/v1/uploadMyPhoto
  • GET /api/v1/agents/{agent_id}/photo?orgId={org_id}
  • POST /api/v1/deleteMyPhoto
  • GET /api/v1/myPreferences
  • PATCH /api/v1/myPreferences
  • GET /api/v1/agents/email/{email}
  • POST /api/v1/agents/{agent_id}/reassignment

Profiles

  • GET /api/v1/profiles
  • GET /api/v1/profiles/count
  • GET /api/v1/profiles/{profile_id}
  • POST /api/v1/profiles/{profile_id}/clone
  • PATCH /api/v1/profiles/{profile_id}
  • POST /api/v1/profiles/{profile_id}/delete
  • GET /api/v1/myProfile
  • GET /api/v1/myProfilePermissions
  • GET /api/v1/profiles/{profile_id}/agents
  • GET /api/v1/lightAgentProfile

Roles

  • GET /api/v1/roles
  • GET /api/v1/roles/{role_id}/agents
  • POST /api/v1/roles
  • PATCH /api/v1/roles/{role_id}
  • POST /api/v1/roles/{role_id}/delete
  • GET /api/v1/roles/{role_id}
  • GET /api/v1/roles/count
  • GET /api/v1/personalRole
  • GET /api/v1/rolesByIds

Teams

  • POST /api/v1/teams
  • PATCH /api/v1/teams/{team_id}
  • POST /api/v1/teams/{team_id}/deleteTeam
  • GET /api/v1/teams/{team_id}
  • GET /api/v1/teams
  • GET /api/v1/teams/{team_id}/members
  • GET /api/v1/teams/{team_id}/associables
  • GET /api/v1/agents/{agent_id}/teams
  • GET /api/v1/roles/{role_id}/teams
  • GET /api/v1/departments/{department_id}/teams

Departments

  • GET /api/v1/departments/{department_id}
  • GET /api/v1/departments
  • GET /api/v1/departments/{department_id}/agents
  • GET /api/v1/departments/count
  • GET /api/v1/departmentsByIds?departmentIds={department_ids}
  • GET /api/v1/departments/checkExists
  • POST /api/v1/departments
  • PATCH /api/v1/departments/{department_id}
  • POST /api/v1/departments/{department_id}/disable
  • POST /api/v1/departments/{department_id}/enable
  • POST /api/v1/departments/{department_id}/associateAgents
  • POST /api/v1/departments/{department_id}/dissociateAgents
  • GET /api/v1/departments/{department_id}/logo
  • POST /api/v1/departments/{department_id}/logo
  • DELETE /api/v1/departments/{department_id}/logo

Channels

  • GET /api/v1/channels

Tickets

  • GET /api/v1/tickets/{ticket_id}
  • GET /api/v1/tickets
  • GET /api/v1/tickets/archivedTickets
  • GET /api/v1/associatedTickets
  • POST /api/v1/tickets
  • PATCH /api/v1/tickets/{ticket_id}
  • POST /api/v1/tickets/moveToTrash
  • POST /api/v1/tickets/deleteSpam
  • POST /api/v1/tickets/{ticket_id}/merge
  • POST /api/v1/tickets/{ticket_id}/move
  • POST /api/v1/tickets/{ticket_id}/threads/{thread_id}/split
  • POST /api/v1/tickets/updateMany
  • POST /api/v1/closeTickets
  • POST api/v1/tickets/{ticket_id}/markAsRead
  • POST api/v1/tickets/{ticket_id}/markAsUnRead
  • POST /api/v1/tickets/markSpam
  • GET api/v1/ticketQueueView/count
  • GET api/v1/agentsTicketsCount
  • GET api/v1/tickets/{ticket_id}/History
  • GET api/v1/tickets/{ticket_id}/resolution
  • GET api/v1/tickets/{ticket_id}/resolutionHistory
  • PATCH api/v1/tickets/{ticket_id}/resolution
  • DELETE api/v1/tickets/{ticket_id}/resolution
  • GET /api/v1/tickets/([0-9]+)/metrics
  • POST /api/v1/tickets/emptySpam
  • POST /api/v1/tickets/{ticket_id}/executeSkillbasedAssignment
  • POST /api/v1/tickets/{ticket_id}/recalculateSkills
  • GET /api/v1/tickets/{ticket_id}/articleSuggestion

Thread

  • GET /api/v1/tickets/{ticket_id}/threads/{thread_id}
  • GET /api/v1/tickets/{ticket_id}/threads/{thread_id}/originalContent
  • GET /api/v1/tickets/{ticket_id}/latestThread
  • POST /api/v1/tickets/{ticket_id}/threads/{thread_id}/sendForReview
  • GET /api/v1/tickets/{ticket_id}/threads
  • GET /api/v1/tickets/{ticket_id}/conversations
  • POST /api/v1/tickets/{ticket_id}/sendReply
  • POST /api/v1/tickets/{ticket_id}/draftReply
  • PATCH /api/v1/tickets/{ticket_id}/draftReply/{thread_id}
  • DELETE /api/v1/tickets/{ticket_id}/threads/{thread_id}/attachments/{attachment_id}

Contacts

  • GET /api/v1/contacts/{contact_id}
  • GET /api/v1/contacts
  • POST /api/v1/contacts
  • PATCH /api/v1/contacts/{contact_id}
  • POST /api/v1/contacts/moveToTrash
  • POST /api/v1/contacts/deleteSpam
  • GET /api/v1/contacts/{contact_id}/profiles
  • POST /api/v1/contacts/updateMany
  • GET /api/v1/contacts/contactsByIds
  • GET /api/v1/contacts/{contact_id}/tickets
  • GET /api/v1/contacts/{contact_id}/products
  • GET api/v1/contacts/count
  • GET /api/v1/contacts/{contact_id}/statistics
  • POST /api/v1/contacts/{contact_id}/merge
  • POST /api/v1/contacts/markSpam
  • POST api/v1/contacts/{contact_id}/associateProducts
  • GET api/v1/contacts/{contact_id}/history
  • POST api/v1/contacts/inviteAsEndUser
  • POST api/v1/contacts/{contact_id}/inviteAsEndUser
  • DELETE api/v1/contacts/{contact_id}/photo
  • GET api/v1/contacts/{contact_id}/helpCenters
  • GET /api/v1/contacts/{contact_id}/accounts
  • POST api/v1/contacts/{contact_id}/associateAccounts
  • POST api/v1/contacts/{contact_id}/dissociateAccounts
  • POST /api/v1/contacts/{contact_id}/approveEndUserInvite
  • POST /api/v1/contacts/{contact_id}/rejectEndUserInvite

Accounts

  • GET /api/v1/accounts/{account_id}
  • GET /api/v1/accounts
  • POST /api/v1/accounts
  • PATCH /api/v1/accounts/{account_id}
  • POST /api/v1/accounts/moveToTrash
  • GET /api/v1/accounts/{account_id}/contracts
  • GET api/v1/contracts/count
  • GET api/v1/accounts/count
  • GET api/v1/accounts/{accounts_id}/contacts?from={from}&limit={limit}&sortBy={sortingField}
  • GET /api/v1/accounts/{account_id}/tickets
  • GET /api/v1/accounts/{account_id}/products
  • POST /api/v1/accounts/{account_id}/merge
  • POST api/v1/accounts/{account_id}/associateProducts
  • POST /api/v1/accounts/updateMany
  • GET api/v1/accounts/{account_id}/history
  • GET /api/v1/accounts/([0-9]+)/statistics
  • GET /api/v1/accounts/{account_id}/sla
  • POST /api/v1/accounts/{account_id}/sla/{sla_id}

Account Contact Mapping

  • PATCH /api/v1/accountContactMapping/{mapping_id}

Tasks

  • GET /api/v1/tasks/{task_id}
  • GET /api/v1/tasks
  • POST /api/v1/tasks
  • PATCH /api/v1/tasks/{task_id}
  • POST /api/v1/tasks/moveToTrash
  • POST /api/v1/tasks/deleteSpam
  • GET /api/v1/tickets/{ticket_id}/tasks
  • GET /api/v1/tasks/count
  • POST /api/v1/tasks/updateMany
  • POST /api/v1/tasks/emptySpam

Products

  • GET /api/v1/products/{product_id}
  • GET /api/v1/products
  • POST /api/v1/products
  • GET /api/v1/products/{product_id}/tickets
  • PATCH /api/v1/products/{product_id}
  • POST /api/v1/products/moveToTrash
  • GET /api/v1/products/searchDuplicates
  • POST api/v1/products/{product_id}/associateContacts
  • POST api/v1/products/{product_id}/associateAccounts
  • GET api/v1/products/{products_id}/accounts
  • GET api/v1/products/{products_id}/contacts

Users

  • GET /api/v1/users
  • GET /api/v1/users/{user_id}
  • PATCH /api/v1/users/{user_id}
  • POST api/v1/users/{user_id}/anonymize
  • GET /api/v1/users/{user_id}/groups
  • POST /api/v1/users/{user_id}/groups/associate
  • POST /api/v1/users/{user_id}/groups/dissociate
  • GET /api/v1/users/{user_id}/labels
  • POST /api/v1/users/{user_id}/labels/assign
  • POST /api/v1/users/{user_id}/labels/remove
  • GET /api/v1/users/([0-9]+)/badges
  • POST /api/v1/users/{user_id}/badges/associate
  • POST /api/v1/users/{user_id}/badges/dissociate

Contracts

  • GET api/v1/contracts/{{contract_id}}
  • GET api/v1/contracts
  • POST /api/v1/contracts
  • PATCH /api/v1/contracts/{contract_id}
  • POST api/v1/contracts/moveToTrash
  • POST /api/v1/contracts/updateMany

Upload

  • POST /api/v1/uploads

Activities

  • GET /api/v1/tickets/{ticket_id}/activities
  • POST /api/v1/activities/emptySpam

Calls

  • GET api/v1/calls/{call_id}
  • GET api/v1/calls
  • POST api/v1/calls
  • PATCH api/v1/calls/{call_id}
  • GET /api/v1/tickets/{ticket_id}/calls
  • POST /api/v1/calls/moveToTrash
  • POST /api/v1/calls/deleteSpam
  • POST /api/v1/calls/{call_id}/clearLiveCall
  • POST /api/v1/calls/updateMany
  • POST /api/v1/calls/emptySpam

Events

  • GET api/v1/events/{event_id}
  • GET api/v1/events
  • POST api/v1/events
  • PATCH api/v1/events/{event_id}
  • GET /api/v1/tickets/{ticket_id}/events
  • POST /api/v1/events/moveToTrash
  • POST /api/v1/events/deleteSpam
  • POST /api/v1/events/updateMany
  • POST /api/v1/events/emptySpam

Skills

  • POST /api/v1/skills
  • GET /api/v1/skills/{skillId}
  • PATCH /api/v1/skills/{skillId}
  • DELETE /api/v1/skills/{skillId}
  • GET /api/v1/skills
  • GET /api/v1/skills/{skillId}/relatedRules
  • POST /api/v1/skills/order
  • GET /api/v1/agents/{agentId}/skills
  • POST /api/v1/agents/{agentId}/mapSkills
  • GET /api/v1/skills/criteriaFields

Subscriptions

  • GET /subscriptions
  • POST /subscriptions
  • GET /subscriptions/{subscriptionId}
  • PUT /subscriptions/{subscriptionId}
  • DELETE /subscriptions/{subscriptionId}

Time Entries

  • GET /timeentries
  • POST /timeentries
  • GET /timeentries/{entryId}
  • PUT /timeentries/{entryId}
  • DELETE /timeentries/{entryId}

Here’s a detailed reference to all the Zoho Desk API Endpoints.

Zoho Desk API FAQs

Here are the frequently asked questions about Zoho Desk APIs to help you get started:

  1. What is the usage limit of Zoho API? Answer
  2. How does the get Ticket History API work? Answer
  3. What are the events supported in the Get Ticket History API? Answer
  4. How to authenticate calls from a Zoho Desk Extension using a custom API key? Answer
  5. How to get Access Token for Client Based Application for Zoho API? Answer

Find more FAQs here.

Get started with Zoho Desk API

To access the Zoho Desk API, you'll need a Zoho account and an API key, which you can obtain from the Zoho Developer Console. After logging into your Zoho account, navigate to the API Console to create a new client and get your client ID and client secret. Zoho Desk uses OAuth 2.0 for secure authentication, so you’ll authorize the app to generate access tokens. Once authenticated, you’ll have access to Zoho Desk’s API endpoints to start building and integrating with your applications.

If you’re looking for a quick way to connect multiple customer service or CRM systems, consider using Knit—a single API solution that integrates with major platforms, streamlining your setup and reducing development time. To sign up for free, click here. To check the pricing, see our pricing page.

#1 in Ease of Integrations

Trusted by businesses to streamline and simplify integrations seamlessly with GetKnit.