Retrieving an approval record in Zoho Desk requires the ticket ID and the approval ID — once you have both, a single GET request returns the full approval details.
Why this matters
Approval workflows in Zoho Desk let agents and managers gate ticket progress behind formal sign-offs. If you need to audit an approval decision, display its current status in an external dashboard, or feed approval data into a downstream automation, you must be able to fetch that specific approval record programmatically. Knowing the correct endpoint and required parameters saves time and avoids unnecessary list queries.
Step-by-step
Step 1. Confirm you have the correct OAuth scopes enabled for your Zoho Desk integration. At minimum your token must include Desk.tickets.READ so that ticket-level sub-resources such as approvals are accessible. [5]
Step 2. Identify the two required path parameters you will need before making any call:
ticketId— the unique identifier of the ticket that owns the approval.approvalId— the unique identifier of the specific approval record you want to retrieve.
Both values are strings and must be present; the endpoint will not resolve without them. [8]
Step 3. Make a GET request to the following endpoint, substituting your real values for the placeholders:
GET /api/v1/tickets/{ticketId}/approvals/{approvalId}
For example, if your ticket ID is 123456 and your approval ID is 789, the resolved path becomes /api/v1/tickets/123456/approvals/789. [8]
Step 4. Pass your OAuth access token in the Authorization header. If your token has expired, the client must exchange the stored refresh token for a new access token before retrying the request. [3]
Step 5. Optionally supply additional query parameters via the p dictionary (e.g., field filters or pagination hints supported by the Zoho Desk API). If you have no extra parameters, pass an empty object or omit it entirely. [8]
Step 6. Handle the response. A successful call returns the approval object as JSON. If the response contains an "error" key, surface that message to the user or log it for debugging before retrying. [2]
---
> Note: Beam Help is independent expert support for Zoho — we are not official Zoho support. Always verify endpoint behaviour against your specific Zoho Desk data centre and API version.
Common pitfalls
- Missing or swapped IDs. Passing the approval ID where the ticket ID is expected (or vice versa) will return a 404 or an unrelated record. Double-check the order: ticket ID comes first in the path, approval ID second. [8]
- Insufficient OAuth scope. If your connected app was authorised without
Desk.tickets.READ, the API will reject the request with a permissions error. Re-authorise the OAuth flow with the correct scopes included. [5] - Expired access token. Zoho access tokens have a limited lifetime. Ensure your integration automatically refreshes the token using the stored refresh token when a 401 response is received. [3]
- Organisation ID not set. Zoho Desk API calls are scoped to an organisation. If the
orgIdheader is absent or incorrect, requests may fail or return data from the wrong portal. Confirm the org ID is resolved and attached to every request. [7]
What to check
- Verify that the
ticketIdandapprovalIdvalues you are using actually exist in your Zoho Desk portal before calling the endpoint. [8] - Confirm your OAuth token includes
Desk.tickets.READand has not expired prior to making the request. [5] - Inspect the JSON response for an
"error"field and handle it gracefully in your integration logic before attempting any further processing. [2]