Retrieving your account information in Zoho Desk requires a valid OAuth connection, a resolved organisation ID, and the correct API scopes — once those three pieces are in place, account data flows reliably through the Desk API.
Why this matters
Zoho Desk organises all support data — tickets, contacts, and accounts — under a specific organisation. If your integration or automation tool cannot identify that organisation, every subsequent API call will fail silently or return empty results. Understanding how account retrieval works helps you diagnose connection issues quickly and ensures your Desk data is always accessible.
> Note: Beam Help is independent expert support for Zoho — we are not official Zoho support.
---
Step-by-step
Step 1. Confirm your OAuth connection is active.
Before any account data can be retrieved, your Zoho Desk connection must hold a valid access token. The system checks for an existing connection record and, if the token has expired, automatically calls the token refresh flow using the stored refreshtoken to obtain a fresh accesstoken, updating the record with the new token and its expiry timestamp. [1]
Step 2. Ensure the correct OAuth scopes are granted.
Your OAuth authorisation must include, at minimum, Desk.contacts.READ for contacts and the broader Desk.basic.READ scope for organisations and agents. For full account-level read and write access, scopes such as Desk.contacts.WRITE, Desk.contacts.CREATE, and Desk.contacts.UPDATE should also be present. Without these scopes, the API will reject requests even with a valid token. [4]
Step 3. Resolve your Desk organisation ID.
Zoho Desk requires an orgid (organisation identifier) to be sent with every API request. If this value is not already stored in your connection record, the system will automatically call the organisations endpoint (getall_organizations) to discover it. The first organisation returned in the response list is used, its id field is extracted, and the value is then persisted back to the connection record so future calls do not need to repeat this lookup. [1][5]
Step 4. Initialise the Desk API client with the resolved org ID.
Once the org_id is confirmed, a ZohoDeskClient is constructed using your API domain, the current access token, and the organisation ID. A ZohoDeskApi instance is then built on top of that client. All subsequent calls — including account retrieval — are made through this API object. [1][7]
Step 5. Retrieve account information.
With the client initialised, you can query account (and related contact) records. The Desk API surfaces accounts under the contacts and accounts endpoints. In a browser-based integration, direct links to the accounts list follow the pattern .../accounts appended to your Desk records root URL, which the system constructs automatically when the entity type is identified as "account". [3]
Step 6. Verify user and organisation details via the user-info endpoint.
If you need to confirm which Zoho user and organisation are associated with the active token, the OAuth user-info endpoint at https://accounts.zoho.{DC}/oauth/user/info returns fields including ZUID (the Zoho user ID) and Email. The organisation ID may appear under orgid, organizationid, or ZGID depending on your data centre — the system tries each field in sequence and falls back to the user ID for single-user organisations. [2]
---
Common pitfalls
- Missing org ID causes silent failures. If
getallorganizationsreturns an empty list or an unexpected structure, theorg_idwill remain blank and all account-related API calls will be rejected. Always verify the organisations endpoint returns at least one item before proceeding. [7]
- Data-centre field name variations. The user-info endpoint does not return identical field names across all Zoho data centres. For example, the organisation name might be
companyname,organizationname, orCompany_Name. Hard-coding a single field name will cause lookup failures on some DCs. [2]
- Expired tokens not caught early. If the token refresh step fails (for example, the
refresh_tokenitself has been revoked), the system returnsNonefor the access token and no API calls will succeed. Check that your refresh token is still valid and that the stored record is up to date. [1]
- Insufficient scopes after reconnection. Re-authorising without including all required Desk scopes (particularly
Desk.basic.READandDesk.contacts.READ) will result in 403 errors when fetching account data, even though the token itself is valid. [4]
---
What to check
- Org ID is stored and non-empty in your connection record after the first successful API call — if it is blank, trigger the organisations discovery step manually. [5]
- All required OAuth scopes (
Desk.contacts.READ,Desk.basic.READ, and any write scopes your workflow needs) are included in the active authorisation grant. [4] - The access token is current and the refresh mechanism is functioning — confirm the
tokenexpiresatvalue in your connection record is in the future before making account retrieval calls. [1][2]