Listing all teams in Zoho Desk is straightforward via the API: a single GET request to the /api/v1/teams endpoint returns every team across all departments associated with your organisation.
Why this matters
Support operations often span multiple departments, each with dedicated teams handling different queues or skill sets. Knowing how to programmatically retrieve the full team list lets you audit assignments, build integrations, or populate dropdowns in custom tooling — all without clicking through the Zoho Desk UI manually. As independent expert support for Zoho (not official Zoho support), Beam Help documents these patterns so your developers can move faster.
Step-by-step
Step 1. Confirm your OAuth token includes the correct Desk scopes before making any call. At minimum you need Desk.basic.READ in your authorised scope set, which covers organisations, agents, and departments — the same tier that governs team data. [2]
Step 2. Ensure your integration has a valid orgId stored for the Desk organisation you want to query. If the org ID is missing, the Zoho Desk client will attempt to auto-discover it by calling the organisations endpoint and persisting the first result. Without a resolved orgId, subsequent calls — including the teams endpoint — will fail or return unexpected results. [3] [7]
Step 3. Send a GET request to the teams endpoint:
GET /api/v1/teams
This operation — internally referred to as listteamsfromallassociated — retrieves teams from every department linked to your account in one call. [4]
Step 4. Optionally pass a p parameter object to filter or paginate the results. The endpoint accepts a p dictionary for query parameters, so you can append standard Zoho Desk pagination keys (such as from and limit) as needed. [4]
A minimal Python call using the Desk client looks like this:
def list_teams_from_all_associated(self, p: dict = None):
return self.c.request("GET", "/api/v1/teams", p, None)
Step 5. Parse the response. The returned payload will contain team records drawn from all associated departments. Display the key fields — team name, ID, associated department — to your users or downstream system. [6]
Common pitfalls
- Missing
Desk.basic.READscope. If this scope is absent from your OAuth grant, the/api/v1/teamscall will return an authorisation error. Double-check your configured scope list and re-authorise if necessary. [2] - Unresolved
orgId. The Zoho Desk client attaches theorgIdas a header on every request. If the stored value is blank and auto-discovery has not yet run, the API will reject the call. Trigger an organisations lookup first to populate and persist the ID. [3] [7] - Confusing CRM and Desk credentials. The Desk client is initialised separately from the CRM client and uses a different API domain and token flow. Passing a CRM access token to a Desk endpoint — or vice versa — will result in authentication failures. Always instantiate the correct client for the product you are targeting. [7]
What to check
- Verify that
Desk.basic.READ(and any other required scopes) appear in your active OAuth token before calling the endpoint. [2] - Confirm that a non-empty
orgIdis stored and attached to your Desk client instance prior to making the request. [3] - After receiving the response, cross-reference at least one returned team name against your Zoho Desk Settings → Teams page to confirm the data is current and complete. [4]