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
DKIM cannot be enabled for the domain as no verified default selector present
Hi Support Team, For Domain DKIM record trying to enable status. but showing error "DKIM cannot be enabled for the domain as no verified default selector present" So, please resolve the issue. Thank you.
Issue Connecting My Domain to Zoho Sites Despite Purchasing It from Zoho
Hello, I am facing an issue connecting my domain to my website on Zoho Sites. Details of the issue: I purchased the domain directly from Zoho. I am already using the same domain successfully with Zoho Mail. However, when I try to assign this domain to
Insert auto number from main form into subform rows
Hello. I'm trying to take from my main form "order number" which i have setup as an auto generated number into every line created in my subform. So when a row is created in my subform i want the "order number " from the main form to be inserted automatically.
Dark Mode - Font Colors Don't Work
When editing a document in Dark Mode and selecting font colors, they don't show up on screen. Viewing/editing the same document in Light Mode shows them just fine.
Integrate Bunq with ZOHO Bookes
We are new users of ZOHO Books, and our bank (BUNQ, in the Netherlands) isn't listed on the bank integrations. Is there a way to handle this?
Access Denied
I am iOS Developer and updating our clients project and shifted ZohoDeskPortalCore SDKs from cocoapods to SPM and changed few lines of code but now i am get access denied, the help center app is unavailable. please contact administrator.
Using Zoho Desk to support ISMS process
Hi, I am evaluating using Zoho Desk for security incident management. This seems to be aligned with Zoho Desk purpose as its just another type of incident. However in security incident management, ideally I can link incidents (tickets) with a risk from
Bin Locations
Dear all, I am wondering if someone has the ability to develop the bin locations option for zoho inventory (integrated with zoho books) Regards, Ryan
TaxJar vs Avalara
Hi, I'm evaluating adoption of a sales-tax service for US based business. Anyone else have experience with TaxJar and Zoho Books? I am a Zoho One subscriber so anticipate needing to use Flow to make this work. It seems like Avalara are simply too expensive
How to check Leads with no Task (open activity)
Hi everyone, I was wondering if there’s a way to view leads that don’t have any tasks assigned or open activities linked to them.
What can we do on our end to improve the Answer bot answers?
Hi, I'm using the Answer bot card in the Codeless bot builder. I've input several questions and their answers in the FAQ section to feed the Answer bot. The text is all in French, as this is the language our customers communicate in. I've tried testing
Taxes for EU B2B Transactions
Currently, ZC doesn't seem to have a procedure for validating VAT numbers of businesses purchasing in another EU state, and removing local VAT is valid. This is essential for all inter EU B2B trade.
How to upload file to Connect using API?
Hi there. I looked at the API documentation and nowhere did it mention how to use the API method to upload a file even though it is mentioned that it is possible to be done so. Please help.
Items Landed Cost and Profit?
Hello, we recently went live with Zoho Inventory, and I have a question about the Landed Cost feature. The FAQ reads: "Tracking the landed cost helps determine the overall cost incurred in procuring the product. This, in turn, helps you to decide the
Group Tax in Service Line Items
Hi FSM Team! I noticed that when you update a tax in the service line item the group tax is not showing up as an option. Let me know what can be done thank you!
FSM Improvement Idea - Show an Import button when there is no data
I am setting up FSM for a client and I noticed that there is no option to import data, see screenshot below. Even when you click Create Contact there is only an option to Import from Zoho Invoice. It is only after you add at lease 1 record that the Import
Zoho FSM API Delete Record
Hi FSM Team, It would be great if you could delete a record via API. Thank you,
OAUTH_SCOPE_MISMATCH Error for Marketing Automation APIs with CRM Plus Account
I'm trying to integrate Marketing Automation journey triggering via API but getting OAUTH_SCOPE_MISMATCH errors. I need clarification on API access for CRM Plus users.
Access token generate from the refresh token not working for API
Dear Sir/Madam, When I use my refresh token to obtain new access_token, that token return INVALID_TOKEN when the same API is called. I made sure that my api site is correct and match the auth web site. However the original access_token work fine.
Function #4: Schedule Customer Statements
Regularly sending statements to customers is an imperative part of many business processes as it helps foster strong customer relationships and provides timely guidance on payments. While you can generate the statement of accounts and have it sent over
Limiting search or dependencies with an asterisk "*".
I have a form with several dependency fields with options still developing for each field. Since these options were developing and not yet ready to be a selection in the field, I placed a filter for the dropdown field. In this filter, I selected fields
Improved RingCentral Integration
We’d like to request an enhancement to the current RingCentral integration with Zoho. RingCentral now automatically generates call transcripts and AI-based call summaries (AI Notes) for each call, which are extremely helpful for support and sales teams.
Cross Data Center Support for 1:1 Chats with External Users
Hello Zoho Cliq Team, We hope you're doing well. We appreciate the recent enhancement that enables cross data center collaboration in external channels, which has already improved communication across distributed teams. However, we’ve noticed that this
Support Bots and Automations in External Channels
Hello Zoho Cliq Team, How are you? We actively use Zoho Cliq for collaboration, including with our external developers. For this purpose, external channels are a key tool since they work seamlessly within the same interface as all of our other channels
Answer Bot and Personalized Questions
Hi there, I have the same problem using the SalesIQ Answer Bot and the Zoho Desk Answer Bot (which really need different names, to be honest, in order to avoid confusion...) Customers that visit our website ask questions in the form of "What do you do?"
Handling Greetings/Small Talk at the Beginning of a Zobot Conversation
Hello everyone, I’m currently configuring a **Zobot** in Zoho SalesIQ and everything is working as expected, except for one specific scenario at the very beginning of the conversation. My target audience has the habit of starting with a **greeting or
Regex in Zoho Mail custom filters is not supported - but it works!
I recently asked Zoho for help using regex in Zoho Mail custom filters and was told it was NOT supported. This was surprising (and frustrating) as regex in Zoho Mail certainly works, although it does have some quirks* To encourage others, here are 3 regex
Importing a new list into campaigns
I'm in the middle of switching my email platform to campaigns. I have a list that I want to import, and it overlaps with my existing Zoho CRM list. The fields in my Zoho CTM are more robust. Will this new list that I upload into my campaigns overwrite
when I email a invoice how can i see it was sent and also were i can go to see all emails sent
when I email a invoice how can i see it was sent and also were i can go to see all emails sent?
Export Invoices to XML file
Namaste! ZOHO suite of Apps is awesome and we as Partner, would like to use and implement the app´s from the Financial suite like ZOHO Invoice, but, in Portugal, we can only use certified Invoice Software and for this reason, we need to develop/customize on top of ZOHO Invoice to create an XML file with specific information and after this, go to the government and certified the software. As soon as we have for example, ZOHO CRM integrated with ZOHO Invoice up and running, our business opportunities
Showing description in timesheet and timelogs.
I am wondering if it’s possible in version 5 of Zoho People to have the description show by default or with a manipulation on the user’s part. Let me show you what I mean. As you can see this is the view for the users. Now if they want to see the full
How can I see content of system generated mails from zBooks?
System generated mails for offers or invices appear in the mail tab of the designated customer. How can I view the content? It also doesn't appear in zMail sent folder.
CRM Blueprint Notification by Cliq
Dear Zoho team, In Workflow, there is nofication by cliq, but in blueprint, there is no option as cliq notification. I think it is very convenient to get notified by Cliq , as there are multi modules in apps, but we will always check Cliqs
Zoho People Attendance Regularization – Wrong Total Hours Displayed
While using Zoho People, I observed that the attendance regularization is showing wrong total hours when applied to past dates. For example, if a check-in is added at 10:00 AM and check-out at 6:00 PM for a previous date, the system sometimes calculates
Sync Contacts in iOS
What does the "Sync Contacts" feature in the iOS Zoho Mail app do?
Live webinar: Craft the ideal sales pitch deck with Show
Every great sale starts with a great story. And your pitch deck? That’s where the story takes shape. But too often, these presentations end up looking generic, overloaded with text, or lacking structure. The good news is, it's easier to fix than you think!
Project Statuses
Hi All, We have projects that sometimes may not make it through to completion. As such, they were being marked as "Cancelled". I noticed that these projects still show as "Active" though which seems counter intuitive. In fact, the only way I can get them
👋 Welcome to the Zoho MCP Community
Hello all, glad to have you here! This is your space for everything AI agents, MCP tools, and intelligent business apps. This community is for you — developers, partners, creators, and businesses exploring how agents can transform work. Whether you’re
Suitability of Zoho One (Single User License) for Multi-State GST Compliance & Cost Analysis
Hello Zoho Team, I am an e-commerce business owner selling on platforms like Amazon, Flipkart, and Meesho, and I'm currently using their fulfillment warehouses. I have two GSTIN registrations and am planning to register for an additional 2-3 to expand
DNS Manager
Where Can I find my DNS manager so I can link this to click funnels or AWEBER
Next Page