Beam Help
Get help now

How-to · Zoho CRM

How to retrieve product pricing in Zoho

Fetch product pricing information from your Zoho price books.

Retrieving product pricing in Zoho CRM is done by calling the Price Books endpoint for a specific product, which returns all pricing tiers associated with that product record.


Why this matters


When you manage a product catalogue in Zoho CRM, different customers or channels may be assigned different price books. Being able to programmatically fetch the pricing attached to a product lets you automate quoting, validate pricing rules, or surface the right price in downstream systems — without manually browsing the CRM UI. This is especially useful for integrations and custom dashboards built on top of Zoho CRM data.


> Beam Help is an independent expert support resource for Zoho — not official Zoho support.


---


Step-by-step


Step 1. Ensure a valid Zoho CRM connection exists for the user.


Before any API call can be made, the system must retrieve a live connection record for the authenticated user. The connection lookup queries stored credentials and, if the access token is within 120 seconds of expiry, automatically refreshes it using the stored refresh token — so you never hit a mid-request 401 error. [8]


Step 2. Obtain a Zoho CRM API instance.


Pass the userid and apptype="crm" to the API factory function. This wires up the token-refresh callback so that any subsequent call can silently renew credentials if needed. If no connection record is found, the function returns None and you should prompt the user to reconnect their Zoho account. [1]


Step 3. Identify the product_id you want to query.


Every product in Zoho CRM has a unique record ID. You can obtain this from a prior product search, from a deal's line items, or directly from the CRM URL when viewing the product record. The ID is a numeric string and is required as a path parameter in the next step. [2]


Step 4. Call the Price Books endpoint.


Issue a GET request to the following path, substituting the product's ID:


GET /Products/{product_id}/Price_Books

The operation name for this endpoint is getproductpricing, and it accepts a single parameter — product_id. The underlying implementation constructs the request as:


self.c.request("GET", f"/Products/{product_id}/Price_Books")

This returns the price book data associated with that product. [2]


Step 5. Handle the response and build any record links.


Once the API returns a result, you can optionally generate direct deep-links back into the Zoho CRM UI. The link builder uses the user's data-centre setting (e.g. com, eu, in) and org ID to construct URLs in the format:


https://crm.zoho.{dc}/crm/tab/{Module}/{RecordId}

This lets you present clickable references to the product or price book records alongside the raw pricing data. [4]


---


Common pitfalls


  • Missing or expired tokens. If getzohoconnection returns None, the user's OAuth credentials are not stored or have been revoked. The fix is to re-run the OAuth authorisation flow and store a fresh refresh token. The system proactively refreshes tokens 120 seconds before expiry to reduce this risk, but a fully revoked token cannot be auto-healed. [8]

  • Wrong apptype. The Price Books endpoint lives in Zoho CRM, not Zoho Desk. Always pass apptype="crm" when initialising the API instance. Passing "desk" will route the request to the Desk client, which has a completely different base URL and authentication header structure, and the call will fail. [1]

  • Invalid or mismatched product_id. The path parameter must be the CRM record ID of the product, not its name or SKU. Passing a non-existent ID will result in an empty or error response from the API. Double-check the ID against the product record in CRM before calling the endpoint. [2]

---


What to check


  • Token validity: Confirm that getzohoconnection returns a non-None result and that tokenexpiresat is in the future before making the pricing call. [8]
  • Correct product ID: Verify the product_id matches an existing Products record in your Zoho CRM org — a quick lookup in the CRM UI or via a prior search call will confirm this. [2]
  • Response structure: Ensure the returned payload contains the expected price book entries; an empty data array may mean the product has no price books assigned, not that the call failed. [2]

Sources cited

  1. [1] server.py: get_zoho_api
  2. [2] GET /Products/{product_id}/Price_Books
  3. [3] browser_automation.py
  4. [4] server.py: build_zoho_links
  5. [5] db.py
  6. [6] server.py: chat_stream
  7. [7] server.py: chat
  8. [8] server.py: get_zoho_connection
How to retrieve product pricing in Zoho | Beam Help — Beam Help