Kaizen #158 - How to effectively handle API calls to optimize API credits?

Kaizen #158 - How to effectively handle API calls to optimize API credits?

Hello everyone!

Welcome back to another post in the Kaizen series!

In this post, we will discuss a few strategies to handle API calls effectively and optimize your API credits.

As you all know, your CRM edition comes with a set number of credits(this varies based on the number of licenses purchased) and all API calls consume these API credits. Refer to our API limits page for more information on the credit system.

Businesses use different processes for different needs, so they use different APIs. Here are a few strategies that can help you optimize your API usage and save up on credits while still maintaining efficient operations.

  1. Understand API Credit Consumption
  2. Optimize API Calls - Batch and bulk
  3. Implement Caching Mechanisms
  4. Minimize Redundant Calls
  5. Analyze Usage - track credit usage, set alerts
  6. Increase Credits to fit your needs

1. Understand API Credit Consumption

The primary step to optimize your usage is to understand it and know the credit system. Each API call consumes a specific number of credits based on its type. For example, a standard Get Users API call costs 1 credit, while a more complex operation, like converting a lead, consumes 5 credits.
Refer to the credit consumption table provided on the API Limits page to plan your usage efficiently.

2. Optimize API Calls

Batch Requests

Whenever possible, batch requests to combine multiple operations into a single API call. For instance, consider that you want to insert or update 20 records. Insert/Update Records API consumes 1 credit for every 10 records. So, instead of making the API call 20 times and spending 20 credits, you can insert or update all 20 records in a single API and spend only 2 credits.
You can also use Composite API to combine up to 5 API calls as sub-requests in one composite request based on your use case.

Bulk APIs

For large data sets involving thousands of records, leverage bulk APIs that can process multiple records in a single request. This approach not only saves credits but also enhances performance by reducing the number of individual requests sent to the server.
Furthermore, these APIs support callback by which you can reduce polling(thereby saving credits) and get near real-time notification of the bulk job.
Refer to our Kaizen post on When to use Get Records, Search Records, COQL and Bulk Read APIs? to decide which API will suit best for a given scenario.

3. Implement Caching Mechanisms

Store frequently accessed metadata locally or in a temporary cache. This allows you to get the data from the cache instead of making multiple calls to get the same information. Caching metadata of modules and fields would be a game changer as these are one of the most frequently accessed data.

4. Minimize Redundant Calls

Upsert Records API instead of Insert/Update Records

Use the upsert records API while creating records. If you have enabled duplicate check based on unique fields or display label, this API checks if there are existing records, and updates or inserts, accordingly. This helps you save up on credits instead of searching for records and then inserting or updating them.

Use Webhooks

Use webhooks to receive notifications about changes in data instead of polling. This reduces the need for frequent API calls to check for updates.
For example, when you use bulk APIs, they support both polling and callback. Use callback to get notified about the status of the job instead of using the API to poll for an update.

Similarly, you can use the Notification API to receive near real-time notification about changes in data. For instance, when you want to know whenever a deal is created, subscribe for the create action on the Deals module using the Notification API. This helps you avoid making repeated Get Records API calls to check for new records.
Instead of polling for updates, utilize webhooks to receive near real-time notifications about changes in data. This reduces the need for frequent API calls to check for updates. Notification APIs allow you to get near real-time notifications on data in CRM, while the Bulk APIs support both polling and callback op.

5. Monitor and Analyze Usage

Track API Credit Usage

Regularly monitor your API credit consumption through the API dashboard. The Dashboard gives you a comprehensive view of your credits, the usage pattern, consumption by modules, functions, integration tasks, etc. Understanding these patterns can help identify areas where you can avoid spending credits and optimize further.

Set Alerts for High Usage

Zoho CRM alerts the super admin of the org via an email whenever the API usage reaches 80, 90, or 100% of the available credits. Configure alerts based on your critical threshold limits to avoid unexpected disruptions. Refer to this page to learn how you can customize these alerts.

6. Increase Credits Wisely

Estimate Requirement Accurately

If you find that your organization consistently exceeds its credit limits, consider increasing your API credits from the API dashboard conveniently. Be mindful about add-on credits based on usage data in the past. Zoho CRM uses the pay-as-you-go model for add-on credits, so you only pay for what you use.


We hope that these simple strategies will help you optimize your API calls in Zoho CRM, effectively manage your API credits, and reduce unnecessary costs while maintaining efficient operations.
Let us know your thoughts in the comment section. Write to us at support@zohocrm.com if you have any questions.
See you next week!
Cheers!

    • Sticky Posts

    • Kaizen #197: Frequently Asked Questions on GraphQL APIs

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Kaizen #198: Using Client Script for Custom Validation in Blueprint

      Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

      Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
    • Kaizen #193: Creating different fields in Zoho CRM through API

      🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
    • Client Script | Update - Introducing Commands in Client Script!

      Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands
    • Recent Topics

    • 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
    • Forwarder

      Hi, I tried to add a forwarder from which emails are sent to my main zoho account email . However, it asks me for a code that should be received at the forwarder email, which is still not activated to send to my zoho emial account. So how can I get the
    • Forwarder

      Hi, I tried to add a forwarder from which emails are sent to my main zoho account email . However, it asks me for a code that should be received at the forwarder email, which is still not activated to send to my zoho emial account. So how can I get the
    • How do I sync multiple Google calendars?

      I'm brand new to Zoho and I figured out how to sync my business Google calendar but I would also like to sync my personal Google calendar. How can I do this so that, at the very least, when I have personal engagements like doctor's appointments, I can
    • Need to extract date from datetime field

      I have a datetime field and need only the date part from it. I am unable to find a built-in function that would be <DateTime>.Date(). I don't think I want to go the string conversion route of converting the datetime to string and then parsing out values and create a date out of it. Any one out there has a better solution to this? Thanks in adavnce. Regards Moiz Tankiwala Smart Training & IT Solutions
    • How to Hide Article Links in SalesIQ Answer Bot Responses

      I have published an article in SalesIQ, and the Answer Bot is fetching the data and responding correctly. However, it is also displaying the article link, which I don’t want. How can I remove the link so that only the message is shown?
    • New in Cadences: WhatsApp follow-ups, upgraded limits, and options for add-ons

      Hello everyone, We're rolling out two key updates to help you engage better and scale smarter with Cadences in Zoho CRM. Reach customers on WhatsApp, directly from Cadences Previously, Cadences have enabled you to automate follow-ups through emails, calls,
    • additional accounts

      If I brought 5 emails to my account. Can I later buy additional emails.
    • Issue in Zoho People Regularization – Incorrect Hour Calculation

      I have noticed that when applying attendance regularization in Zoho People for previous dates, the total working hours are not calculated correctly. For example, even if the check-in is 10:00 AM and check-out is 6:00 PM, the system shows an incorrect
    • Why I am unable to configure Zoho Voice with my Zoho CRM account?

      I have installed Zoho Voice in my Zoho CRM, but as per the message there is some config needed in Zoho Voice interface. But when I click on the link given in the above message, I get an access denied page.
    • Issue with Hour Calculation in Zoho People Attendance Module

      I have noticed an issue in the attendance regularization feature of Zoho People. When trying to regularize past dates, the total working hours are not calculated correctly. For example, if I enter a check-in and check-out time for a previous day, the
    • Cliq Meeting Calls No Audio and Screen Share

      When in a Cliq channel meeting, the audio does not work at all on pc. When i use my phone as audio source, screen share on pc does not work. I have updated audio drivers but the strangest thing is that during a 1 on 1 call, it works well. Therefore the
    • Bug in Total Hour Calculation in Regularization for past dates

      There is a bug in Zoho People Regularization For example today is the date is 10 if I choose a previous Date like 9 and add the Check in and Check out time The total hours aren't calculated properly, in the example the check in time is 10:40 AM check
    • Work anniversary and birthdays on connect

      Hello, I like the idea of having employee's work anniversary and birthdays on the dashbaord. Do you have to have the employee complete this information themselves in connect settings, or does it pull from their directory settings? (ie. we use Zoho one
    • Alias Email Id already exists

      Hi I'm trying to create an alias : contact @ yoavarielevy.co.il but i get the message  Alias Email Id already exists I had an account with the same name but I deleted it. Can you help? Thanx Yoav
    • BANK FEED - MAYBANK , provider from YODLEE IS NOT WORKING

      As per topic, the provider YODLEE is not working for the BANK FEED. It have been reported since 2023 Q3, and second report on 2023 Q4. now almost end of 2024 Q1, and coming to 2024 Q2. Malaysia Bank Maybank is NOT working. can anyone check on this issue?
    • Feature Request: Ability to Set a Custom List View as Default for All Users

      Dear Zoho CRM Support Team, We would like to request a new feature in Zoho CRM regarding List Views. Currently, each user has to manually select or favorite a custom list view in order to make it their default. However, as administrators, we would like
    • Adding Multiple Products (Package) to a Quote

      I've searched the forums and found several people asking this question, but never found an answer. Is ti possible to add multiple products to a quote at once, like a package deal? This seems like a very basic function of a CRM that does quotes but I can't
    • Zoho Commerce in multiple languages

      When will you be able to offer Zoho Commerce in more languages? We sell in multiple markets and want to be able to offer a local version of our webshop. What does the roadmap look like?
    • webinar registration confirmation are landing in SPMA folders

      I am trialing zoho webinar and do not have access to custom domains. When I test user registrations, they are working but the resulting confirmation email is landing in a spam folder. How can I avoid this?
    • Making digital signatures accessible to all: Introducing accessibility controls in Zoho Sign

      Hi there! At Zoho Sign, we are committed to building an inclusive digital experience for all our users. As part of our ongoing efforts to align with Web Content Accessibility Guidelines (WCAG), we’re updating the application with support that will go
    • Is there a way to set Document Owner/Sender via the API

      When sending requests for zoho sign, it would seem zoho uses the id of the person that created the zoho api cred to determine the owner_id, is there a way to set a default for this?
    • Delegates should be able to delete expenses

      I understand the data integrity of this request. It would be nice if there was a toggle switch in the Policy setting that would allow a delegate to delete expenses from their managers account. Some managers here never touch their expense reports, and
    • Add Save button to Expense form

      A save button would be very helpful on the expense form. Currently there is a Save and Close button. When we want to itemize an expense, this option would be very helpful. For example, if we have a hotel expense that also has room service, which is a
    • Multiple organizations under Zoho One

      Hello. I have a long and complicated question. I have a Zoho One account and want to set it up to serve the needs of 6 organizations under the same company. Some of the Zoho One users need to be able to work in more than 1 organization’s CRM and other
    • Error AS101 when adding new email alias

      Hi, I am trying to add apple@(mydomain).com The error AS101 is shown while I try to add the alias.
    • Unbundle feature for composite items

      We receive composite items from our vendors and sell them either individually or create other composite items out of them. So, there is a lot of bundling and unbundling involved with our composite items. Previously, this feature was supported in form
    • Regarding the integration of Apollo.io with Zoho crm.

      I have been seeing for the last 3 months that your Apollo.io beta version is available in Zoho Flow, and this application has not gone live yet. We requested this 2 months ago, but you guys said that 'we are working on it,' and when we search on Google
    • MTD SA in the UK

      Hello ID 20106048857 The Inland Revenue have confirmed that this tax account is registered as Cash Basis In Settings>Profile I have set ‘Report Basis’ as “Cash" However, I see on Zoho on Settings>Taxes>Income Tax that the ‘Tax Basis’ is marked ‘Accrual'
    • workflow not working in subform

      I have the following code in a subform which works perfectly when i use the form alone but when i use the form as a subform within another main form it does not work. I have read something about using row but i just cant seem to figure out what to change
    • Fetch data from another table into a form field

      I have spent the day trying to work this out so i thought i would use the forum for the first time. I have two forms in the same application and when a user selects a customer name from a drop down field and would like the customer number field in the
    • Next Page