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
Zoho Projects API Scope for Issue Attachments
I try to download issue attachments via the API, unfortunately I always get the following error code when trying to download the file from the supplied URL: {"ERROR_MESSAGE":"INVALID_OAUTHSCOPE","ERROR_CODE":401} indicating an auth scope error. I've tried
How to fetch custom fields for time entries in Zoho Project API v3
In the previous Zoho Projects REST API, we were able to retrieve custom field details for time entries, including picklist options, using the endpoint: GET /restapi/portal/[PORTAL_ID]/timesheetcustomfields
In the new Zoho Projects API v3, we tried using
Zoho Survey Enhancements
We love Survey. We use it a ton. It needs some enhancements. Maybe some of these are already on the roadmap? API - this is crucial. We have some complex surveys that take place and need to update records, trigger other functions/automations, etc. I would
Images Don't Display on Blog
Hi, I've just posted a new blog entry, but regardless of format (png or jpeg) Images that display in Preview mode do not display on any browser in the published post. I've not done anything different with this post than others regarding images, please advice. Thanks! Edit: I've discovered that moving the image files from a my sub directory folder "Pics for Blog" to the top level of the "Files" folder on my site allows the images to display live. This, even though my other blog posts are correctly
Checkbox Field Mapping Zoho Forms to Zoho Sign
I have an application that will be filled out via Forms that I am mapping into a PDF Filler on Zoho Sign. I need to have a series of checkboxes mapped to the corresponding fields in Sign and I only see single checkboxes available via the mapping, though
MCP > Creator connection failing with Claude
I'm trying to get claude to access any of my Zoho Creator apps and it keeps failing. I have enabled all tools for creator and ensured in claude settings that everything is authorised. Here is what claude says : Unfortunately, the error messages I'm receiving
WorkDrive and CRM not in sync
1/ There is a CRM file upload field with WorkDrive file set as the source: 2/ Then the file is renamed in WorkDrive (outside CRM): 3/ The File in CRM is not synced after the change in WorkDrive; the file name (reference) in CRM record is not updated (here
Books P&L by Customer
Lately, we have found that the Customer field filter for the Profit & Loss report in Zoho Books is no longer available. We have several projects with the same customer and look at the P&Ls by project AND by Customer (overall). Can you please add back in this field selection alongside the Project field to the P&L report filter? Thanks! -Gina
Sent mail sort by date disappeared
Hello, We used to be able to sort the emails by date in the sent folder, but this feature has recently disappeared. Can we bring it back?
I cannot check out to Zoho People.
When I tried to check out today, there's prompt that inhibits me to check out: To add entry in Attendance, log time for any of your jobs
Pricing Strategies: #2 Plan your Service Offerings using Plans
Meet Harvey & Mia, hailing from the same Tech school, carrying the dream of setting up their own IT maintenance firm in their location. They drew up a clear business plan and put their business in motion on New Year's Eve. They had great reception right
Open a record to edit based on another form being edited
Hi all, I am trying to edit a record based on another record being edited. It works out like this: When I create a Monthly_Update and then submit I open the Monthly_Levels form and pass the ID from the Monthly_Update to a field called mu. I want it to
Problem with signature on zoho survey
Hello, I'm trying to export individual responses with signatures on zoho survey. But the signatures on some of my surveys are not exported as the original image, but as a generic image, same for all (screen joins). Is there a solution to have the signatures
Change in Zoho CRM API?
Hello, I am using the Zoho API trough the PHP SDK v2.1 Since few days, I noticed that I have to change the way I pass the data to the API when I create, update, or upsert a record. Dates Before I was passing a PHP date object to "$record->addKeyValue(...)",
How to view CRM Sales Orders in Desk
What's the usual way to view all CRM sales orders linked to a contact, when viewing a ticket in Desk? I don't want to have to open a new tab to see the order in CRM. And the Desk CRM sidebar doesn't seem to be configurable. Would I have to use an extension
Duplicate customers being created in Desk
Hi I've trying to work out why I've getting duplicated customers being created in my desk. I have an external booking system that generates an email when I get a customer booking a job. A booking email gets sent to Desk where I manage the booking and
MTA - BAD IP reputation by outlook/hotmail
Messages to Microsoft email servers are bouncing back due to poor reputation. Message: 4.7.650 The mail server [136.143.188.206] has been temporarily rate limited due to IP reputation. For e-mail delivery information see https://postmaster.live.com (S775)
QuickBooks Extension for Zoho CRM - Advanced Features -2025
Hello Everyone, We’re happy to announce the latest version of our QuickBooks Extension for Zoho CRM, now officially live on the Zoho Marketplace! This release introduces one-click data sync, a user-friendly UI, enhanced performance, and a powerful set
Changing Department often causes the Firefox tab to freeze
Title, it doesn't seem to happen with neither Opera nor Chrome. And even in Firefox, sometimes it just lets me change the department I'm in no problem, even to All Departments which is probably the most, like, resource heavy? But most of the time, the
Need to integrate Zoho Mail Mobile app with Zoho Meeting Mobile App for Android and Apple
Hello Zoho Team, Please bring integration of Zoho Mail Mobile app with Zoho Meeting for Android and Apple Thanks
¡Muchas gracias por participar a los Meetups de Usuarios de Zoho! Y Novedades del ecosistema Zoho
¡Hola Comunidad de Zoho en Español! 👋 Después de un breve lapso de tiempo, volvemos con una nueva edición de nuestro Community Digest, donde te contamos las novedades de los productos de Zoho en los últimos meses. Estas mejoras se centran en nuestros
Anyway to move mail from one account to another yet?
Hello, Is there any way to move email from one mailbox account to another mailbox account in zoho yet? Thanks, Ryan.
Using a CRM Client Script Button to create a Books Invoice
Hello, I need help handling error messages returned to my client script from a function. The scenario I have setup a client script button which is available from each Deal. This CS executes a crm function, which in turn creates an invoice based on the
Building Toppings #2 - Learn how to use Bigin's Developer Console to build toppings
Hey Biginners, In our last post, we discussed what toppings are, why they're essential to extending Bigin's capabilities, and how the Bigin Developer Center serves as the starting point for building them. As a cloud platform, the Developer Center empowers
Proposal for Creating a Unique "Address" Entity in Zoho FSM
The "Address" entity is one of the most critical components for a service-oriented company. While homeowners may change and servicing companies may vary, the address itself remains constant. This constancy is essential for subsequent services, as it provides
Links are incorrect when sent out
I'm adding in hyperlinks into my eDM. When I send a test email, it's all correct. However, when I send out the eDM, all the hyperlinks jump up one space so none of the links are opening to the correct page. Why is this happening and how can I fix it?
Tip of the week #16 - Search and filter threads based on criteria
Zoho TeamInbox lets you search and filter threads with any information that you have about the thread. You just have to input the criteria and Zoho TeamInbox will list all the threads that match the condition. Firstly, there is a global search you can
Introducing recipient authentication via Stripe Identity in Zoho Sign
Hi everyone! It's important to authenticate your recipient's identity before they access and sign important documents to ensure the highest level of compliance. Zoho Sign already helps businesses do this with various authentication methods: SMS OTP Email
Introducing Multi-Asset Support in Work Orders, Estimates, and Service Appointments
We’re excited to announce a highly requested enhancement in Zoho FSM — you can now associate multiple assets with Work Orders, Estimates, and Service Appointments. This update brings more clarity, flexibility, and control to your field service operations,
CRM: hosting a single html file in Zoho and displaying it as a widget
I have seen that CRM offers the option of uploading a web project to Zoho itself and displaying it as a widget in CRM. The instructions then talk about setting a development environment with Node and developing an application to upload to Zoho. But I
Keep Converted Leads
How do I keep the converted leads in the Leads Module after conversion (converting it to account, contact, deal). I want to add it in a converted stage in the leads module in order to get a report or dashboard and see all converted leads from my pip
Customizing Global Search Settings for All Users
Hi Our team use the brilliant global search functionality within CRM many many times daily. But, we struggle with the out-of-the box columns that CRM gives you. We are always telling users to customize this look to more suit our business, to show the
Zoho CRM Kiosk issues
Firstly this is for a system on the AU servers if that makes a difference. Issues are as follows (For Kiosk): 1. Re-ordering fields in the screen builder is broken. The fields seem to be re-ordering themselves, unless you order everything by moving the
Presenting ABM for Zoho CRM: Expand and retain your customers with precision
Picture this scenario: You're a growing SaaS company ready to launch a powerful business suite, and are looking to gain traction and momentum. But as a business with a tight budget, you know acquiring new customers is slow, expensive, and often delivers
Introducing Formula Fields for performing dynamic calculations
Greetings, With the Formula Field, you can generate numerical calculations using provided functions and available fields, enabling you to derive dynamic data. You can utilize mathematical formulas to populate results based on the provided inputs. This
From Zoho CRM to Paper : Design & Print Data Directly using Canvas Print View
Hello Everyone, We are excited to announce a new addition to your Canvas in Zoho CRM - Print View. Canvas print view helps you transform your custom CRM layouts into print-ready documents, so you can bring your digital data to the physical world with
Tip of the Week #77– Stay informed of the activities happening in your organization
Whenever a message is handled in Zoho TeamInbox, every action is recorded in the Activity Log. This ensures you always know what’s happening across your teams and inboxes. To access it, simply click the Audits icon on the left pane’s top bar after logging
Let us add Lookup fields in the Blueprint Transitions
We are unable to add Lookup Fields in the blueprint transitions in Zoho Desk, we wanted to make it a requirement for our workflow but since it's not available in the transition we cannot. The lookup field exists in the Layout: But it cannot be added/selected
Zoho Logs - Not seeing logs since 30 Nov
Hi, we have a few functions running, I am testing some new ones and noticed that although I can see executions, I cannot see any logs, even when the first line on the functions is a log. I reviewed some existing functions, one of which is invoked on a
Workdrive MS Office integration
Have installed subscribed version of Zoho WorkDrive VSTO runtime not found is the error when I try to install Zoho_WorkDrive_For_Office Unable to open work files in Excel and Word Urgent, since I have migrated all my OneDrive files to work drive already
Next Page