Hi everyone.. Welcome back!
In this post, we will discuss when to use Get Records, Search Records, Query, and Bulk Read APIs to fetch records. Please note that the information in the article holds true for version 3 of Zoho CRM APIs.
Get Records API
The
GET Records API allows you to fetch all the records from a module in your CRM account.
When should you use GET Records API?
Use this API to fetch a specific set of records whose IDs you already know, or to fetch all the records from a module without any filters, or using the pre-defined filters.
For instance, when you want to render a mobile/web UI to show the list of records in a module or a specific custom view, you can make use of Get Records API.
Pagination
- You can retrieve up to 200 records using this API in a single call.
- To fetch more than 200 records, you must use pagination and make further API requests with the page parameter.
- For more than 2000 and up to a maximum of 100,000 records, use the page_token parameter in the request. The value for this parameter is available from the key "next_page_token" in the response of the first Get Records call.
- You cannot use the page_token parameter with the page parameter.
Points to remember
- You should specify the field API names to fetch the records.
- You can fetch up to 50 fields using this API.
- You can sort the records by id, Created_Time and Modified_Time fields.
- Each Get Records API call consumes one API credit.
Examples
1. To fetch the records from 1801-2000 in the Leads module with the Last_Name and Email fields
The info JSON object in the response contains the next_page_token to retrieve the next set of records. 
2. To fetch after 2000 records
Search Records API
Search Records API lets you search for records in a module based on a
criteria that you define. You can search for records with a specific word in the
text fields, or by
email or
phone fields across the specified module. You can also search for a variety of other fields like currency, Date, DateTime, picklists etc.
When should you use Search Records API?
Use this API when you want to search for a specific text, phone or email in the records of a module, or when you want to do a module-level word search. Search API is the go-to API when you know the details like email, phone or a specific text, but not the individual IDs of the records.
For example, when you want to render a search box in your web/mobile UI, and do a module-level search for the word, use Search Records API.
- You can search for up to 200 records in one API request.
- To fetch more than 200 and up to 2000 records, use the page parameter.
- Your search criteria can have equals, starts_with, in, equals, not_equal, greater_equal, greater_than, less_equal, less_than, starts_with, or between conditions.
- There will be a delay in accessing recently inserted or updated records using this API due to data indexing.
- Due to the indexing delay, it is advised not to use Search API to check for record duplication while creating a new record.
- Each Search Records API call consumes one API credit.
Examples
1. To search for all the Leads with the word Zoho in the record
2. To fetch records from the Leads module whose Last_Name is 'Thomas' and First_Name starts with 'M'
Query API
Query API lets you query for records based on queries using the
CRM
Object
Query
Language(COQL).
COQL is based on the SQL query syntax, and supports the
SELECT query to fetch records. Using this API, you can query for data across different modules that are linked using lookup fields. This API allows you to search for a variety of fields like picklist, Date, DateTime, Lookup, Number, Currency, Boolean, or string fields, and sort the records on the basis of any field.
When should you use Query API?
To query for a module's data and its lookup related data using various comparators, or when you want to query for records that fall into a custom view without actually creating one.
For instance, when you want to filter all the products in a specific price range, with 4 stars and up rating, use Query API.
You can also use Query API to query for records from cross module (linked via lookup field). Eg: Filtering deals based on the account's location and industry type. In this example, Deals is the primary module linked with Accounts module via the lookup field 'Accounts_Name'.
Pagination
- You can retrieve 200 records in one API call using this API.
- To fetch more than 200 records and upto 10000 records, use the OFFSET clause.
- You can use DB comparators such as =, >, <, >=, <=, is null, is not null, between, in, not in, like, and not like in your search query.
- You can fetch a maximum of 10000 records using this API.
- You can use Query API to check for record duplication while creating a new record in your web/mobile UI apps.
- Each Query API call consumes one API credit.
Examples
1. Cross Module Filtering : To filter deals based on its corresponding account's location and industry type.
"select_query": "select Deal_Name, Stage, Probability, Type, Account_Name from Deals where ((Account_Name.Location = 'Texas') AND (Account_Name.Industry = 'Military'))" |
2. Consider the following custom view.
You can fetch the records in the custom view using the following SELECT query, without actually creating the custom view.
{ "select_query": "select Last_Name, Owner.last_name from Leads where ((Industry = 'ERP') and (Owner = '4876876000000327001')) OR (Rating = 'Acquired')" }
|
TIP : If you want to fetch all the records in a module using COQL Query API, you can still use the COQL query to do it. For example, the below example will fetch all the records in the Leads module.
{ "select_query": "select Last_Name, Owner.last_name from Leads where ((Industry = 'ERP') OR (Industry != 'ERP'))"} |
Bulk Read API
Bulk Read API lets you export data in bulk from a module. Using this API, you can export records based on a query, or export all the records in a module with or without filters. The main advantage of Bulk read API is in the huge number of records it can retrieve in one API call. While you can fetch 200 records per API call for GET Records API, Search Records API and Query API, you can export 200,000 records per API call using the Bulk read API.
When should you use Bulk read API?
When you want to schedule a job to export huge volume of CRM data.
For instance, when you want to export the list of all the records from a Zoho CRM module to sync with your local ERP system's data store, use Bulk read API.
Points to remember
- Bulk read is an asynchronous API.
- The result of the bulk read job will be available as a downloadable CSV/ICS file.
- Each Bulk read API call consumes 50 API credits.
- To export more than 200,000 records, use the page key in the request body. Setting page to '2' exports data starting from 200,001.
Sample Scenario
Let us now consider the case where you want to fetch (a)2000, (b)5000, (c)10000 and (d)15000 records from a module, and see which API is best-suited for each case.
Number of records | Get Records API | Search Records API | Query API | Bulk read API |
2000 | - 10 API calls
- 10 API credits
- Use pagination
| - 10 API calls
- 10 API credits
- Use pagination
| - 10 API calls
- 10 API credits
- Use OFFSET
| |
|
5000 | - 25 API calls
- 25 API credits
- use pagination (up to 2000 records) & page_token (after 2000 records)
|
Not possible to fetch more than 2000 records
| - 25 API calls
- 25 API credits
- Use OFFSET
| |
|
10000 | - 50 API calls
- 50 API credits
- use pagination (up to 2000 records) & page_token (after 2000 records)
|
Not possible to fetch more than 2000 records
| - 50 API calls
- 50 API credits
- Use OFFSET
| |
15000
| - 75 API calls
- 75 API credits
- use pagination (up to 2000 records) & page_token (after 2000 records)
|
Not possible to fetch more than 2000 records
|
Not possible to fetch more than 10000 records
| |
To sum up, for up to 2000 records, the Get Records API, Search Records API, and Query API all use the same API credits. However, Query API has the edge over the other two because it provides you with greater flexibility to tweak your criteria, thanks to all the comparators and logical operations it supports. If you intend to fetch 10,000 or more records asynchronously, the Bulk Read API is preferable in terms of API credits consumed. For synchronously fetching more than 10,000 records, use the Get Records API.
Feature | Get Records API | Search Records API
| Query API | Bulk Read API |
Maximum number of records per API call | 200 | 200
| 200 | 200,000 For Events - 20,000 |
Maximum number of records that can be fetched
| 100,000 | 2000 | 10,000 | 100,000,000 |
Indexing Delay
| No | Yes | No | NA |
Pagination
| Use page parameter to retrieve more than 200 records and page_token parameter for more than 200 records | Use page parameter to retrieve up to 2000 records | Use LIMIT and OFFSET to navigate and retrieve a maximum of up to 10,000 records | Use page key in the request body to fetch more than 200,000 records. Maximum possible value for page is 500 |
Sorting support | Limited (id, Created_Time and Modified_Time fields ) | No | Yes | No |
Credits per API call
| 1 3 - with CVID parameter | 1 | 1 | 50 |
We hope you found this post useful. Let us know your thoughts in the comment section or reach out to us at
support@zohocrm.com
Thank You!
Recent Topics
Store "Sign in with Google/Microsoft/GitHub etc." details
Quite often now, users are using a sign-in provider like Google or Microsoft to sign into various apps and services. It would be great if Vault could remember which providers you use for each website and sign you in with that provider instead of a username
Critical Issue: Tickets Opened for Zoho Support via the Zoho Help Portal Were Not Processed
Hi everyone, We want to bring to your attention a serious issue we’ve experienced with the Zoho support Help Portal. For more than a week, tickets submitted directly via the Help Portal were not being handled at all. At the same time no alert was posted
Tip of the Week #72– Assign thread ownership to avoid confusion.
When teams handle a large volume of emails, managing threads becomes important to stay organized. Without a clear system, duplicate replies, missed follow-ups, or confusion over responsibilities can happen. Thread assignment solves this by designating
Unarchive tickets
How can I manually unarchive tickets?
Optimize your Knowledge Base for enhanced accessibility by adding alt tags for images
Let's learn why alt tags are crucial for your articles. You can add alternative tags (alt tags) and alternative text (alt text) to the images you share on your community forums or when embedding them in articles. Alt tags refer to the HTML attribute,
FSM trying again
have not linked FSM yet to the rest of out Zoho suit. It certainly looks like the apointment and service part is more manageable for our staff. The question is that our engineers multi task examples 1. deliver products to customers not fitted 2. Service
Feature Request: Conditional Field Mandatoriness Based on Display Status
Hello Zoho Creator Team, I would like to suggest an enhancement to improve the flexibility of form validations. Currently, when we need a field to be mandatory only if it's displayed on the form, the only option is to: Set the field as not mandatory in
Data Migration Strategies for Moving to a Cloud Solution
Hi everyone, I’ve been working on moving some of our critical systems, including CRM and project data, to a Zoho cloud solution, and one of the biggest challenges I’ve encountered is data migration. Transferring large volumes of data while keeping it
Commerce Order as Invoice instead of Sales Order?
I need a purchase made on my Commerce Site to result in an Invoice for services instead of a Sales Order that will be pushed to Books. My customers don't pay until I after I add some details to their transaction. Can I change the settings to make this
How to set different item selling prices for Zoho Commerce and Zoho Books
Item selling prices for Zoho Commerce and Zoho Books are in sync. If we update the Item selling price in Books, the same will happen in commerce and vice versa. I need a separate commerce selling price for online users and a separate books selling price
Time Entry Notifications
Hi All - I have support staff who place notes of their work in the time entry section of Zoho Desk. Is there a specific workflow or setting I need to enable to have the ticket holder updated via email when an entry is saved?
How to report 'Response violation' OR 'Resolution violation'
Hi, I want to report on SLA Violation Type. I grouped my tickets on this column. It seems I only get 'Response and Resolution Violation' or 'Not Violated'. The former seems to be given to a ticket if only the Response Time was violated. I would expect
[Webinar] Automate sales and presales workflows with Writer
Sales involves sharing a wide range of documents with customers across the presales, sales, and post-sales stages: NDAs, quotes, invoices, sales orders, and delivery paperwork. Generating and managing these documents manually slows down the overall sales
Power of Automation :: Quick way to associate your Projects with Zoho CRM
A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
Date triggering Workflow rule
I have a function triggered by a workflow rule. The function takes a date and creates a task for that date and fills in a field with the name of the day for that date. It also updates the status field of the record. The workflow rule is set to run whenever
Restricting contact creation
Hi all! I am looking to use Zoho Desk in a part of the business that takes end user enquiries. These are generally single interactions, and not linked to an account name. As Desk is Account centric, has anyone designed a way to manage these incoming emails
Import Holiday Calendars
HI Zoho Is there anyway of importing an online calendar like https://www.calendarlabs.com into the business hours calendars, to speed up setup of holiday calendars. Also could we also request a feature where you can specify a Holiday as hours, i.e it could be that the company is on a 1/2 day due to a holiday or when it is Eid in the UAE and they are only allowed to work restricted hours so we need the calendar to be flexible to allow for this. Regards Jamie
Filtering Tickets based on Email headers
We're starting to get a lot more junk coming into our Zoho Desk, which is then triggering unnecessary email alerts to agents. Once thing we could do to cut this junk in half, is to filter tickets based on email headers. Any email containing the `List-Unsubscribe`
Error 550 5.4.1
I’ve tried sending an email to someone but keep receiving this back. Any help would be greatly appreciated
Billing Management: #2 Fair way of Billing- Prorated Billing
Hello, From speaking about the traditional ways of billing in the previous post, we are moving into the deep sea of billing. We are now in a zone to break out the most complex yet, I would call it the fairest way of billing, the Prorated Billing. Prorated
Has Anyone successfully integrated Zoho and Sage Intact?
Hey all, We’re evaluating Zoho One + Sage Intacct and I’m trying to connect with anyone who has actually implemented the two together.Specifically, I’d love to know: -- Which functions you kept in Zoho vs. Intacct (e.g., Product Catalog, AR/AP, invoicing,
How can I filter a field integration?
Hi, I have a field integration from CRM "Products" in a form, and I have three product Categories in CRM. I only need to see Products of a category. Thanks for you answers.
Adding image in HTML report page
Hi, I want to know two things: 1. Can anyone advise how to add an image in HTML report. The tagged used is <img> but what path do I mention for the image to be added in the HTML report. 2. Also, I want to know if I am creating an application for the market
How to change view of HTML report based on device but always print in A4
Hello everyone, I am aware that HTML report view can be configured to adjust according to the screen size like Laptop, Tablet and mobile using media queries. But my concern is no matter on which device the reports is opened when printed should always
Age Calculation
I've attempted to calculate the age of someone based on their birthday input by using the formula field. It works but I don't want all those decimals on there. I then tried to use "set variable" after birthday input but I get a field type mismatch, long vs. floating. Any ideas would be wonderful.
Search on Custom Field
We're working on an integration with the Zoho FSM API and are trying to retrieve companies based on a custom field we added to the Companies module. However, we can't find a way to filter or query records using custom fields through the API. We have a
Sendmail function / custom action?
I've setup a function hoping to email various business departments the details of a record once all work in that record is complete so gone about setting up a custom action in such way that each record line on the report has a button to click. Question is how do I actually include data from that record in the email that is sent when the button is clicked? I had thought that since this were being sent per record the email would include the data which had been entered
API to post drafts for social media
I we want to post draft posts to our zoho social account and then approve and schedule them within Zoho social. is this possible with for example: https://apis.zoho.com/social/v2/post TIA Jon
Canvas View in Zoho Recruit
Is it possible or would it be possible to have the new 'Canvas View' in Zoho Recruit?
What impactful sales coaching techniques have you used to boost your team's performance?
I'm curious about the real-world impact of sales coaching on team performance. What specific techniques or strategies have you found most effective in driving consistent improvement and growth in your sales team? Any success stories or lessons learned
Adding Taxes to paid consultations in Zoho Bookings
I created a 'paid' consultation under Zoho Booking and integrated it with payment gateways for online/instant payment before a booking is done. How can I add 'taxes' to the price of consultation? I can add taxes to other Zoho apps (liks Books, Checkout,
Zoho Finance Suite - Customer Custom Tabs - Dynamic Link
Hi Finance Suite team, When creating a Custom Tab for a Client Portal, there is no option to add dynamic parameters. This would be very helpful for adding Zoho Analytics dashboards which can be dynamically filtered through the URL to only show information
Possible to bold or indent text in the description field?
As part of one item, I often have a detailed description that would be much easier to read if there was the ability to have a bulleted list or bold text and the like. Is this possible? My last invoicing software allowed markup in the field so, for example, an asterisk meant a bullet. I haven't been able to find any documentation related to this. Any information would be appreciated. Thank you.
How can I setup Zoho MCP with Chat GPT
I can set up custom connections with Chat GPT but I cat an error when I try to set it up. The error is: "This MCP server can't be used by ChatGPT to search information because it doesn't implement our specification: search action not found" Thoughts?
Formatting of Balance Sheet and Profit & Loss Reports
The default format of the Balance Sheet and P&L Reports are based on the Account Types and then the individual accounts within the Chart of Accounts. These are then ordered alphabetically under these sub-headings and one is unable to re-order these or
UK MTD reports concerning turnover and cerash accounting
Hi I am a sole trader, and I have just started with Zoho Books in order to comply with the new HMRC requirements. I use 'cash basis' - which I understand to mean that income is when the cash comes in (not the invoice date) and expenses are when they are
Retainer Invoice.
Why ZOHO not have facilities to deduct partially advance payment from an invoice.
IMAP Server not responding.
Trying to connect a phone via IMAP and getting "imap.zoho.com not responding." Is the server down, for maintenance or otherwise? I've tried this on two different devices and got the same error on both.
Share saved filters between others
Hi, I am in charge to setup all zoho system in our company. I am preparing saved filters for everybody, but the only one can see its me. How can others see it? Thanks
GST Slabs Redefined: Stay Compliant Using Zoho Books!
Hello Everyone! The Government of India is rolling out new GST rates, a major reform aimed at simplifying the current tax structure starting 22 September 2025. GST will move from four slabs (5%, 12%, 18%, 28%) to two main slabs (5% and 18%), plus a special
Next Page