openapi: 3.0.0
info:
title: Bots Platform_storage API
description: "<p>Bots are conversational assistants designed to automate repetitive tasks and manage simple user interactions. Their behavior is fully customizable through predefined Bot Handlers, which are activated by specific actions or through Webhooks that communicate with your own external server.</p> <p>For more information about Bots, please refer to the <b><a href=\"https://www.zoho.com/cliq/help/platform/bots.html\" target=\"_blank\">Bots Help Documentation</a></b>.</p> <p><b>Bot Handlers</b></p> <ul>\n <li>Bot Handlers are the building blocks of a bot's functionality. Each handler is associated with a specific trigger event, such as receiving a direct message, being @mentioned in a channel, or a user subscribing to the bot.</li>\n <li>When the trigger event occurs, the corresponding handler executes it's script to perform actions like sending messages, making API calls, or updating data.</li>\n <li>By configuring different handlers, you can create bots that respond intelligently to various user interactions and automate complex workflows within Zoho Cliq.</li>\n</ul> <p><b>Types of Bot Handlers</b></p> <table style=\"border-collapse: collapse; width: 100%;\">\n <tr>\n <th style=\"padding: 8px; text-align: left; border: 1px solid #ddd;\">Handler</th>\n <th style=\"padding: 8px; text-align: left; border: 1px solid #ddd;\">Description</th>\n </tr>\n <tr>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Menu Handler</td>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Adds up to 5 quick-action items to the bot's chat menu. Triggered when a user interacts with the menu.</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Message Handler</td>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Triggered when the bot receives a message.</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Welcome Handler</td>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Defines the greeting message sent when a user subscribes to the bot.</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Mention Handler</td>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Triggered when the bot is @mentioned in a chat or channel.</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Incoming Webhook Handler</td>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Allows external services to post messages into the bot via outgoing webhooks.</td>\n </tr>\n <tr>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Context Handler</td>\n <td style=\"padding: 8px; border: 1px solid #ddd;\">Manages multi-turn conversations, maintaining context across a user's interaction with the bot.</td>\n </tr>\n</table> <p><b>What you can do with the Bots API?</b></p> <p>With the Bots API, you can retrieve information about a specific bot, list all bots within your organization, manage configurations specific to handlers, trigger bot calls programmatically, manage subscribers, and much more.</p> <p>Each bot has an <code>execution_type</code> that defines how its handlers run when a trigger event occurs. The Bots API allows developers to create two types of bots:</p> <p id=\"deluge-bots\"><b>Deluge Bots (default)</b><br> Deluge bot executes handler logic using Zoho's Deluge scripting language, hosted entirely within the Zoho Cliq Developer platform, where no external server is required.</p> <ul>\n <li>If <code>execution_type</code> is not specified during bot creation, it defaults to deluge.</li>\n <li>Handler logic is defined as a script field (Deluge source code) when creating or updating handlers.</li>\n <li>Suitable for teams that want to build and manage bot logic entirely within Zoho's ecosystem.</li>\n</ul> <p id=\"webhook-bots\"><b>Webhook Bots</b><br> A Webhook bot delegates all handler execution to your own external server. When a trigger event fires, Zoho Cliq sends an HTTP POST request to the <code>execution_url</code> you configure, and your server processes the event and returns a response.</p> <ul>\n <li>To create a Webhook bot, set <code>execution_type</code> to webhook during bot creation and provide the <code>execution_url</code> where event payloads should be sent.</li>\n <li>Your server must be publicly accessible and able to handle incoming POST requests from Zoho Cliq.</li>\n <li>Ideal for teams seeking complete control over bot logic and possessing the resources to manage an external server. Also suitable for integrations requiring access to external databases, third-party APIs, or custom business logic that cannot be executed in Deluge.</li>\n</ul>\n"
contact: {}
version: 1.0.0
servers:
- url: https://cliq.zoho.com/api/v3
description: Zoho Cliq US DC
tags:
- name: Platform_storage
description: Manage Cliq Datastores - structured, schema-defined storage tables scoped to an organisation or extension. Datastores allow platform components to persist and query structured data across executions. Each datastore has typed fields and supports CRUD operations, field schema management, bulk record exports, and criteria-based queries.
paths:
/datastores:
post:
summary: Create a datastore
operationId: creating_datastores_for_an_org
description: "Create a new Datastore for the organisation.<br><br>\nA Datastore is a structured storage table scoped to the organisation (or an extension) that allows platform components to persist and query data across executions.\n<br><br>\n<p>\n <b>Threshold limit</b>: 10 requests per min per user<br>\n Number of API calls allowed within a minute.<br><br>\n <b>Lock period</b>: 5 minutes<br>Wait time before consecutive API requests.<br>\n</p>\n<details style=\"margin:16px 0 8px 0; border:1px solid rgba(148,163,184,0.5); border-radius:8px; font-family:inherit;\" ontoggle=\"this.querySelector('.err-toggle-hint').textContent=this.open?'Click to collapse':'Click to expand'\">\n <summary style=\"cursor:pointer; padding:11px 16px; font-weight:600; background:rgba(148,163,184,0.1); list-style:none; display:flex; align-items:center; gap:8px; user-select:none; border-radius:8px;\">\n <span style=\"display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; background:rgba(239,68,68,0.15); border-radius:50%; font-size:12px; font-weight:700; color:#ef4444; flex-shrink:0;\">!</span>\n Possible Error Codes\n <span class=\"err-toggle-hint\" style=\"margin-left:auto; font-weight:400; opacity:0.45; font-size:0.8em; letter-spacing:0.01em;\">Click to expand</span>\n </summary>\n <div style=\"padding:14px 16px 16px 16px;\">\n <div style=\"border-radius:6px; border:1px solid rgba(148,163,184,0.35);\">\n <table style=\"border-collapse:collapse; width:100%; font-family:inherit; font-size:0.9em;\">\n <thead>\n <tr>\n <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); border-right:1px solid rgba(148,163,184,0.35); font-weight:600; width:45%;\">Error Code</th>\n <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); font-weight:600; width:55%;\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_creation_limit_exceeded</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">The maximum number of datastores allowed for the organisation has been reached.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_name_already_exists</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">A datastore with the same name already exists in the organisation.</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_invalid_creation_data</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">The request body contains invalid or malformed data for datastore creation.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_fields_required</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">At least one field definition must be provided to create a datastore.</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_fields_invalid_value</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">One or more field definitions contain an invalid value.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_fields_limit_exceeded</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">The number of fields exceeds the maximum limit of 19 (plus the default record ID field).</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_fields_duplicate_column</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Two or more fields share the same column name. Field names must be unique within a datastore.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_access_denied</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">The authenticated user does not have permission to create a datastore.</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_unique_key_column_not_found</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">A field referenced in a unique key constraint does not exist in the datastore's field definitions.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_field_name_reserved</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">One or more field names use a reserved keyword that cannot be used as a field name.</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_field_unique_key_not_supported</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">A field of type <code>encrypted-text</code> or <code>large-text</code> was included in a unique key constraint, which is not supported.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_field_mask_not_supported</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Masking was specified for a field type that does not support it. Only <code>limited-text</code> and <code>number</code> fields support masking.</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_invalid</span></td>\n <td style=\"padding:10px 18px;\">The datastore data is invalid or in an unexpected state.</td>\n </tr>\n </tbody>\n </table>\n </div>\n <div style=\"background:rgba(245,158,11,0.08); border:1px solid rgba(245,158,11,0.4); border-left:4px solid #f59e0b; padding:12px 16px; border-radius:0 6px 6px 0; margin-top:14px; overflow:hidden;\">\n <b style=\"color:#d97706; font-size:0.88em; display:block; margin-bottom:6px;\">Error Response Format</b>\n <p style=\"margin:0 0 8px 0; font-size:0.85em; opacity:0.75;\">When an error occurs, the API returns a JSON response in this format:</p>\n <code style=\"display:block; background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3); padding:8px 12px; border-radius:4px; font-size:0.75em; word-break:break-all;\">{\"message\": \"A human-readable description of the error.\", \"code\": \"error_code\"}</code>\n <p style=\"margin:8px 0 0 0; font-size:0.85em; opacity:0.75;\">where <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">code</code> is the error identifier (as listed above) and <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">message</code> is a human-readable explanation of what went wrong.</p>\n </div>\n </div>\n</details>\n"
parameters: []
requestBody:
description: Creates a datastore. Provide `unique_name`, `name`, `description`, and at least one field definition.
content:
application/json:
schema:
$ref: '#/components/schemas/createplatformdatabase_v2'
required: true
responses:
'200':
description: Datastore created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DatastoreResponse'
example:
url: /api/v3/datastores
type: datastore
data:
unique_name: empdir
name: Employee Directory
id: '227828000000132001'
creator:
name: NP NTC
id: '119440882'
status: enabled
fields:
- default_value: ''
masked: false
name: Notes
unique_name: notes
type: large-text
mandatory: false
id: '17202020414617773604009000'
- default_value: '0'
masked: false
name: Employee ID
unique_name: empid
type: number
mandatory: true
id: '17202020414617773604009001'
- default_value: ''
masked: false
name: Employee Name
unique_name: empname
type: limited-text
mandatory: true
id: '17202020414617773604009002'
- default_value: 'true'
masked: false
name: Active Status
unique_name: isactive
type: boolean
mandatory: false
id: '17202020414617773604009003'
type: custom
description: V3 API test datastore
unique_keys:
- - empid
scope: personal
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The request cannot be performed. Usually because of malformed parameter or missing parameter.
'401':
description: Unauthorized.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Request was rejected because of invalid AuthToken.
'403':
description: Forbidden.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The user does not have enough permission or possibly not an user of the respective organization to access the resource.
'404':
description: Invalid URL.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
'406':
description: Not Acceptable.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The response has been received but the requested response type is not supported by the browser.
'429':
description: Too many requests.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Too many requests within a certain time frame.
'500':
description: Internal Server Error.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Cliq server encountered an error which prevents it from fulfilling the request.
security:
- Cliq_Auth:
- Datastores.CREATE
tags:
- Platform_storage
get:
summary: List all datastores
operationId: get_list_of_datastores
description: "Retrieve a paginated list of all datastores defined for the organisation.\n<br><br>\n<p>\n <b>Threshold limit</b>: 30 requests per min per user<br>\n Number of API calls allowed within a minute.<br><br>\n <b>Lock period</b>: 5 minutes<br>Wait time before consecutive API requests.<br>\n</p>\n<details style=\"margin:16px 0 8px 0; border:1px solid rgba(148,163,184,0.5); border-radius:8px; font-family:inherit;\" ontoggle=\"this.querySelector('.err-toggle-hint').textContent=this.open?'Click to collapse':'Click to expand'\">\n <summary style=\"cursor:pointer; padding:11px 16px; font-weight:600; background:rgba(148,163,184,0.1); list-style:none; display:flex; align-items:center; gap:8px; user-select:none; border-radius:8px;\">\n <span style=\"display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; background:rgba(239,68,68,0.15); border-radius:50%; font-size:12px; font-weight:700; color:#ef4444; flex-shrink:0;\">!</span>\n Possible Error Codes\n <span class=\"err-toggle-hint\" style=\"margin-left:auto; font-weight:400; opacity:0.45; font-size:0.8em; letter-spacing:0.01em;\">Click to expand</span>\n </summary>\n <div style=\"padding:14px 16px 16px 16px;\">\n <div style=\"border-radius:6px; border:1px solid rgba(148,163,184,0.35);\">\n <table style=\"border-collapse:collapse; width:100%; font-family:inherit; font-size:0.9em;\">\n <thead>\n <tr>\n <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); border-right:1px solid rgba(148,163,184,0.35); font-weight:600; width:45%;\">Error Code</th>\n <th style=\"padding:10px 18px; text-align:center; background:rgba(148,163,184,0.15); border-bottom:1px solid rgba(148,163,184,0.35); font-weight:600; width:55%;\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">bulk_record_update_failed</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Failed to update one or more records.</td>\n </tr>\n <tr style=\"background:rgba(148,163,184,0.05);\">\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2); border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">invalid_record_criteria</span></td>\n <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Criteria expression is invalid.</td>\n </tr>\n <tr>\n <td style=\"padding:10px 18px; border-right:1px solid rgba(148,163,184,0.25); vertical-align:middle;\"><span style=\"display:inline-block; background:rgba(239,68,68,0.12); color:#ef4444; padding:3px 10px; border-radius:4px; font-family:monospace; font-size:0.82em; line-height:1.6; word-break:break-all;\">datastore_not_found</span></td>\n <td style=\"padding:10px 18px;\">Datastore with the given identifier does not exist.</td>\n </tr>\n </tbody>\n </table>\n </div>\n <div style=\"background:rgba(245,158,11,0.08); border:1px solid rgba(245,158,11,0.4); border-left:4px solid #f59e0b; padding:12px 16px; border-radius:0 6px 6px 0; margin-top:14px; overflow:hidden;\">\n <b style=\"color:#d97706; font-size:0.88em; display:block; margin-bottom:6px;\">Error Response Format</b>\n <p style=\"margin:0 0 8px 0; font-size:0.85em; opacity:0.75;\">When an error occurs, the API returns a JSON response in this format:</p>\n <code style=\"display:block; background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3); padding:8px 12px; border-radius:4px; font-size:0.75em; word-break:break-all;\">{\"message\": \"A human-readable description of the error.\", \"code\": \"error_code\"}</code>\n <p style=\"margin:8px 0 0 0; font-size:0.85em; opacity:0.75;\">where <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">code</code> is the error identifier (as listed above) and <code style=\"background:rgba(245,158,11,0.1); padding:1px 5px; border-radius:3px;\">message</code> is a human-readable explanation of what went wrong.</p>\n </div>\n </div>\n</details>\n"
parameters:
- schema:
description: ''
$ref: '#/components/schemas/base64_regex'
in: query
name: sync_token
description: 'Return datastores modified after the given sync token. The sync token is returned in the response when fetching the list of datastores, and can be used to retrieve only datastores that were created or updated after that request.
'
required: false
- schema:
description: ''
type: integer
in: query
name: limit
description: 'Maximum number of datastores to return in the response. Default is 20, maximum allowed value is 100.
'
required: false
- schema:
description: ''
$ref: '#/components/schemas/base64_regex'
in: query
name: next_token
description: 'Token to retrieve the next page of results. This is returned in the response when the number of datastores exceeds the specified limit. To fetch the next page, include this token in the request.
'
required: false
responses:
'200':
description: List of datastores returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DatastoreResponse'
example:
url: /api/v3/datastores
type: datastore
sync_token: MTB8MTc3NzM2MDM5OTc0OXw=
data:
- unique_name: empdir
name: Employee Directory
id: '227828000000132001'
creator:
name: NP NTC
id: '119440882'
status: enabled
fields:
- default_value: ''
masked: false
name: Notes
unique_name: notes
type: large-text
mandatory: false
id: '17202020414617773604009000'
- default_value: '0'
masked: false
name: Employee ID
unique_name: empid
type: number
mandatory: true
id: '17202020414617773604009001'
- default_value: ''
masked: false
name: Employee Name
unique_name: empname
type: limited-text
mandatory: true
id: '17202020414617773604009002'
- default_value: 'true'
masked: false
name: Active Status
unique_name: isactive
type: boolean
mandatory: false
id: '17202020414617773604009003'
type: custom
description: V3 API test datastore
unique_keys:
- - empid
scope: personal
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The request cannot be performed. Usually because of malformed parameter or missing parameter.
'401':
description: Unauthorized.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Request was rejected because of invalid AuthToken.
'403':
description: Forbidden.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The user does not have enough permission or possibly not an user of the respective organization to access the resource.
'404':
description: Invalid URL.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The URL you've sent is wrong. It's possible that the resource you've requested has been moved to another URL.
'405':
description: Method Not Allowed.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The requested resource does not support the HTTP method used. For example, requesting List of all customers API with PUT as the HTTP method.
'406':
description: Not Acceptable.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The response has been received but the requested response type is not supported by the browser.
'429':
description: Too many requests.
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Too many requests within a certain time frame.
'500':
description: Internal Server Error.
content:
# --- truncated at 32 KB (214 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-cliq/refs/heads/main/openapi/zoho-cliq-platform-storage-api-openapi.yml