APIs are not just consumed by a developer with numerous automations and a series of open browser tabs. They are parsed by LLMs, fed into agent pipelines, and auto-completed by AI coding assistants that have zero tolerance for inconsistency.
A verb tucked into a URL, multiple pagination tokens across each module, inconsistent key naming, etc. These gaps create friction that compounds across every integration built on top of our APIs.
Hence, introducing our new REST API documentation with v3 REST APIs, which act as a comprehensive rule-book detailing proper response structures, error codes, query conventions, URL format and HTTP semantics.
💡
Switching API Versions
To switch between the two API versions, navigate to the top-right corner of the documentation, where you will find a dropdown menu. We currently support v2 (legacy) and v3 (latest).
Here's what we have upgraded, why it's essential, and what it means for anyone building with Cliq APIs today.
Along with standardization,
v3 APIs ship with a substantial set of new capabilities that address the inconsistencies left by
v2.
Platform components management

No more endless search exploration
In v2, "search" meant fetching paginated lists, filtering, and manually applying conditional logic, thereby burning bandwidth.
v3 includes dedicated search endpoints for both
messages and
chats, with rich filtering parameters.
Cliq UI via API
The gap between what the UI could do and what the API could do ends with
v3. Like, when a user pins a message, stars a chat, or adjusts a notification preference, your integration hits a dead end.
New documentation template
Along with the APIs and their standardization, we have revamped the documentation theme that's as dynamic as our APIs.
AI tooling
- Interrogate implementation questions, debug edge cases, and more by clicking the AI tools dropdown, which populates the Open in Claude, Open in ChatGPT, Copy as Markdown, and View as Markdown options available on every documentation page.
- Launch a Claude or ChatGPT session with the full endpoint schema already loaded in context.
- Every module overview page ships a module-specific OAS .yml file, and the complete openapi-all.zip bundle is always one click away.
- Feed it into OpenAPI Generator for typed client SDKs, drop it into an LLM for schema-accurate code generation, load it into SwaggerHub for an interactive explorer, or wire it into your CI pipeline for contract testing.
Updated Postman collection
- At the top of the documentation, access the Postman collection with the correct method, URL, headers, and body for every endpoint. An OAuth folder handles the full token lifecycle and automatically generates and populates both your access and refresh tokens without any manual setup.
- Multi-data center support is added into environment variables, two changes switch the entire collection across the US, EU, IN, AU, JP, and CA. Fork it, pull updates as the API evolves, and keep every customization intact.
Glossary as a single source of truth

All the unique 25+ identifiers (
BOT_ID,
CHAT_ID,
CHANNEL_UNIQUE_NAME, etc.) are defined once, with retrieval guides (e.g., how to retrieve via API and UI, if possible), and they're linked from every endpoint that uses them, so there's no more cross-referencing tabs or guessing what a parameter expects.
Multiple language code examples

- cURL, Deluge, Java, JavaScript, Node.js, and Python are available copy-ready on every endpoint. Default is cURL. Use the dropdown to switch between different code examples. Pick your language, copy, and run.
- Fun-fact: We've also got you covered with bonus support for C#, C# HTTPClient, Go, and JavaScript XHR 🥳
Endpoint-specific errors
- Every endpoint includes a section called "Possible Error Codes." By clicking this section, you can view error codes along with their HTTP status codes and plain-language descriptions.
- The codes in the table match exactly the strings the API uses. The information is presented in an expandable and collapsible format to enhance the user interface and user experience.
- The relevant error handling can be done with your custom scripts without parsing or guessing any more
Multiple request body examples, per endpoint

- Some endpoints support multiple ways to use them. For those, the documentation ships multiple request body examples, each mapped to a distinct business use case, with its own response example.
- Switch between them from the dropdown, understand the intent, and take it straight into your script. No reverse-engineering the schema, no guessing what a field is actually for, every example is a real, working scenario you can adapt and use
Technical Upgrades
Removal of verbs in URL

- v2 APIs used verb patterns as placeholders in endpoint URLs (e.g., /resource/create or /resource/delete), and these endpoints are spread across every module.
- v3 APIs remove these verb placeholders, so every state transition that previously had a unique endpoint now uses a PUT or PATCH on the resource itself, with the new state included in the request body.
Unified response envelope
v2 responses had no consistent shape: some were bare, some wrapped, some ad hoc per endpoint, and all were different. v3 uses one envelope everywhere.
- {
- "type": "bot",
- "data": { ... }
- }
- For list responses, the same envelope extends naturally:
- {
- "type": "bot",
- "next_token": "NTB8MTc1Nj...",
- "sync_token": "NTB8MTc3Nz...",
- "deleted": ["53719000001620003"],
- "data": [ ... ]
- }
Type uses dot notation for sub-resources: channel. member, chat.read_status, so the resource type is unambiguous regardless of nesting depth. deleted lists IDs removed since the last sync, enabling cache-consistent incremental sync without polling. You write response-parsing logic once. It works across the entire API.
Uniform pagination
Paginating through v2 APIs was genuinely frustrating. Each module used its own token, and you had to account for every variation, and there was no single pattern you could rely on across the board.
The API surface was fragmented across six different tokens: next_token, sync_token, next_set_token, start_token, next_search_token, and page_number, which meant writing and maintaining module-specific pagination code was simply the norm.
- next_token: A cursor for forward pagination that works the same way regardless of which resource you are querying.
- sync_token: Designed for incremental sync, it returns only the records that have changed since your last request, making it significantly more efficient for keeping local state up to date.
Write your pagination logic once, and it works everywhere.
PATCH as a First-class method
In the v2 API, POST and PUT methods were used for almost everything, including partial updates. However, v3 enforces a more proper usage of HTTP methods. PATCH, in particular, is now utilized correctly and consistently.
This means that when updating two fields on a bot, you no longer need to resend the entire configuration. Instead, you only send what has changed, and the rest remains untouched.
Example:
- PATCH /api/v3/bots/{BOT_ID}
- {
- "name": "CRM Bot",
- "scope": "organization"
- }
Further additions
- URL Nesting: URL nesting is only used when it adds real value. If a parent ID can be understood from the authentication token, it is removed from the URL path. This keeps the URLs clean and avoids redundancy.
- Plural resource names: Every resource name in every URL, at every nesting level is plural. Hence predictability at URL level means tooling don't need to special case anything, one common rule is applied everywhere.
- Hyphens for multi-word segments: All multi-word segments use hyphens not camelCase, not underscores and no concatenation.
Example: /api/v3/chats/{CHAT_ID}/pin-messages
- Consistent Key Formatting: All request and response keys follow a consistent snake_case format. The mix of camelCase and snake_case from v2 modules has been eliminated. This ensures that generated clients and serialization logic function correctly from the outset.
- Field Selection and Sorting: Field selection and sorting are standardized across all list endpoints. You can limit the data returned using "?fields=id, name" and control the order with "?order_by=+created_time", maintaining the same syntax throughout.
- Granular OAuth Scopes: OAuth scopes are now more detailed and documented for each endpoint. This allows integrations to request only the permissions they need (READ, CREATE, UPDATE, DELETE), with each endpoint clearly stating the required scope.
And that's a Wrap 🚀 !
v3 is live, but it's not done yet. More modules, endpoints, relevant MCP tools and features are on the way, and they will all meet the same high standards you see here
Thank you for building on Cliq, for pushing us to improve, and for trusting us with your integrations.
Try it out now, and if you have any feedback, suggestions or need help integrating our APIs into your internal workflows, please reach out to support@zohocliq.com, and we'd be happy to help :)
💌 With love,
Team Zoho Cliq
Recent Topics
How to automatically update a % field according to a dropdown field in the Quote table
Hello there, I have following couples: Success % Status 0% NP 30% No Feedback 50% PR 80% Opp. Concreta 100% A I would like the Success % field (percent) to automatically update based on the item of the Status field (dropdown). The fields are within the
What's New in Zoho Billing | June 2026
Hello users! June brings a new set of updates to Zoho Billing designed to strengthen how you manage subscriptions, customise your records, and handle expense documentation. This month's highlights include a new one-time addon quoting workflow for subscriptions,
What's New in Zoho Inventory | June 2026
Hello partners, June 2026 introduces a range of exciting enhancements to Zoho Inventory. With the full rollout of the Zoho Inventory Windows application, the launch of Terminal Payments, and new tracking combinations in Advanced Inventory Tracking, you
[Zoho Writer webinar] Driving productivity through document automation
Live webinar on July 9, 2026 | Time: 2 PM IST | 2 PM EST Hi Zoho Writer users, Creating, reviewing, approving, and distributing business documents manually can slow teams down and introduce errors. Join our live webinar to learn how Zoho Writer helps
Free Webinar Alert! Zoho Workplace + Zoho Billing: Align Rev-ops and collaboration for greater efficiency
Hello Zoho Community! Want to make your billing process more connected and efficient? Join our upcoming webinar to see how Zoho Workplace and Zoho Billing work together to streamline your day-to-day operations. In this session, we'll show you how to manage
Canvas View: Add font family selection (incl. Google Fonts / Hebrew & RTL fonts)
Hi Zoho CRM team, The Canvas design suite (List View, Tile View, Table View and Record Detail) currently allows customizing font weight, size, color, alignment and case - but there is no option to choose the font family. All text is rendered in the built-in
【無料/オンライン】7/22開催|Zoho ワークアウト|ユーザー同士で学び合うオンラインもくもく会
ユーザーの皆さま、こんにちは。 コミュニティグループの中野です。 7月開催の「Zoho ワークアウト」のご案内です。 本イベントは、Zohoユーザー同士で交流しながら、 設定・検証・運用改善を進めるオンラインの「もくもく会」です。 「設定を進めたいけれど、一人だと手が止まってしまう」 「他社がどう活用しているのか知りたい」 「同じ課題を抱える仲間と話したい」 そんな方にぴったりのイベントです。 ▶︎ 参加登録はこちら(無料 ) URL:https://us02web.zoom.us/meeting/register/t7lA28wlQceRW6sZpeFEhQ
DYK 9: Dependent Layout Rules
Did you know that you can configure dependent fields in Task and Issue Layouts? In a project, tasks and issues vary in nature and so do the fields needed for each. Displaying relevant fields and values keeps the layout organised and ensures necessary
Does anyone else wish you could download Mail Merge quotations from the Zoho CRM mobile app?
Is it just me, or has anyone else run into this? I’m in sales, so I’m rarely at my desk. I’m usually in meetings, visiting clients, or travelling. One thing that genuinely frustrates me is that if a client asks me for a quotation, I can’t generate or
Introducing parent-child ticketing in Zoho Desk [Early access]
Hello Zoho Desk users! We have introduced the parent-child ticketing system to help customer service teams ensure efficient resolution of issues involving multiple, related tickets. You can now combine repetitive and interconnected tickets into parent-child
Related List Expanded View in Zoho CRM: see more related records at a glance, filter and take bulk actions
Hello everyone! Related lists show you the records connected to what you're working on: contacts under an account, activities tied to a deal, products linked to a quote. But until now, you could only see 10 records at a time. If you needed to filter results
Update on default settings for AI features in Cliq
Hello all, We'd like to provide clarity on a recent change to AI feature defaults in Cliq. As part of our regular review of AI features conducted in April 2026, we re-evaluated how these features are enabled by default. We've decided that the AI features
is it possible to adjust the date field to show Monday as a first day
Hi, Is it possible to adjust somewhere the date field, so the first day of the week is Monday (instead of Sunday)? Thank you! Ferenc
Text on Zoho Sign confirmation dialouge is very small compared to text used everywhere else on Zoho Sign.
I've reported multiple times through Zoho's support email that the text on this notification is very small in contrast to all the other text on the Zoho Sign app. I think it's a bug and it just needs the font size to be increased. It's very minor but
Cliq iOS can't see shared screen
Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
Zoho CRM custom button function, how to add line breaks/ new lines in the return message
When creating button function in CRM it requires a `return "";` Then when the button is client by the user a message pops up with what ever is returned from the function. But I want to have a message with multiple lines, meaning I need to add a line break
Feature Request: Dynamic Date Filter Criteria
Please implement the ability to select a dynamic date for all Filter Criteria. This would be helpful to create views that don't constantly need to be updated (example custom date field on an account) Examples: - Today - Tomorrow - This week - This Month
SalesIQ's Summer '26 Release: For The Moments That Matter
Every customer journey is made up of moments. The moment someone discovers your business. The moment they need help. The moment you decide to reach out. The moment a simple chat turns into something more. And the moments that continue long after the conversation
There is no link between Deals and Projects in Analytics
Hello there, I am trying to link Deals with Projects in a Pivot view on Zoho Analytics. However, there is no relationship, yet on CRM there is a relationship. As you can see below, there is no link between them: However, on CRM, if you go into a Deal,
How to Access Zoho Mail Messages to Microsoft Outlook? - Zoho Mail Converter
Zoho Mail is the free email hosting service which provide mailing with CRM service, so if you are one of them who is trying to import Zoho Mail emails to Outlook then keep reading. In this article we are going to provide accurate solution that will help you to import Zoho Mail emails to Outlook format in Batch. Zoho Mail service provide option to export mailbox in Zip format. So first – Export Zoho Mail emails in Zip format later use Zoho Mail to Outlook Converter to migrate Zoho emails into PST
Zoho Cliq REST APIs v3 : A complete guide to what's changed and why
APIs are not just consumed by a developer with numerous automations and a series of open browser tabs. They are parsed by LLMs, fed into agent pipelines, and auto-completed by AI coding assistants that have zero tolerance for inconsistency. A verb tucked
Feature Request: Include Creator-applicable Deluge updates in the Creator Release Notes
I'd like to put forward a suggestion about how Deluge updates are surfaced to Zoho Creator developers, and I'm hoping the Creator team will consider it. Zoho Creator is built on Deluge. Every workflow, custom function, validation and schedule we write
Zoho CRM Reports Module on Mobil App
I have the mobile app and the reports module doesn't appear in the sidebar for some reason. I saw a Youtube video where the user had the Reports module on mobile. Is there a setting to show it on mobile? Thanks.
Sigma function call hangs forever from Desk widget — app_install_id/encapiKey are null
Calling ZOHODESK.request() from the widget to invoke a Sigma DRE function URL hangs forever (never resolves, never rejects, no error) until client timeout. Tried with merge fields app_install_id={{sigmaInstallId}}/{{installationId}} and encapiKey={{enCapApiKey}}
Workdrive on Android - Gallery Photo Backups
Hello, Is there any way of backing up the photos on my android phone directly to a specific folder on Workdrive? Assuming i have the workdrive app installed on the phone in question. Emma
Auto sync Photo storage
Hello I am new to Zoho Workdrive and was wondering if the is a way of automatically syncing photos on my Android phone to my workdrive as want to move away from Google? Thanks
Postcode problems
So we were very pleased to see we could limit shipping with postcodes. Brilliant. Unfortunately we have discovered It does not seem fit for purpose. In the UK we write postcodes in various ways Examples BH217NL BH21 7NL Bh217nl bh217NL and many more ways
Getting Notifications but unable to load email
I am getting notifications through the web browser and my phone app that i am receiving emails, but i can not open the email to view. Below is the screen shot of the console panel.
WORKFLOW ISSUE: Zoho Finance Extension
Workflows are no longer triggering in my extension. This is true for the testing environment and 5 other organizations it is installed on. There are no conditions set for the workflow, and this is true for both create and delete related actions. Workflows
Zoho CRM Layout Rules: Nine New Actions, Profile-Based Execution, and Interactive Preview
Hello everyone, Availability: This feature is now available for customers in the JP and SA DCs. It is planned to be released for other customers in soon. We’re excited to announce powerful new enhancements to Layout Rules in Zoho CRM - a feature built
Certain items certain shipping
Me again it would be helpful to have different shipping for different categories. Our example are salt. Delivery is free but have a minimum delivery. Pickup is cheaper so it has its own category- pickup.
Zia Agents looks promising, but I still cannot deploy my first agent or connect WhatsApp after weeks of support tickets
Hi Everyone, I am posting here because I am stuck and need practical help from someone who has successfully deployed a Zia Agent with WhatsApp. Zia Agents looks like a very promising product. I have watched the platform expand quickly, and I have noticed
Handling Hard Bounce Contacts with Active Phone-Based Users (WhatsApp Use Case)
In Zoho Marketing Automation, when a contact is marked as “Hard Bounce”, we noticed that the contact stops receiving updates from CRM fields and may be excluded from automations. Is this expected behavior? In our case, the primary identifier and verified
Integration with existing websites
So most companies have existing websites. They want to integrate an online store with their existing site. How is that possible in zoho commerce please.
Subject: Message bar - reducing height and adding scrolling/rotating messages
Hello Zoho Commerce Support, I am building my store (Moksha Collections) and have the Message Bar enabled and positioned at the top. I have two questions: 1. Height: Is there a native setting to reduce the height (thickness) of the message bar? It currently
Moving over to commerce but shipping
In our company we love zoho onebut currently use ECWID for our online shop which is annoying as it requires double entering invoices. our requirements are that we do local deliveries limited by postcode -these are free. we also allow pickup they get a
Website not properly connecting with Zoho Creator app portal (embed & data sync issue)
Hello Zoho Community, I’m currently facing an issue while trying to connect my external website with a Zoho Creator app portal. I have a tool-based website ( https://mygardencalculator.com/ ) where users interact with calculators and dynamic content.
Show current inventory in the item list table for a composite item
Hello. We have many products that are composite items. Quickly determining inventory levels of individual items that make up a composite item would be beneficial. IDEA: Add columns"current inventory" and "available inventory" to the item table of the
Increase the "Maximum Saved Entries per User" Options Limit
Hi, You can create lots of saved entries, yet the Limit when you apply one is 25, we may often expect 32 to be in draft, and therefore want to enforce that, can we increase the limit of this field from 25 to 100 (As you can just turn it off and have more
When Zoho Tables Beta will be open to EU data center
Hello all, We in EU are looking at you all using and testing and are getting jealous :) When we will be able to get into the beta also? We don't mind testing and playing with beta software. Thank you!
Next Page