Credit Calculation and Concurrency in Zoho CRM APIs

Credit Calculation and Concurrency in Zoho CRM APIs

Hello everyone!

Welcome to Kaizen! This week, we will discuss credit calculation and concurrency in Zoho CRM APIs.

Credit calculation

      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. It helps us provide a consistent, reliable, and secure service to every user, while encouraging efficient and thoughtful API usage. API Usage in a CRM organization is calculated based on credits. When you make an API call, a specific number of credits are deducted from the total number of credits available to you. The number of credits available to you differs depending on the edition and user licence purchased. Below table shows the same.

Edition
Allowed Credits
Maximum Credits
Free Edition
5000 credits
5000 credits
Standard/Starter Edition
50,000 credits + (Number of User licenses x 250) + Add-on credits
100,000 credits
Professional
50,000 credits + (Number of User licenses x 500) + Add-on credits
1,000,000 credits
Enterprise/Zoho One
50,000 credits + (Number of User licenses x 1000) + Add-on credits
2,000,000 credits
  Ultimate/CRM Plus
50,000 credits + (Number of User licenses x 2000) + Add-on credits
Unlimited


 If you think you will need more API credits in addition to the daily allowed limit, you can purchase additional credits.

       The API Rate Limit is for a rolling window of 24 hours i.e., for every API call, we will check the API credits consumed in the last 24 hours  to see whether the current API call can be allowed or not. When you make the very first API call , a 24 hour window begins. The API credits you used at each time interval will be freed up after 24 hours corresponding to each time interval.



      Consider the above example where we assume that you are making API calls starting from 9 AM. The total available credits are 5000. For simplicity, let us consider that there are no API calls made on the previous day and no additional credits were purchased.

      Between 9:00 AM and 9:05 AM on day 1,  you use up 100 credits and you are left with 4900 credits . Since no API calls were made the previous day, you have no API credits getting freed up at that time. Between 9:05 AM and 9:10 AM, you use up 150 credits, leaving you with 4750  credits. Let us assume that you exhausted your available limit by 8.45 AM the next day. 
  
      At 9 AM on day 2, 100 API credits used on the previous day (day 1) will be freed up. Similarly, at 9:05 AM on day 2 ,  150 credits will be freed. In this case API calls between 8:45 AM and 9 AM will result in system errors.  

      Let us consider the same scenario if you had purchased add-on credits. After you exhaust your available limit by 8:45 AM on day 2, the credits for further API calls will be considered from the purchased add-on credits. At 9 AM, when the 100 API credits used on the previous day are freed up they are available for your use instead of add-on credits.

Concurrency 


In addition to 24 hour rolling window throttler, Zoho CRM has concurrency limit being applied for APIs. It will limit the no of parallel API calls being active at one time instance. Concurrency limit is checked per org per OAuth app. Concurrency limit differs based on your Zoho CRM edition.


Edition
Concurrency limit for an Org/App
Free
5
Standard/Starter
10
Professional
15
Enterprise/Zoho One
20
Ultimate/CRM Plus
25



Let's assume your organization has a concurrency limit set at 10. A sequence of API calls are made one after another. When all these API calls are still in process with each API call you make, the number of concurrent API calls increases incrementally. Initially, when you make the first API call, concurrency is 1. For the second API call made before the end of the first API call, concurrency becomes 2, and so on. This scenario is shown in the picture above. Once you reach the 10th API call, concurrency reaches its maximum limit of 10. As a result, the 11th API call fails.

However, let's assume that the 5th API call completes its process, thereby reducing the concurrency level to 9. In this state, the 12th API call can be made successfully without encountering any errors.

Sub-concurrency

Some APIs will take much more computing resources than other APIs. For example, an Insert Records API call for a 1000 records will take much more resources than a Get Leads API call for a particular lead id.

For such APIs, we'll apply a separate concurrency limit namely sub-concurrency limit to ensure that the APIs are being used responsibly. The APIs that will falls 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
Across all editions of Zoho CRM, the sub-concurrency limit is set as 10. You can make 10 concurrent requests for a combination of the above listed APIs or 10 concurrent requests of one of the APIs. However, if the total number of sub-concurrent requests exceeds 10, the system will generate a "TOO_MANY_REQUESTS" error.



Let's understand how concurrency and sub-concurrency apply together to your API calls. Assume that in your organization, the concurrency limit is set at 12 and sub-concurrency limit is set at 10. 

We'll consider a case where send mail API call has been fired in parallel 11 times, for which the sub-concurrency is applicable. For the first 10 send mail API calls, there won't be any error and sub-concurrency limit will reach it's maximum allowed limit of 10. When the 11th API call is made, the error "TOO_MANY_REQUESTS"  will be thrown even though the concurrency limit of 12 has not reached .

Now, let's consider the 12th API call, doesn't fall under the category of API calls subject to the sub-concurrency limit, say it is a normal GET records call with just fields & ids parameter. This call goes through successfully without encountering any errors. Similarly, the 13th API call, a GET user API call, also goes through. At this point, the concurrency is 12, and the concurrency limit is set at 12 as well.  The 14th API call will result in an error because the concurrency limit exceeded.  In short, the number of API calls allowed at a time depends on the concurrency limit and sub-concurrency limit. 


We hope you found this post useful and it increased your understanding.  Stay tuned for more.

Cheers!
Mable

    • Recent Topics

    • SendMail in CRM Deluge function rejects a validated email address

      In a CRM Deluge function, the email address is considered invalid. Is there another method by which it can be validated? It's unacceptable in my current situation to use either the zoho.loginuserid or adminuserid as the From address.
    • how do i remove a specific Zoho Service from my account

      I no longer need Zoho CRM, ZRM Assist nor ZRM BugTracker. How do I remove them from the list of apps for my account?
    • Link project tasks to tasks in CRM and/or other modules.

      Hello, I have created and configured a project in Zoho Projects with a set of tasks. I would now like to link these tasks (I imagine according to the ID of each one) to actions in the CRM: meetings, tasks, analytics). The aim is to link project tasks
    • Introducing 'Queries' In Zoho CRM

      Hello everyone! We are here with an exciting feature - Queries in Zoho CRM! A little context before we dive right into the feature specifics :) In today’s fast-paced business environment, immediate access to relevant data is essential for informed decision-making.
    • How to map a global picklist from one module to another

      Hi there, i currently have a new field that is called sales office which we use for permission settings between our different offices located in different countries. It is a global set picklist with three different options: MY, SG and VN. I want to be
    • Build custom AI solutions with Catalyst’s QuickML capabilities in CRM

      Hello everyone, We’re thrilled to announce an improvement for our Zoho CRM Enterprise users: the ability to create custom AI solutions using Catalyst’s QuickML directly from Zoho CRM. As you may already know, Zia, Zoho CRM’s AI-powered assistant, offers
    • Unveiling Cadences: Redefining CRM interactions with automated sequential follow-ups

      Last modified on 01/04/2024: Cadences is now available for all Zoho CRM users in all data centres (DCs). Note that it was previously an early access feature, available only upon request, and was also known as Cadences Studio. As of April 1, 2024, it's
    • Pay Contractor Timesheets

      I have contractors that fill out a timesheet. Each hour must be assigned to a current client. I need the easiest way to get the contracts paid. They are paid on an hourly bases. How can this be done?
    • Inventory Valuation Method Feature

      Zoho added another feature so called Inventory Valuation Method of each Item. This is actually good to see and it will benefit us so much but I have a question on this. For Existing Items that already have transactions, Zoho made it a default and assumed
    • Set up slack alert based on a field changing from one option to any other

      Hi, I'm trying to set-up a workflow to send a slack alert if a field changes from one option to any other. I've set-up a workflow to trigger on Edit and when a specific field gets modified but the only option I have 'is modified to' when really it should
    • Better UI more user friendly

      Hello everyone, I think all finance apps, especially Zoho Books, would benefit from the following suggestions/ notes: 1. Grouping Fields in Zoho Books: Unlike Zoho CRM, Zoho Books does not seem to have an option to create sections or group fields. This
    • Chronicles of 2024: The Year in Retrospect

      As we close out 2024, let’s take a moment to highlight the new features and updates that have enhanced Zoho Invoice in 2024. Among the exciting enhancements, we have launched a new AI-powered chatbot designed to assist you in understanding the app's features
    • Power of Automation :: Automatically archive your inactive Projects

      Hello Everyone, 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
    • 554 5.1.8 Email Outgoing Blocked

      HELP!!!!! My e-mail marymariya@zoho.com is blocked. Error: 554 5.1.8 Email Outgoing Blocked The third day I am writing to the forum, but zohosupport is not responding. Why? What is the problem? I ask to help solve the problem, because I can not communicate with my customer base.
    • Zoho Inventory: Rewinding 2024

    • Custom Modules Now available for Standard and Professional Editions with Expanded Limits across all editions

      #CRM25Q1 Hello Everyone, We are here with an exciting update to Custom Modules in Zoho CRM. Custom modules will now be available to Standard and Professional Edition users, with expanded support across all editions. The standard modules offered in Zoho
    • Assistance with Custom Attendance Report in Zoho People

      Hi, I created a custom report in Zoho People 5.0 to track employee attendance according to our specific needs, as the existing reports do not include all the required details. However, I’ve noticed that the report doesn’t update continuously or on a daily
    • Zoho analyticsでのタブを跨いだ集計

      Zoho analyticsまたはCRMレポートなどを用いて、 見込み客タブと商談タブで共通するユニークキー(リード管理番号)を軸に、「共通選択リスト」で設定した項目別の集計を行うことは可能でしょうか? ・要望 ①リード管理番号をキーに、見込み客テーブルと商談テーブルを結合したRAWデータを作成したい ②具体的には下記表のように「共通選択リスト」項目(サービス)別のマーケ数値を一表にしたい  ※リード=見込み客タブ 商談・成約=商談タブ      リード数 商談数 成約数 サービスA   10   5   2
    • Key Highlights of 2024: Recalling a Year of Progress and Advancements!

      As we step into 2025, we’re excited to share the progress and developments we’ve made to simplify and streamline your travel and expense management in the past year. Let’s take a look back at some of the key updates and enhancements that have helped us
    • How to refresh the page by widget in related list?

      Hello, ZOHO.CRM.UI.Popup.closeReload method does the thing I need. But in my case, I'm not using popup. I have a widget in related list and I want to refresh the page when I'm done with it. I searched for it but I wasn't able to find it. Is there an any
    • Organization Variables - Restrict Access

      Currently, there is no way to restrict the access to organization variables. This leads to a problem when storing API related values that should be kept secret as anyone with access to create and edit email templates, workflow rules, or inventory templates
    • your phone line in the uk doesnt work i need help now

      i need to speak with customer service urgently
    • Top Menu Disappeared from Blog Page

      Hi, Our top menu disappeared at Blog Posts page. However, it's still visible any other page on the website. I attached two screenshots, so it can be understood clearly. How can we bring back top menu? Thanks, K.
    • Missing phone numbers

      yesterday I have noticed that most contacts' phone numbers are missing. At first I thought it is a synchronisation problem with my Android phone but as I have found later, numbers are missing on Zoho. I have tried to reimport contacts from a backup but
    • Customise 404 page in Zoho Sites 2.0

      Is it possible to customise the 404 page in Zoho Sites 2? You use to create a new 404 page and that became the default 404 page, but this does not seem to work anymore? Any pointers/suggestions/support appreciated :)
    • [Important announcement] Zoho Writer will mandate DKIM configuration for automation users

      Hi all, Effective Dec. 31, 2024, configuring DKIM for From addresses will be mandatory to send emails via Zoho Writer. DKIM configuration allows recipient email servers to identify your emails as valid and not spam. Emails sent from domains without DKIM
    • Create workflow rules based on notes

      Last modified on 17/04/2023: Creating Workflow rules based on notes is now available for all Zoho CRM users in all DCs. Note that it was an early access feature available only upon request. As of April 13, 2023, it is rolled out for al Zoho CRM accounts.
    • Workflow sync between zoho books and zoho inventory

      Hello, While the custom fields, validation rules and even custom buttons are sync'd between zoho books and zoho inventory, the workflow rules do not. Not sure if this is an intentional purpose of zoho team for some good reason or if it's in the development
    • HOW TO USE ZOHO

      IDK
    • Item sales account via api

      Hey everyone, I’m making an invoice using the create invoice endpoint on the api. Is it possible to set a sales account in the line_items attributes?
    • Zoho Please change your ways

      I started using Your new Zoho bookings in earnest 3 days ago. What a mistake.  Once again, everything is backwards and upside down.  I had to spend 5 hours testing how the thing works in order for me to understand how to acutally use it.  When i started using google calendar years ago.  it took seconds to figure out how it works. Why is that. bc they put everything in places where it makes sense.  Today, I needed to add an appointment as well as a time off.  Stupid me i added the time off first,
    • Make a ticket visible in the Community

      Hi there, It is possible to have a conversation with a customer via a ticket and eventually the proposed solution isn't possible yet. Therefore you want to add it as an idea in the Community, available and open to everyone that is in the community, so
    • How to Enforce Mandatory Fields (Category/Sub-category) Before Closing a Ticket?

      Hi, I'm currently using Zoho Desk and encountering an issue where agents are able to close tickets without filling out mandatory fields, specifically Category and Sub-category. I’ve already set them both as a mandatory field, but it can still be bypassed
    • Zoho email folders gone

      Hi, All my email folders are gone, i cant found any email, except sent. Also before folder rulesas was changed and i didnt fixed them, could you please check it?
    • Pause/Resume Subscrtiption API

      I don't see the option to Pause/Resume a subscription using the API, is it in the pipeline?
    • Update Department on Ticket (with applied Blueprint)

      Hello, Is it possible to update the Department of a ticket which is dictated by a blueprint, e.g. I would like to change departments at different states in the Blueprint. I do not see this is an option in workflow rules or blueprint transition actions,
    • ERROR_CODE :554, ERROR_CODE :rejected due to spam

      Please verify bounce message: This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. xxx@thalesesec.com Error, ERROR_CODE :554, ERROR_CODE
    • Can't verify domain with AWS Route53

      I have a domain successfully transferred to AWS Route53 from NameCheap. When I try to CNAME or TXT Records as suggested, they are added in AWS console however zohomail does not verify them. For the TXT record zohomail says the value is wrong, whereas
    • Sent emails not going and showing "Processing"

      Hello Team, Could you please assist with sent emails showing "processing" and not actually going through? Many thanks and regards, Cycology
    • LinkedIn verification link and otp not receiving

      For the last 2 to 3 weeks I'm trying to verify my LinkedIn account to access my company's LinkedIn page, Linkedin is sending verification links and codes to this email address but I have not received any codes or links. Please help me here. Looking forward
    • Next Page