Hello everyone!
Welcome back to another week of Kaizen!
Zoho CRM offers two API architectures for its users:
REST API and
GraphQL API. Each of these API architectures has its own strengths and ideal use cases. In this post, we will discuss the difference between REST API and GraphQL API.
REST APIs, or RESTful APIs, allow clients to interact with server resources using standard
HTTP methods such as GET, POST, PUT, PATCH, and DELETE. GraphQL is a query language that provides a more flexible and efficient way to access data and metadata within your Zoho CRM. Unlike REST APIs that return fixed datasets, GraphQL allows you to request specific resources, fields of the resources and relationships of the resources, reducing redundant data and streamlining your development process.
Endpoints
REST APIs access information through dedicated endpoints.
REST APIs: Multiple endpoints for different resources
In contrast, GraphQL APIs operate through a single endpoint. In Zoho CRM, it is {api-domain}/crm/graphql
GraphQL APIs: Single endpoint for different resourcesOver-fetching and under-fetching of data
REST APIs use Unique Resource Identifiers (URIs) for identifying resources. This approach allows clients to access specific data, but it can also lead to inefficiencies such as over-fetching or under-fetching of information. Over-fetching occurs when the client receives much more data than it requires. Under-fetching occurs when the client requires to send multiple requests to fetch all the data it requires.
In GraphQL APIs, the client controls the structure of the response by specifying the exact information they need. This enables the clients to have precise data control and avoids over-fetching and under-fetching of data. It fetches required data from different resources and provides it as a single resource.
Schema Introspection
GraphQL APIs have a schema that outlines the different types of data that can be queried in the server. This is like a blueprint for the API and serves as a contract between the server and client for data exchange. Refer to this post on
Interpreting Zoho CRM GraphQL schema for more details.
Editions supported
REST APIs are available across all versions of Zoho CRM, including trial versions. GraphQL APIs are supported for Enterprise, Zoho One Enterprise, CRM Plus and Ultimate edition orgs. Please note that GraphQL APIs are not available for trial edition of these editions.
Status Codes
Zoho CRM REST APIs return different status codes. Refer to this page on REST API
status code for more details.
Credits Consumption
API rate limiting is crucial to ensure fair resource distribution, maintain optimal service quality for all users, and safeguard our system from potential security threats.
Both Zoho CRM REST APIs and Zoho CRM GraphQL API calls are associated with credits. Number of credits consumed depends on the intensity of the API call.
Additionally, Zoho CRM REST APIs have Concurrency and Sub-concurrency limits. Concurrency limits the number of API calls that can be active at one time instance. It varies across different editions of Zoho CRM. For a few APIs that are more resource-intensive, there is an additional limit called sub-concurrency, The APIs that will fall under the sub-concurrency limit are
- Get Records with cvid or sort_by parameters
- Convert Lead
- Insert, Update, or Upsert records (when the record count is greater than 10)
- Send Mail
- Search records API invoked from function
- Query API
- Composite API
Sub-concurrency limit across different editions is 10.
In GraphQL APIs, we have different concepts called Complexity, and Depth. Query Complexity refers to the workload imposed on servers by a specific query. This complexity increases with the number of fields requested and the depth of the query structure. Query Depth refers to the nesting level of a field that is being queried. In Zoho CRM GraphQL APIs it is limited to seven.
Suitable scenarios for GraphQL APIs and REST APIs
Let’s explore a scenario - the case of Zylker Manufacturing, an industrial equipment manufacturer. Their sales team uses Zoho CRM to enhance their sales operations and manage customer relationships effectively. Meanwhile, their sales support team relies on a legacy system to oversee their activities.
The support team needs to retrieve comprehensive information about one account and its associated contacts to track all support tickets related to that account. They also need associated deals of the account for contextual information.
With GraphQL APIs they can use a single API call to fetch all required information to create a unified view. The below query fetches specific data related to Accounts and their Contacts and Deals, as well as metadata about the fields in the Accounts , Contacts and Deals modules.
{ Records { Accounts(where: { Account_Name: { like: "%King%" } }) { _data { Account_Name { value } Contacts__r { _data { Email { value } Full_Name { value } } } Deals__r { _data { Expected_Revenue { value } Deal_Name { value } Stage { value } } } } } } account_meta: Meta { Modules(filter: { api_name: "Accounts" }) { _data { plural_label id api_name module_name description singular_label fields(filter: { api_names: "Account_Name" }) { _data { id api_name display_label json_type data_type } } } } } contact_meta: Meta { Modules(filter: { api_name: "Contacts" }) { _data { plural_label id api_name module_name description singular_label fields(filter: { api_names: ["Email", "Full_Name"] }) { _data { id api_name display_label json_type data_type } } } } } deals_meta: Meta { Modules(filter: { api_name: "Deals" }) { _data { plural_label id api_name module_name description singular_label fields(filter: { api_names: ["Expected_Revenue", "Deal_Name", "Stage"] }) { _data { id api_name display_label json_type data_type } } } } } }
|
Using REST APIs in this scenario will require multiple API calls to the following APIs
- Query API
- Related Records API
- Modules meta API, and
- Fields meta API.
We had explored another scenario involving Zylker Manufacturing in detail in an earlier Kaizen post where their sales support team needed the below details from Zoho CRM
- details of the contact, such as email, phone, and Account details
- details of the ongoing deals of the contact, including potential revenue and stages.
GraphQL APIs are beneficial in these cases as they can fetch the required data in a single data query.
Conversely, in simpler use cases, REST APIs may be more suitable. Let’s examine a second scenario involving an inventory management system. Zenith Products needs to manage its product catalog. The inventory management system requires the ability to:
- Fetch Details of a Single Product
- Fetch Details of Multiple Products
- Update Product Information
Each product can be accessed via a unique URL (endpoint), allowing for straightforward requests. For example:
- To fetch a single product: GET /crm/{version}/products/{product_id}
- To fetch multiple products: GET /crm/{version}/products
- To update a product: PUT /crm/{version}/products/{product_id}
In such cases, REST APIs are preferred due to their simplicity.
Note
Currently, Zoho CRM GraphQL APIs only support queries. Queries allow you to fetch data from the server.
You can choose to use Zoho CRM REST APIs or GraphQL APIs depending on the specific need of your application. REST APIs are suitable for straightforward data retrieval needs whereas GraphQL is useful in situations involving complex queries and need precise data control.
We hope you found this post useful. Stay tuned for more insights in our upcoming Kaizen posts!

More enhancements in the
COQL API are now live in Zoho CRM API Version 7. Check out the
V7 Changelog for detailed information on these updates.
Cheers!
Mable
Recent Topics
how to upload a reviewed price list in zoho to replace the existing price list
Price list upload for my zoho books
Company details and emails
Our company has recently been rebranded and we have new email address - How do I update information for users. I have tried to re invite users with new email but it sends me to organization and there is no where I can change the email or invite with new
Linking Resale Certificates to Customer Locations
Florida Resale Certificates must be on every customer invoice. We have customers with multiple locations and each location has a seperate FL Resale Certificate. The FL Resale Certificate makes the transaction EXEMPT from Sales Tax. Can FL Resale Certificate
Notebook App Not Opening
I love this app but for the last 2 days it recuses to open. My phone tells me the app is bugged and I must wait for a new update. Is anyone else having this problem or is something going on with me? I have many important notes that I can't necessarily
Admin and Dispatcher Users show as Field Technicians in Dispatch Module?
Hi Zoho, Our Admin and Dispatch user both show up as Fied Technicians / Field Agents in the Dispatch module, but they most certainly should not be assigned to any of the work orders and service appointments. These users are NOT service resources. How
Copy Sales Order Reference# to Purchase Order#
Hello, We use our customer's purchase order number as the order number on our purchase order to the supplier. We direct ship everything from our suppliers and the customers then see their PO number on the packing notes (instead of a sequentially-generated one). Therefore, is it possible to use automation to copy the Sales Order Reference# (customer PO) to the respective Purchase Order# (our PO) when converting the Sales Order to a Purchase Order?
Free webinar: Zoho Sign in Q2 2025: A quick walkthrough
Hi there! We’re halfway through the year—and Zoho Sign has some exciting enhancements to show for it! Join us in our upcoming webinar to discover what's new and what you can look forward to. What will this session cover? Explore the newest features introduced
Using a Webhook as an Action
I have been able to setup where I can use a webhook as a Trigger, but I am wondering how I can use a webhook as an Action. In the Zoho Flow Builder when using Zoho CRM as a trigger, I do not see a way to invoke a URL to POST json data that can be used
Adding commas to a numeric value
Hi, I want to add commas to numeric values so that they look like money E.g 1234.56 to 1,234.56 12345.67 to 12,345.67 12345678.90 to 12,345,678.90 How do you do that in Deluge? Thanks for the help
Pushing Zoho People leave into Microsoft calendar: how to chose how "event" is shown (busy, free etc)
Hi, how can I select how a "leave" event is pushed into Microsoft calendar? I want for leave "working elsewhere" to show as working elsewhere and NOT as busy.
Tiktok and Instagram Carousel with Music
Is it possible to add music or sound (can be downloaded or uploaded or attached) when we upload carousels in IG and Tiktok?
[Product Update] Locations module migration in Zoho Books integration with Zoho Analytics
Dear Customers, As Zoho Books are starting to support an advance version of the Branches/Warehouses module called the Locations module, users who choose to migrate to the Locations module in Zoho Books will also be migrated in Zoho Analytics-Zoho Books
Once again, non-admins can no longer revise the site map
Not sure when this change happened, but it's a problem now. This appears to be a regression on this issue: https://help.zoho.com/portal/en/community/topic/bug-non-admins-can-no-longer-revise-the-site-map ... which was solved. That issue was also a regression.
Detail View in Mobile without Labels
Zoho creator 6. I have been trying to acheieve this but not able to. I have a quick view of my articles using custom layout for mobile. When i tap on an article it opens in detail view on my mobile which has two cols. Left displays label and right the
Updating task using excel file
Hi, Is there a way to update existing tasks using excel file import? Thanks
Cross module filtering is now supported in CRM
Editions: All DCs: All Release plan: This enhancement is being released in phases. It is now available in AU, JP, and CN DCs. Help resource: Advanced filters The Cross-module filtering enhancement is now available to all CRM accounts in the following
Before Going To The Qc stage , site ready ness file upload mandtoty how to achive this in the blue print transition
Before Going To The Qc stage , site ready ness file upload mandtoty how to achive this in the blue print transition On click of the Predelivery transition can we show site ready ness file upload mandtoty or on click of the QC show the alert message site
Note cards are duplicating
Hi, I've been using this app for some time and love it. Recently I've noticed that upon closing a note card, it creates a duplicate. If I exit the notebook it's in and go back, everything is back to normal. Not a major issue but still a little annoying.
Where is the (Bulk) Notes Export function from Notebook ???????
I have seen various threads over the last two years on this and basically no action from ZOHO at all ! BTW having to go to an individual note and export to PDF (which now doesn't even work ) or some sort of zoho format is by no means the answer ! I still can't see any sort of bulk (or even individual) export function across notes. This is really poor for a notes product that is nearly 4 years old from a "major vendor". I now have a large number of notes (some with images) that I want to export and
Again about the backlighting of the search query when searching in a client for Linux
Some time passed, I installed a client for Linux version 3.4.0, but I still did not receive the promised search with the backlighting of the search query how it was implemented in the client for android. In the previous topic, you told me that this function
Important! ZipRecruiter Sponsored Posting Plan Changes in Zoho Recruit
Greetings, We’re reaching out to inform you about an important upcoming change to the ZipRecruiter Sponsored job board integration within Zoho Recruit. What’s Changing? Starting June 1, 2025, Zoho Recruit will be updated with ZipRecruiter's latest pricing
In the Blue Print Transition requirement received it will show 8 check field in pop up if they any one of this field then only move to next stage Ist quote
In the Blue Print Transition requirement received it will show 8 check field in pop up if they any one of this field then only move to next stage Ist quote Pls help how i fix this
Linking Multi-UOM Barcodes to Products in Zoho Books
Greetings, I'm using Zoho Books for retail shop and I'm running into a bit of a challenge with products that have multiple Units of Measurement (UOMs) and corresponding barcodes. For example, I sell cigarettes both as individual packets and in cartons
Convert Item to composite item
When using Zoho CRM integrated with Zoho Inventory/Books, the item creation process is a little messy. After a few years of trial and error, we have settled on creating items in CRM, which are sync'ed to Zoho Inventory using Zoho's own internal integration.
Mapping “Account Name” from CRM to Campaigns
I’m syncing our Contacts list to Campaigns and want to select “Account Name” as an available field. Account Name does not appear in the drop down menu for CRM field even though Account Name is a field in our standard layout. How can I make it availa
Zoho Campaigns to Zoho Analytics Sync Fails – Field Mapping Shows But Not Applied
I’m facing a persistent issue with the Zoho Campaigns integration to Zoho Analytics in my workspace. Here’s a detailed description of the problem: Under Edit Setup, I see a field mapping summary that shows: DataField Mapping: Most Recent Login However,
Host in US Data Centre
I humble apply to be registered on US Data centre
Multiple images, one record
I have a form that is used to capture the following info: -Facility Name -Origin -Shipment # -Picture of Damaged Pallet (Image field) I want to be able to capture multiple pictures without having to create a new record, as there might be multiple damaged pallets on the shipment. Obviously, one never knows how many damaged pallets might be on a shipment so I'd prefer not to create 20 image fields and have most of them unused. I'd prefer that they have an option to add another image only if they need
how to dynamically upload multiple images for single record?
Is the use of dynamic multiple images in a single record supported? I've searched but have not found the answer. If it is supported, how is it done? I saw 1 suggestion to add a sub-form but that doesn't seem to be the answer. I don't want to add a set number of image fields. Each record would have a different number of images. I want the addition of images to be dynamic. thanks
Multi-upload field
Hi I need to include a file upload field that allows the user to select multiple files and upload all at once. I hope I can do this with HTML, I'm new to merging HTML and deluge... Can I trigger a hidden file upload window to appear On User Input of a field in an embedded form? Thanks! Levi
is it possible to add multiple attachments to a record?
Hello, I'm trying to add functionality so that a record can have several associated attachments. I obviously added a File Upload field to my form, but that appears to only allow one total. Is there a way around this? Thanks, - Kevin
multiple upload files in zoho form
Hi, I need upload multiple files in a single upload field thkns
Keeping Track of Email Threads
Hi, Z CRM is great for tracking all the activities one would want to track whilst qualifying leads, converting to customers, closing deals etc etc, however.... ....although I can use Z CRM to send an email to a lead/contact and have that recorded as an activity for other team members to see, there is no way of capturing an inbound email from that lead. Assume my lead replies to my email sent from ZCRM, in my case, the response arrives in my ZMail account. However I can't get it back into ZCRM to
Zoho Creator invokeUrl to retreive PDF
I'm trying to retreive a record PDF to send to Print Node. Tried with and without the zoho_creator_connection. pdf_content = invokeurl [ url :"https://creatorapp.zoho.com.au/<org_namespace>/<app_link_name>/record-pdf/<report_link_name>/" + input.ID type
Bulk upload image option in Zoho Commerce
I dont know if I am not looking into it properly but is there no option to bulk upload images along with the products? Like after you upload the products, I will have to upload images one by one again? Can someone help me out here? And what should I enter
Zoho App Builder
I’m looking for a Zoho Creator developer to build a simple app for tracking site expenses for a construction company. Key features: mobile form, dropdowns for projects and expense types, photo attachment for invoices, auto-calculated totals, and Excel
Captcha can't be enabled conditionally
Hi Problem: captcha on a form can't be enabled conditionally. Why is this a problem: Because I use the same form on our website (public) in the portal and mobile app. In the portal it works but in the mobile app it doesn't. So there should be a way to
ACH Returns Don’t Trigger Dunning or Reverse Payment in Zoho Subscriptions
Zoho Billing marked an ACH payment as successful and kept the subscription active — even though the payment was later returned by the bank (NSF). There was no update to the invoice or subscription status, and I had to manually clean it all up. For credit
Zoho Sheet - Split cell diagonally fill half color
is it possible to split a cell diagonally, fill different text in each half and ideally color them differently as well?
Calling Token API in Postman returning "error: invalid_client"
Hello, I've been working on setting up an API to get data from zoho crm into a third-party application. I'm currently testing the setup in Postman, but I'm getting an error from the API to retrieve the access token. It keeps returning "error: invalid_client".
Next Page