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
Restrict Past Date in Zoho CRM Module
How can I restrict from selecting a previous Date? I want only future dates to be selectable
Post on behalf of employees as well as business socials
Is there a way to give our sales team access to social to add their own LinkedIn accounts, so that when we schedule business posts, we can also post on behalf of them at the same time so they don't have to repost etc.
Alignment of Company Information Page Structure in Zoho One and Zoho Desk
Hello Zoho One Support, We appreciate the continuous improvements across Zoho products. Recently, Zoho Desk restructured the Company Information page into three distinct sections: Company Profile – Includes Company Name, Logo, Alias, Description, Website,
Trying to setup a record to automatically create on a weekly basis
Hello all, I need multiple records to be automatically created on a weekly basis. What I'm trying to accomplish is, I have a maintenance database where I track when I work on IT related systems. Every week on the same days I perform backups on systems
Effortlessly advance through your CRM blueprints by including optional fields in transitions
Editions: Professional edition and above DCs: All Release plan: This enhancement is being released in a phased manner to customers. It will soon be available to all users. [Updated on 5 Sep 2024] This enhancement has been released to all users in all
ZOHO Reports - Filter Logic?
Hi, I need a way to apply filter logics such as ((1 AND 2) OR 3). All I can see as of now is a way to enter different AND filters in the respective filter column. But how can I add an OR filter? Any advice would be highly appreciated. Mark
[Client Script] How to get selected related record Id
Hi Zoho, I set an client script button in related record list. We would like to fetch the selected record id/field for further action. But I don't know how to get the selected id. If there is not possible to get related record info, then what does the
Google ads - zoho crm integration problem
dear zoho team we were starting to use google ads integration with zoho crm years ago. but till April there was an error. we can see GCLID in zoho crm but we couldn't get any information from google ads. (keywords campaign name etc) is there any problem
How to merge duplicate products?
merge duplicate products
Rounding off rate in quote
Hi team, Please help me to rounding of rate amount in quote
How can I delete duplicate transactions?
I want to delete the duplicates not simply exclude them. I have duplicates, because I had automatic bank feeds turned on (had to make sure this critical functionality was working before migrating to Zoho). Now when I import my csv's exported from Wave,
Automate posting to job site boards via Deluge/ or Schedule
Hi Zoho Recruit Community, I'm working on automating a recurring job posting for a long-standing labor hire role that we update monthly. Right now, I can automate the creation of the job opening using scheduled tasks and Deluge scripts. However, the challenge
Customer Statement Template
Hi. how can i add order number "customer LPO number" in the customer statement. regards
Is it possible to select the methods of inserting a signature (Not provider)
Hi, I tried to search through the help pages and application interface trying to find if there's a way to limit the assigned signees, for example, allowing only images or drawing, and disallowing the automatic signature creator as per their name. It'll
How To Sync 'Deals' data To The Related Contact In The 'Contacts' Module
Hi there! I'm looking to be able to sync Deals and Contacts. Basically, when someone places an order we have it syncing the order data to Deals, complete with the customer's name and email. Is there any way to have that Deal synced to the matching contact in the Contacts module? Presumably matching by email address. I'm familiar with Workflows, however it doesn't seem that Workflows work across different modules. We're looking to be able to run reports based on what the customer bought, but can't
Zoho CRM Appointments and Services
The Appointments and Services modules are nice but very limited. Is there any chance that Zoho will make these more customizable or expand the fuctionality? Appointments Allow "Appointment For" lookup to the Deals module. For us and I'm guessing others
How to separate Vendor custom fields from Customer custome fields
Hi, Customer and Vendor form are separated in Books. We are synchronising them with (respectively) CRM Accounts and CRM Vendors. We add Customer Fields in Customer & Vendors Fields in Books as the CRM has some we need to synchronize. But Books shows Vendors
Auto scan receipt multiplies values by 1000 where decimal separator is comma
This is a new problem as it worked properly in the past but not since Jan 2025. Where receipts use comma as the decimal separator values are multiplied by 1000 when auto scanning which means the user must go back and edit the expense.
Client Script | Update - Introducing Subform Events and Actions
Are you making the most of your subforms in Zoho CRM? Do you wish you could automate subform interactions and enhance user experience effortlessly? What if you had Client APIs and events specifically designed for subforms? We are thrilled to introduce
Free webinar! The Zoho Sign Masterclass: The basics, latest features, and mobile apps
Hi, Are you new to Zoho Sign or looking to brush up on its capabilities? This webinar will help you master Zoho Sign from the ground up, covering everything from the basics to the latest features. Whether you're an individual managing personal documents,
How to upload image from Creator field to CRM File Upload Field or Module Notes section
Hello, How can I upload an image from Creator Image Upload Field to CRM Module Image field (or Notes section). The file upload field type would also work. I just cannot seem to find a way to upload the images from one application to another. Case: Field record requires images as part of the report. I would like the image from the field record form in Creator to be uploaded in the CRM as well as. All of the other fields from the Creator Field Record Report work perfectly. Thank you very much for
Write-Off multiple invoices and tax calculation
Good evening, I have many invoices which are long overdue and I do not expect them to be paid. I believe I should write them off. I did some tests and I have some questions: - I cannot find a way to write off several invoices together. How can I do that,
Unable to pay bill from Prepaid Expense account
Our transport vendor requires us to use their prepaid system. We have paid R1150 upfront into the Prepaid Expenses account: As we use their services, we get billed. These bills must obviously be settled by from our prepaid account. I am unable to record
Whatsapp Integration not working
Hello. My whatsapp integration does not seem to be working. I have created templates, but whatsapp messages do not go through. They keep telling me to use a templete, even though I do so.
Set Mandatory Lookup Fields in Ticket Layout
I added a custom module called 'Site' in the desk. I also added a lookup field 'Site' in the ticket layout. Now, I want the 'Site' field to be mandatory in the blueprint transition. How can I do that?
Unable to import data into zoho analytics using the post man APIs of udemy for business
Hi Can some one help me with the following Unable to import data into zoho analytics using the post man APIs of udemy for business through API beta feature, I have created the sample report in zoho analytics through the table structure but i am unable
errorCode":8504. What is wrong with my CONFIG?
I can't determine what is wrong with my config. It worked properly until I added an additional field, but the additional field is just a number and shouldn't effect the config. I am attempting to do a bulk update add to an existing table based on this
Analytics report issue
Hey, does anyone know why suddenly our Analytics report goes blank whenever we add a field from the contacts module? It shows when adding fields from all other modules. Thanks.
Send emails directly via Cases module
Greetings all, The ability to send emails from the Cases module, which users have been eagerly anticipating, is now available, just like in the other modules. In Zoho CRM, Cases is a module specifically designed for managing support tickets. If your organization
Zoho CRM Calendar View
Hello Zoho team, We need desperately a calendar view next to list, kandan and other views. I think it should be easy to implement as you already have the logic from Projects and also from Kanban View in CRM. In calendar view when we set it up - we choose
COST CENTER
Hello, Is it possible to add cost centers.
High cpu load on client side by process sessionaudit.exe
Hi, as stated above. This happens every time with different clients. Now, the first thing I have to do after making the connection is to go to taskmanager on client computer and kill the process 'sessionaudit.exe' If I don't their cpu is very high and
[Important announcement] Removal of Zoho Writer's DocuFiller Add-on
Hi users, Effective 21st Feb. 2025, we will be removing the DocuFiller add-on for Zoho Writer's Fillable Templates. From that point on, the add-on's functionalities, such as sharing or publishing fillable forms for data collection and receiving submissions
Urgent - issue with VAT registration
Im trying to enable VAT but it wont let me add my company VAT details. I'm getting this. Please disable Adjustments and Entity level discount before registering for VAT How do i do this as i cannot find answer. It would be nice if there was a help icon
No Updation of manual journals in case of Accrual basis of Accounting
Hi Readers, Please help with a query of mine, Actually I am not able to see any of the transaction updated in the manual journals, if i view a the report(Balance Sheet) in Accrual format. Like the transactions which are to be there even in accrual basis
Re-emphasizing the importance of Domain Whitelisting in ASAP's JWT Authentication Mechanism
The problem We discovered a security vulnerability related to using OAuth tokens in non-whitelisted domains and have reinforced our security measures. If you experience any request failures in the authorized domains, please verify that they are whitelisted
Excise Tax for Oman
We are a long time user of Zoho for multiple businesses. We have now started a new business division which is trading of beverages. This product however has an import excise tax (50% of assessed excise value) and sales excise tax (50% of invoice value).
NEW TO ZOHO
I am transferring from company accounts which are being recorded in written book keeping method. I have stocks which are purchased in cash some by credit from vendors. I have datas from pervious year like total sales and purchases etc In future i will
Multiple Selection/Select All for Approvals
I have a suggestion from users regarding Approvals. In our environment, our Regional Managers can receive multiple requests for Approval or Rejection. They find it tedious to approve (or reject) each individual record. They would like to have a way to
Add tasklist from a template to Zoho Project using Deluge
I have some tasklist templates that I want to be able to add to a project under certain circumstances. So if a project meets Condition A, add the tasklist from Template B to that project. If it meets condition C, add tasklist from Template D, and so on.
Next Page