---
title: "Zoho CRM API: pricing, rate limits & MCP | ONEGTMLAB"
description: "Zoho CRM API: Low-cost, highly customisable CRM with REST API v8 (records, upsert with duplicate-check fields, search, COQL), Bulk Read/Write jobs…"
canonical: https://www.onegtmlab.dev/tool-directory/crm/zoho-crm
---

# Zoho CRM API: pricing, rate limits & MCP | ONEGTMLAB

[](/)

[

Book a call

](/book)

![](/_astro/zoho-crm.BclPw__4_TjunH.webp)

API review

# Zoho CRM API review

Low-cost, highly customisable CRM with REST API v8 (records, upsert with duplicate-check fields, search, COQL), Bulk Read/Write jobs, notifications (webhooks), GraphQL, multi-data-centre OAuth and a free Zoho MCP that spends the same API credits. Best for cost-sensitive clients that still need an API.

Verified 25 Oct 2026 · 8 endpoints listed · Official MCP server

[

See pricing

](#pricing)[

Zoho CRM API docs

](https://www.zoho.com/crm/developer/docs/api-directory.md)

At a glance

Category

CRM

Pricing model

Per seat

Free tier

Free edition: up to 3 users, 5,000 API credits/day, no webhooks

Entry price

$14/mo, billed annually Standard

Auth

OAuth

Official MCP

Yes

Best for

Cost-sensitive clients that still need an API

[zoho.com ↗](https://www.zoho.com/crm/)[Pricing page ↗](https://www.zohowebstatic.com/sites/zweb/json/pricing/crm-pricing-val.json)

## What a call costs

The actions you pay for, as Zoho CRM prices them.

Action

Cost

Per

Insert/Update/Upsert

1

credit per 10 records

Bulk Write initialize

500

credits per job

Bulk Read initialize

50

credits

Convert Lead

5

credits

Merge records

50

credits

Send Mail

20

credits

## Pricing, plan by plan

US dollars, as Zoho CRM's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

Free tier Free edition: up to 3 users, 5,000 API credits/day, no webhooks. Signup opens a 15-day trial and requires a mobile number verified by SMS OTP (our trial from an Indian IP, 2026-10-25).

### Standard

$20/mo

billed monthly

$14/mo

billed annually

per user; India price ₹1,300 monthly / ₹800 annual per user/month (same price file, INR column)

API includedPlan details

pay-as-you-go extra API credits

### Professional

$35/mo

billed monthly

$23/mo

billed annually

per user; webhooks 50,000/day or 100/user licence/day; India price ₹2,100 / ₹1,400 per user/month (same price file, INR column)

API included

### Enterprise

$50/mo

billed monthly

$40/mo

billed annually

per user; webhooks 500,000/day or 500/user licence/day; India price ₹3,000 / ₹2,400 per user/month (same price file, INR column)

API included

### Ultimate

$65/mo

billed monthly

$52/mo

billed annually

per user; webhooks 1,000,000/day or 1,000/user/day; India price ₹3,200 / ₹2,600 per user/month (same price file, INR column)

API included

### Starter (India)

[Price not verified](https://www.zoho.com/crm/comparison.html)

₹600/user monthly, ₹500/user/month annual; shown only in INR on the comparison page and absent from the USD price file (India-only plan)

API included

## Rate limits

Credit system on a rolling 24-hour window plus a concurrency cap per org per app (no per-minute limit).

Limit

Free

Standard/Starter

Professional

Enterprise/Zoho One

Ultimate/CRM Plus

Credits 24h

5,000

50,000 + users x 250 + add-ons (max 100,000)

50,000 + users x 500 + add-ons (max 3,000,000)

50,000 + users x 1,000 + add-ons (max 5,000,000)

50,000 + users x 2,000 + add-ons (unlimited max)

Concurrency

5

10

15

20

25

More on limitsLess

Most calls cost 1 credit; writes cost 1 per 10 records; Bulk Write 500 per job. X-API-CREDITS-REMAINING header appears after 50% use. Extra credits can be enabled pay-as-you-go from the API dashboard.

## How to get an API key

Zoho CRM uses OAuth. The steps below follow Zoho CRM's own docs.

1.  Create a Zoho CRM account. API access starts on the Standard plan.
2.  Register a client in the Zoho API console, get a grant code, exchange it for an access token (expires\_in 3600 s) and a refresh token; tokens are org-specific and data-centre-specific. Accounts URLs: US accounts.zoho.com, AU.com.au, EU.eu, IN.in, CN.com.cn, JP.jp, SA accounts.zoho.sa, CA accounts.zohocloud.ca; API domain follows the DC (e.g. www.zohoapis.eu, www.zohoapis.com.cn).
3.  Send it with every request: header: Authorization: Zoho-oauthtoken <access\_token>.
4.  Make a first call: Insert or update up to 100 records, matched on duplicate check fields (system unique fields or fields marked unique), order set by duplicate\_check\_fields. Keep the key in an environment variable, never in the command.
    
    ```
    curl -X POST "https://www.zohoapis.com/crm/v8/{module}/upsert" \
      -H "Authorization: Bearer $ZOHO_CRM_ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{}'
    ```
    

## Where the docs live

What

Where

Documentation

[zoho.com/crm/developer/docs/api/v8](https://www.zoho.com/crm/developer/docs/api/v8/)

API reference

[zoho.com/crm/developer/docs/api-directory.md](https://www.zoho.com/crm/developer/docs/api-directory.md)

llms.txt

[zoho.com/crm/developer/llms.txt](https://www.zoho.com/crm/developer/llms.txt)

Base URL

`https://www.zohoapis.com/crm/v8`

MCP server

`https://www.zoho.com/mcp/`

SDKs

PHP, Node.js, Java, C#, Python, Ruby, TypeScript, Scala, JavaScript (client-side)

## Strengths and limits

### Where it fits

-   Cost-sensitive clients (Standard from $14/user/month annual) that still need an API
-   Batch writes: insert/update/upsert 100 records per call for 1 credit per 10 records
-   Large imports via Bulk Write (25,000 records per CSV, 500 credits per job)
-   Org-wide SQL-like reads with COQL

### Where it falls short

-   Webhooks on Free/Starter/Standard (webhook actions start at Professional)
-   Exact-match dedupe via Search: the equals operator behaves like contains
-   Teams that cannot handle OAuth refresh tokens and data-centre-specific domains

### Worth knowing

-   Search API 'equals' behaves like 'contains': (Company:equals:ABC) also returns 'ABC Inc'. Do not use it as an exact dedupe check; prefer upsert with duplicate\_check\_fields or COQL. Source: [zoho.com/crm/developer/docs/api/v8/search-records.html](https://www.zoho.com/crm/developer/docs/api/v8/search-records.html)
-   Every Bulk Write job costs 500 credits even if it fails; on Free (5,000/day) that is 10 jobs. Source: [zoho.com/crm/developer/docs/api/v8/bulk-write/limitations.html](https://www.zoho.com/crm/developer/docs/api/v8/bulk-write/limitations.html)
-   Credit caps conflict between Zoho pages: the comparison page lists Professional 500,000 and Enterprise 1,000,000 credits/day/org, while the API limits doc gives a formula (50,000 + users x 500/1,000) with maxima of 3,000,000 / 5,000,000. Sources: [zoho.com/crm/comparison.html](https://www.zoho.com/crm/comparison.html); [zoho.com/crm/developer/docs/api/v8/api-limits.html](https://www.zoho.com/crm/developer/docs/api/v8/api-limits.html)
-   Deluge integration tasks (zoho.crm.\*) inside Zoho functions also consume API credits. Source: [zoho.com/crm/developer/docs/api/v8/api-limits.html](https://www.zoho.com/crm/developer/docs/api/v8/api-limits.html)
-   Tokens and API hosts are data-centre specific (.com/.eu/.in/.com.au/.com.cn); a token from one DC fails on another. Source: [zoho.com/crm/developer/docs/api/v8/multi-dc.html](https://www.zoho.com/crm/developer/docs/api/v8/multi-dc.html)

6 moreShow fewer

-   Zoho MCP is free but spends the same daily API credits. Source: [zoho.com/mcp/pricing.html](https://www.zoho.com/mcp/pricing.html)
-   Observed 2026-10-25.
-   Notification channels expire after ONE HOUR unless channel\_expiry is set (max one week); re-enable before expiry to keep them alive. Source: [zoho.com/crm/developer/docs/api/v8/notifications/enable.html](https://www.zoho.com/crm/developer/docs/api/v8/notifications/enable.html)
-   Bulk Write jobs do not trigger workflows, and do not support attachments, notes, file/image fields or formula/auto-number fields. Source: [zoho.com/crm/developer/docs/api/v8/bulk-write/limitations.html](https://www.zoho.com/crm/developer/docs/api/v8/bulk-write/limitations.html)
-   Signup requires a mobile number verified by SMS OTP (from an Indian IP the form preselects +91).
-   Prices differ by region inside USD itself (US 'USD' vs Latin-America 'OLDUSD' vs 'USDAFRICA'), so quote the 'USD' column for a US audience. Source: [zohowebstatic.com/sites/zweb/json/pricing/crm-pricing-val.json](https://www.zohowebstatic.com/sites/zweb/json/pricing/crm-pricing-val.json)

### Our take

We compared Zoho CRM's Free edition when choosing a free CRM for our own team and ruled it out: it caps data at 5,000 records and has no webhooks, no custom fields and no de-duplicate tool.

## Who should use it

Use Zoho CRM for

Cost-sensitive clients (Standard from $14/user/month annual) that still need an API

Look elsewhere for

Webhooks on Free/Starter/Standard (webhook actions start at Professional)

## If Zoho CRM is not the answer

Other CRM tools in this directory, each with its own review.

[

![](/_astro/attio.CoO4UDxn_Zx1tGp.webp)

Attio

CRM

Free planOfficial MCP

Best for start-ups and agencies wanting a free/cheap CRM with API, webhooks and MCP on every plan.

Attio API review →](/tool-directory/crm/attio)[

![](/_astro/close.BGAid65p.svg)

Close

CRM

From $9/moOfficial MCP

Best for inside-sales teams that call and email from the CRM.

Close API review →](/tool-directory/crm/close)[

![](/_astro/copper.CFmJ3qY-.svg)

Copper

CRM

From $23/mo

Best for google Workspace teams that want a simple CRM inside Gmail.

Copper API review →](/tool-directory/crm/copper)

## Before you build

Four things to settle first, each read off Zoho CRM's own pages.

-   **Confirm the API is on your plan**API access starts on the Standard plan. Free tier: Free edition: up to 3 users, 5,000 API credits/day, no webhooks.
    
-   **Keep the key out of your code**OAuth. It is sent as: header: Authorization: Zoho-oauthtoken <access\_token>.
    
-   **Design around the rate limit**Credit system on a rolling 24-hour window plus a concurrency cap per org per app (no per-minute limit).
    
-   **Know the catch before you scale**Search API 'equals' behaves like 'contains': (Company:equals:ABC) also returns 'ABC Inc'. Do not use it as an exact dedupe check; prefer upsert with duplicate\_check\_fields or COQL. Source: [zoho.com/crm/developer/docs/api/v8/search-records.html](https://www.zoho.com/crm/developer/docs/api/v8/search-records.html)
    

## Want us to build it for you?

Tell us what you want Zoho CRM to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

[

Book a call

](/book)[

See case studies

](/case-studies)

Read from [zohowebstatic.com/sites/zweb/json/pricing/crm-pricing](https://www.zohowebstatic.com/sites/zweb/json/pricing/crm-pricing-val.json), [zoho.com/crm/developer/docs/api-directory.md](https://www.zoho.com/crm/developer/docs/api-directory.md) and [zoho.com/crm/developer/docs/api/v8/api-limit](https://www.zoho.com/crm/developer/docs/api/v8/api-limits.html). Verified 25 Oct 2026.

All 8 endpointsFor developers: method, path, what it does and what it costs.

**Base URL:** `https://www.zohoapis.com/crm/v8` (data-centre specific, e.g. `https://www.zohoapis.eu/crm/v8`)

**Bulk and async:** Bulk Write: zipped CSV max 25MB, 25,000 records and 200 columns per file, 500 credits per job; Bulk Read: 50 credits per job. Source: [zoho.com/crm/developer/docs/api/v8/bulk-write/limitations.html](https://www.zoho.com/crm/developer/docs/api/v8/bulk-write/limitations.html)

**Webhooks:** Two kinds: workflow webhook actions (Professional+; per-day caps by edition) and Notification API channels (instant create/edit/delete events, channel expiry max one week, re-enable to keep alive). Sources: [zoho.com/crm/comparison.html](https://www.zoho.com/crm/comparison.html); [zoho.com/crm/developer/docs/api/v8/notifications/enable.html](https://www.zoho.com/crm/developer/docs/api/v8/notifications/enable.html)

Filter endpoints

8 endpoints

Method

Path

What it does

Cost

POST

`/{module}/upsert`

Insert or update up to 100 records, matched on duplicate check fields (system unique fields or fields marked unique), order set by duplicate\_check\_fields

1 credit per 10 records (max 10 per call)

POST

`/{module}`

Insert up to 100 records

1 credit per 10 records

GET

`/{module}/search`

Search records in one module by criteria/email/phone/word

1

POST

`/coql`

SQL-like SELECT across a module (COQL)

1 (LIMIT 1-200), 2 (201-1000), 3 (1001-2000)

POSTasync

`https://www.zohoapis.com/crm/bulk/v8/write`

Bulk Write job from an uploaded zipped CSV (insert/update/upsert)

500 credits per job regardless of outcome

POSTasync

`https://www.zohoapis.com/crm/bulk/v8/read`

Bulk Read (export) job

50 credits per initialize

POST

`/__composite_requests`

Run several API calls in one request

1

POST

`/actions/watch`

Enable instant notifications (create/edit/delete events) to a URL; channel\_expiry max one week, and if omitted (or set beyond a week) the channel expires after one hour

1

[](/)

© 2026 ONEGTMLAB Private Limited. All rights reserved.

COMPANY

[

Why Us

](/#why-us)[

Process

](/#timeline)[

Blogs

](/blogs)[

About

](/about)[

Clients

](/clients)[

Free resources

](/free-resources)[

Newsletter

](/newsletter)

Services

[

GTM Engineering

](/ai-gtm-engineering)[

Account-Based Marketing

](/services/account-based-marketing)[

Paid Media

](/services/paid-media)[

Content Engineering

](/linkedin-personal-branding)[

RevOps

](/services/revops)[

SEO, AEO & GEO

](/services/seo-aeo-geo)[

All services

](/services)

![](/_astro/wordmark-3d.CMEfGdYr.svg)
