Zoho Cliq messagecards API

APIs for sending structured interactive message cards (Poll, Modern Inline, and Prompt) inside Zoho Cliq conversations.

OpenAPI Specification

zoho-cliq-messagecards-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Bots messagecards 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: messagecards
  description: APIs for sending structured interactive message cards (Poll, Modern Inline, and Prompt) inside Zoho Cliq conversations.
paths:
  /channels/{CHANNEL_UNIQUE_NAME}/message:
    post:
      summary: Post a message card to a channel
      operationId: postMessageCardToChannel
      description: "Send a structured Message Card to a specific channel. Use this to deliver polls, inline data cards, or approval prompts into a channel conversation. The <code>card</code> object in the request body varies depending on the card type: <code>poll</code>, <code>modern-inline</code>, or <code>prompt</code>.\n<br><br>\n<p>\n  <b>Threshold limit</b>: 20 requests per min per user<br>\n  Number of API calls allowed within a minute.<br><br>\n  <b>Lock period</b>: 10 minutes<br>\n  Wait time before consecutive API requests.\n</p>\n"
      tags:
      - messagecards
      parameters:
      - name: CHANNEL_UNIQUE_NAME
        in: path
        required: true
        description: The unique name of the channel to post the message card into. To learn how to retrieve this, see <a href="/cliq/help/restapi/v3/glossary/#CHANNEL_UNIQUE_NAME">CHANNEL_UNIQUE_NAME</a> in the Glossary page.
        example: CHANNEL_UNIQUE_NAME
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - card
              properties:
                text:
                  type: string
                  description: 'Fallback plain-text label displayed above the card or in notification previews where cards are not rendered.<br>

                    Used in: <b>Poll</b>, <b>Modern Inline</b>, and <b>Prompt</b> cards.

                    '
                card:
                  $ref: '#/components/schemas/CardObject'
                slides:
                  $ref: '#/components/schemas/Slides'
            examples:
              poll_card:
                summary: Poll Card - Sprint priority vote
                value:
                  text: Sprint 42 - Please vote on which feature we prioritize this cycle.
                  card:
                    theme: poll
                    title: Which feature should we prioritize in Sprint 42?
                    options:
                    - text: OAuth 2.0 support for third-party integrations
                    - text: Bulk export for audit logs
                    - text: Dark mode for the web app
                    - text: Push notifications for mobile
              modern_inline_card:
                summary: Modern Inline Card - Support ticket escalation
                value:
                  text: A critical support ticket has been escalated and requires immediate attention.
                  card:
                    theme: modern-inline
                    title: Ticket Escalated - Payment Gateway Timeout
                    buttons:
                    - label: Assign to Me
                      action:
                        type: invoke.function
                        data:
                          name: assign_ticket
                    - label: View Ticket
                      action:
                        type: open.url
                        data:
                          web: https://desk.zoho.com/tickets/TKT-00892
                  slides:
                  - type: table
                    title: Ticket Details
                    data:
                      headers:
                      - Field
                      - Value
                      rows:
                      - Field: Ticket ID
                        Value: '#TKT-00892'
                      - Field: Priority
                        Value: Critical
                      - Field: Reported By
                        Value: olivia.palmer@zylker.com
                      - Field: Affected Module
                        Value: Payment Gateway
                      - Field: Open Since
                        Value: 2026-04-16 09:14 AM
              prompt_card:
                summary: Prompt Card - Deployment approval request
                value:
                  text: Deployment approval required for release v3.6.1 to production.
                  card:
                    theme: prompt
                    title: Approve deployment of v3.6.1 to production? This release includes 4 bug fixes and 1 migration script.
                    buttons:
                    - label: Approve
                      action:
                        type: invoke.function
                        data:
                          name: approve_deployment
                    - label: Reject
                      action:
                        type: invoke.function
                        data:
                          name: reject_deployment
                    - label: View Diff
                      action:
                        type: open.url
                        data:
                          web: https://git.zylker.com/releases/v3.6.1/diff
      responses:
        '200':
          description: Message card posted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                poll_card:
                  summary: Poll Card response
                  value:
                    url: /api/v3/channels/engineering/message
                    type: message
                    data:
                      id: '1701234567890_1234567890'
                      card:
                        theme: poll
                        title: Which feature should we prioritize in Sprint 42?
                        options:
                        - text: OAuth 2.0 support for third-party integrations
                          votes: 0
                        - text: Bulk export for audit logs
                          votes: 0
                        - text: Dark mode for the web app
                          votes: 0
                        - text: Push notifications for mobile
                          votes: 0
                modern_inline_card:
                  summary: Modern Inline Card response
                  value:
                    url: /api/v3/channels/support/message
                    type: message
                    data:
                      id: '1701234567891_1234567891'
                      card:
                        theme: modern-inline
                        title: Ticket Escalated - Payment Gateway Timeout
                      slides:
                      - type: table
                        title: Ticket Details
                        data:
                          headers:
                          - Field
                          - Value
                          rows:
                          - Field: Ticket ID
                            Value: '#TKT-00892'
                          - Field: Priority
                            Value: Critical
                prompt_card:
                  summary: Prompt Card response
                  value:
                    url: /api/v3/channels/devops/message
                    type: message
                    data:
                      id: '1701234567892_1234567892'
                      card:
                        theme: prompt
                        title: Approve deployment of v3.6.1 to production?
        '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.
        '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:
        - ZohoCliq.Channels.CREATE
  /chats/{CHAT_ID}/messages:
    post:
      summary: Post a message card to a chat
      operationId: postMessageCardToChat
      description: "Send a structured Message Card into any chat conversation. Use this to deliver polls, inline data cards, or approval prompts into a direct message, group chat, or channel conversation. The <code>card</code> object in the request body varies depending on the card type: <code>poll</code>, <code>modern-inline</code>, or <code>prompt</code>.\n<br><br>\nRecommended for bot and agentic workflows where the target conversation is resolved dynamically at runtime.\n<br><br>\n<p>\n  <b>Threshold limit</b>: 20 requests per min per user<br>\n  Number of API calls allowed within a minute.<br><br>\n  <b>Lock period</b>: 10 minutes<br>\n  Wait time before consecutive API requests.\n</p>\n"
      tags:
      - messagecards
      parameters:
      - name: CHAT_ID
        in: path
        required: true
        description: Unique identifier of the chat where the message card should be posted. To learn how to retrieve this ID, see <a href="/cliq/help/restapi/v3/glossary/#CHAT_ID">CHAT_ID</a> in the Glossary page.
        example: CHAT_ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - card
              properties:
                text:
                  type: string
                  description: 'Fallback plain-text label displayed above the card or in notification previews where cards are not rendered.<br>

                    Used in: <b>Poll</b>, <b>Modern Inline</b>, and <b>Prompt</b> cards.

                    '
                card:
                  $ref: '#/components/schemas/CardObject'
                slides:
                  $ref: '#/components/schemas/Slides'
            examples:
              poll_card:
                summary: Poll Card - Sprint priority vote
                value:
                  text: Sprint 42 - Please vote on which feature we prioritize this cycle.
                  card:
                    theme: poll
                    title: Which feature should we prioritize in Sprint 42?
                    options:
                    - text: OAuth 2.0 support for third-party integrations
                    - text: Bulk export for audit logs
                    - text: Dark mode for the web app
                    - text: Push notifications for mobile
              modern_inline_card:
                summary: Modern Inline Card - Support ticket escalation
                value:
                  text: A critical support ticket has been escalated and requires immediate attention.
                  card:
                    theme: modern-inline
                    title: Ticket Escalated - Payment Gateway Timeout
                    buttons:
                    - label: Assign to Me
                      action:
                        type: invoke.function
                        data:
                          name: assign_ticket
                    - label: View Ticket
                      action:
                        type: open.url
                        data:
                          web: https://desk.zoho.com/tickets/TKT-00892
                  slides:
                  - type: table
                    title: Ticket Details
                    data:
                      headers:
                      - Field
                      - Value
                      rows:
                      - Field: Ticket ID
                        Value: '#TKT-00892'
                      - Field: Priority
                        Value: Critical
                      - Field: Reported By
                        Value: olivia.palmer@zylker.com
                      - Field: Affected Module
                        Value: Payment Gateway
                      - Field: Open Since
                        Value: 2026-04-16 09:14 AM
              prompt_card:
                summary: Prompt Card - Deployment approval request
                value:
                  text: Deployment approval required for release v3.6.1 to production.
                  card:
                    theme: prompt
                    title: Approve deployment of v3.6.1 to production? This release includes 4 bug fixes and 1 migration script.
                    buttons:
                    - label: Approve
                      action:
                        type: invoke.function
                        data:
                          name: approve_deployment
                    - label: Reject
                      action:
                        type: invoke.function
                        data:
                          name: reject_deployment
                    - label: View Diff
                      action:
                        type: open.url
                        data:
                          web: https://git.zylker.com/releases/v3.6.1/diff
      responses:
        '200':
          description: Message card posted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                poll_card:
                  summary: Poll Card response
                  value:
                    url: /api/v3/chats/CHAT_ID/messages
                    type: message
                    data:
                      id: '1701234567890_1234567890'
                      card:
                        theme: poll
                        title: Which feature should we prioritize in Sprint 42?
                        options:
                        - text: OAuth 2.0 support for third-party integrations
                          votes: 0
                        - text: Bulk export for audit logs
                          votes: 0
                        - text: Dark mode for the web app
                          votes: 0
                        - text: Push notifications for mobile
                          votes: 0
                modern_inline_card:
                  summary: Modern Inline Card response
                  value:
                    url: /api/v3/chats/CHAT_ID/messages
                    type: message
                    data:
                      id: '1701234567891_1234567891'
                      card:
                        theme: modern-inline
                        title: Ticket Escalated - Payment Gateway Timeout
                      slides:
                      - type: table
                        title: Ticket Details
                        data:
                          headers:
                          - Field
                          - Value
                          rows:
                          - Field: Ticket ID
                            Value: '#TKT-00892'
                          - Field: Priority
                            Value: Critical
                prompt_card:
                  summary: Prompt Card response
                  value:
                    url: /api/v3/chats/CHAT_ID/messages
                    type: message
                    data:
                      id: '1701234567892_1234567892'
                      card:
                        theme: prompt
                        title: Approve deployment of v3.6.1 to production?
        '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.
        '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:
        - ZohoCliq.Messages.CREATE
components:
  schemas:
    CardObject:
      type: object
      description: "Defines the interactive card to be rendered inside the message. The <code>theme</code> field\nselects the card type and determines which fields are required. For a quick reference of\nrequired and optional fields per theme, see the <a href=\"#available-themes\"><b>Available Themes</b></a> table in the overview above.\n<br><br>\n<b>Poll card fields</b>\n<ul>\n  <li><b>theme</b> <code>string</code>: Must be <code>poll</code>.</li>\n  <li><b>title</b> <code>string</code>: The poll question displayed at the top of the card. Maximum 200 characters.</li>\n  <li><b>options</b> <code>array</code>: List of voting choices. Minimum 2, maximum 10 items.\n    <ul>\n      <li><b>options[].text</b> <code>string</code>: Display label for the poll option. Maximum 100 characters.</li>\n    </ul>\n  </li>\n</ul>\n<b>Modern Inline card fields</b>\n<ul>\n  <li><b>theme</b> <code>string</code>: Must be <code>modern-inline</code>.</li>\n  <li><b>title</b> <code>string</code>: Card header text displayed at the top of the card. Maximum 200 characters.</li>\n  <li><b>thumbnail</b> <code>string</code>: Optional. Publicly accessible HTTPS URL of a thumbnail image shown in the card header.</li>\n  <li><b>sections</b> <code>array</code>: Optional. One or more labeled field sections displayed in the card body. Each section groups related key-value pairs under an optional heading.\n    <ul>\n      <li><b>sections[].title</b> <code>string</code>: Optional section heading displayed above the fields.</li>\n      <li><b>sections[].fields</b> <code>array</code>: List of key-value field pairs.\n        <ul>\n          <li><b>fields[].title</b> <code>string</code>: Field label (key).</li>\n          <li><b>fields[].value</b> <code>string</code>: Field value.</li>\n        </ul>\n      </li>\n    </ul>\n  </li>\n  <li><b>buttons</b> <code>array</code>: Optional. Action buttons rendered at the bottom of the card. Maximum 5. See <b>Button fields</b> below.</li>\n</ul>\n<b>Prompt card fields</b>\n<ul>\n  <li><b>theme</b> <code>string</code>: Must be <code>prompt</code>.</li>\n  <li><b>title</b> <code>string</code>: The prompt question or alert text presented to the user. Maximum 200 characters.</li>\n  <li><b>buttons</b> <code>array</code>: Action buttons for the user to respond with. Minimum 1, maximum 5. See <b>Button fields</b> below.</li>\n</ul>\n<b>Button fields</b> (applicable to <code>modern-inline</code> and <code>prompt</code> themes)\n<ul>\n  <li><b>buttons[].label</b> <code>string</code>: Text displayed on the button. Maximum 30 characters.</li>\n  <li><b>buttons[].action.type</b> <code>string</code>: Determines how Cliq handles the button click.\n    <ul>\n      <li><code>open.url</code>: Opens a URL in the user's default browser. Requires <code>action.data.web</code> (string).</li>\n      <li><code>invoke.function</code>: Triggers a Cliq Function by name. Requires <code>action.data.name</code> (string).</li>\n      <li><code>system.api</code>: Calls a Cliq internal system API. Requires <code>action.data.api</code> (string).</li>\n      <li><code>invoke.bot</code>: Sends a message to a bot. Requires <code>action.data.bot_name</code> and <code>action.data.message</code>.</li>\n      <li><code>preview.url</code>: Opens a URL inside a Cliq preview panel without leaving the conversation. Requires <code>action.data.web</code> (string).</li>\n    </ul>\n  </li>\n  <li><b>buttons[].action.data</b> <code>object</code>: The payload passed to the action handler. Expected fields depend on <code>action.type</code> as listed above.</li>\n</ul>\n<b>Note:</b> To render supporting structured content such as tables, lists, or labelled records alongside a card,\nuse the top-level <code>slides</code> array in the message payload. <code>slides</code> is independent of the <code>card</code> object\nand can be combined with any card theme. For details on supported slide formats, see\n<a href=\"https://www.zoho.com/cliq/help/restapi/v3/#Message_Content\" target=\"_blank\">Message Content</a>.\n"
      required:
      - theme
      - title
      properties:
        theme:
          type: string
          enum:
          - poll
          - modern-inline
          - prompt
          description: "Card theme identifier. Determines the card type to render.<br>\n<b>Allowed values</b>:<br>\n<ul>\n  <li><code>poll</code>: Renders a poll card with voting options, live vote counts, and percentages.</li>\n  <li><code>modern-inline</code>: Renders a rich inline card with a header, optional field sections, and action buttons.</li>\n  <li><code>prompt</code>: Renders a focused prompt card with a question and quick-reply action buttons.</li>\n</ul>\n"
          example: poll
        title:
          type: string
          maxLength: 200
          description: 'The card header or question text displayed at the top of the card.<br>

            <b>Maximum length</b>: 200 characters.

            '
          example: Where should we have the team lunch?
        options:
          type: array
          minItems: 2
          maxItems: 10
          description: '<i>Applicable for <code>poll</code> theme only.</i><br>

            List of voting options. Each option is rendered as a selectable row with a live vote count and percentage bar.<br>

            <b>Minimum</b>: 2 options. <b>Maximum</b>: 10 options.

            '
          items:
            type: object
            required:
            - text
            properties:
              text:
                type: string
                maxLength: 100
                description: Display label for the poll option. Maximum 100 characters.
                example: Italian
        thumbnail:
          type: string
          description: '<i>Applicable for <code>modern-inline</code> theme only.</i><br>

            URL of an image to display as a thumbnail in the card header. Must be a publicly accessible HTTPS URL.

            '
          example: https://www.zoho.com/cliq/help/restapi/images/poll_icon.png
        sections:
          type: array
          description: '<i>Applicable for <code>modern-inline</code> theme only.</i><br>

            List of field sections. Each section groups related labeled key-value fields under an optional section title.

            '
          items:
            type: object
            properties:
              title:
                type: string
                description: Optional section heading displayed above the fields.
                example: Summary
              fields:
                type: array
                description: List of key-value field pairs displayed in this section.
                items:
                  type: object
                  required:
                  - title
                  - value
                  properties:
                    title:
                      type: string
                      description: Field label (key).
                      example: Account
                    value:
                      type: string
                      description: Field value.
                      example: Zylker Corp
        buttons:
          type: array
          maxItems: 5
          description: '<i>Applicable for <code>modern-inline</code> and <code>prompt</code> themes.</i><br>

            List of action buttons rendered inside the card. Each button executes an action when clicked by the user.<br>

            <b>Maximum</b>: 5 buttons. Minimum 1 required for <code>prompt</code>.

            '
          items:
            $ref: '#/components/schemas/CardButton'
    MessageResponse:
      type: object
      description: Response returned after a message card is successfully posted.
      p

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zoho-cliq/refs/heads/main/openapi/zoho-cliq-messagecards-api-openapi.yml