Searching across all modules in Zoho Desk is accomplished via a single API endpoint that queries tickets, contacts, accounts, tasks, and more in one call — provided your OAuth token carries the correct search scope.
Why this matters
When support agents or integrations need to locate a record without knowing which module it lives in, a module-by-module lookup is slow and error-prone. Zoho Desk exposes a dedicated cross-module search operation so you can retrieve matching records from every relevant area of your helpdesk in a single round-trip. This is especially useful in automated workflows, chatbots, or custom portals built on top of Zoho Desk's API.
Step-by-step
Step 1. Confirm your OAuth application includes the Desk.search.READ scope. Without it, the search endpoint will return an authorisation error. This scope sits alongside the other Desk scopes such as Desk.tickets.READ, Desk.contacts.READ, and Desk.articles.READ — all of which may also be needed depending on which modules you want results from. [1]
Step 2. Request (or refresh) an OAuth access token that includes Desk.search.READ in its granted scopes. If you are building a multi-app integration that also touches Zoho CRM, combine the Desk scopes with your CRM scopes into a single authorisation request so you only need one token. [1][3]
Step 3. Issue an HTTP GET request to the Zoho Desk API endpoint /api/v1/search, passing your query parameters in the request. The operation is identified internally as searchacrossmodules. [2]
GET https://desk.zoho.com/api/v1/search
Authorization: Zoho-oauthtoken <your_access_token>
Step 4. Supply your search term and any optional filters as query-string parameters (represented as the p dictionary in the API wrapper). At minimum you will typically pass a word or searchStr parameter containing the text you want to find. [2]
Step 5. Parse the JSON response. Results are grouped by module, so your code should iterate over the returned object keys (e.g., tickets, contacts, accounts) to surface the relevant records to your user or downstream system. [2]
Step 6. If you are embedding this inside a conversational assistant or chat interface, the tool can be invoked dynamically when a user asks a question that references their Desk data. The assistant layer calls searchacrossmodules and then formats the results into a human-readable reply. [4][7]
Common pitfalls
- Missing scope at token generation time. The
Desk.search.READscope must be present when the OAuth token is *first created*. Adding it to your config after the fact does nothing until the user re-authorises. Double-check your scope list before going to production. [1][3]
- Wrong data centre base URL. Zoho Desk is hosted across multiple data centres (
com,eu,in,com.au, etc.). Make sure the base URL you call matches the data centre where the portal was created, otherwise you will receive a redirect or a 404. [7]
- Scope conflicts in combined integrations. If your application also connects to Zoho CRM, the combined scope string must be carefully constructed — Desk scopes and CRM scopes are concatenated together. A formatting error (e.g., a missing comma or trailing space) can silently drop scopes from the token. [1][3]
- API errors surfaced as tool errors. If Zoho rejects the request (for example, due to an expired token or a malformed parameter), the response will contain an
errorfield rather than results. Build error-handling logic that detects this and prompts the user or retries with corrected parameters. [6]
What to check
- Scope is present in the live token — decode your access token or inspect the OAuth grant to confirm
Desk.search.READappears in the scope list before making the first call. [1] - The endpoint path and data centre URL are correct — verify that your base URL matches the portal's data centre and that the path is exactly
/api/v1/search. [2][7] - Response contains results for the expected modules — run a test query for a known record and confirm that the module you expect (e.g., tickets or contacts) appears in the response payload. [2]
---
*Beam Help is an independent expert support resource for Zoho products and is not official Zoho support. Always refer to the Zoho Desk API documentation for the latest scope and endpoint specifications.*