Zoho Cliq Stars API

The Stars API from Zoho Cliq — 2 operation(s) for stars.

OpenAPI Specification

zoho-cliq-stars-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Bots Stars 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: Stars
paths:
  /stars:
    post:
      summary: Star a Message or Update Star Type
      operationId: star_a_message
      description: "Stars a message with a specific star type. This enables users to categorize messages for easier retrieval and workflow management. Each message can have only one active star type at a time.\n<br><br>\nIf the message is already starred, this operation updates the existing star type to the newly specified type and hence no separate update call is needed. \nWhen the star type is updated, the response includes <code>star_information.old_star_type</code> indicating the previous star type.\n<br><br>\n<p>\n  <b>OAuth Scope</b>: Messages<br>\n  <b>Threshold limit</b>: 50 requests per min<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 after exceeding the threshold.<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;\">input_invalid</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Missing or invalid input parameters.</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;\">chat_not_found</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">The specified chat does not exist or cannot be accessed.</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;\">operation_failed</span></td>\n            <td style=\"padding:10px 18px;\">The operation could not be completed due to a server-side issue.</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"
      requestBody:
        description: Provide the chat ID, message ID, and the star type to categorize the message. To update an existing star type, send the same fields with the new star type - the API will automatically update it.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StarMessageRequest'
            examples:
              star_a_message:
                summary: Star a message
                value:
                  chat_id: CT_1894736520184930172_847291635
                  message_id: '1746000123456789001'
                  star_type: important
              update_star_type:
                summary: Update star type of an already-starred message
                value:
                  chat_id: CT_1894736520184930172_847291635
                  message_id: '1746000123456789001'
                  star_type: follow_up
      responses:
        '200':
          description: Message starred successfully. If the message was already starred, the star type has been updated and the previous type is returned in `star_information.old_star_type`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StarMessageResponse'
              examples:
                star_a_message:
                  summary: Message starred for the first time
                  value:
                    type: text
                    id: '1746000123456789001'
                    time: '2026-04-30T10:00:00Z'
                    sender:
                      id: '1234567890'
                      name: Alice Johnson
                    content:
                      text: Please review the Q2 report before Friday.
                    is_pinned: false
                    star_information:
                      star_type: important
                      starred_message_time: '2026-04-30T10:15:30Z'
                    chat_information:
                      chat_id: CT_1894736520184930172_847291635
                      chat_type: chat
                      title: Alice Johnson
                      joined: true
                update_star_type:
                  summary: Star type updated - old_star_type shows the previous type
                  value:
                    type: text
                    id: '1746000123456789001'
                    time: '2026-04-30T10:00:00Z'
                    sender:
                      id: '1234567890'
                      name: Alice Johnson
                    content:
                      text: Please review the Q2 report before Friday.
                    is_pinned: false
                    star_information:
                      star_type: follow_up
                      starred_message_time: '2026-04-30T10:15:30Z'
                      old_star_type: important
                    chat_information:
                      chat_id: CT_1894736520184930172_847291635
                      chat_type: chat
                      title: Alice Johnson
                      joined: true
        '400':
          description: Bad Request. Missing or invalid parameters submitted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 1012
                  message:
                    type: string
                    example: input_invalid
              example:
                code: 1012
                message: input_invalid
        '401':
          description: Unauthorized. Request was rejected due to invalid authentication token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Request was rejected because of invalid AuthToken.
        '403':
          description: Forbidden. User does not have sufficient permissions to access this resource.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: The user does not have enough permission or possibly not a user of the respective organization to access the resource.
        '404':
          description: Not Found. The specified message or chat does not exist or user cannot access it.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 11016
                  message:
                    type: string
                    example: chat_not_found
              examples:
                chat_not_found:
                  value:
                    code: 11016
                    message: chat_not_found
                  summary: Chat does not exist or user cannot access it
        '429':
          description: Too Many Requests. Rate limit exceeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Too many requests within a certain time frame.
        '500':
          description: Internal Server Error. Unexpected error during star operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 1011
                  message:
                    type: string
                    example: operation_failed
              example:
                code: 1011
                message: operation_failed
      security:
      - Cliq_Auth:
        - ZohoCliq.Messages.CREATE
      tags:
      - Stars
    get:
      summary: List starred messages
      operationId: list_starred_messages
      description: "Retrieves the authenticated user's starred messages with support for advanced filtering, cursor-based pagination, and incremental synchronization.\n<br><br>\nThis endpoint allows you to filter starred messages by chat, star type, and time range. Use pagination tokens to navigate through large result sets efficiently.\n<br><br>\n<p>\n  <b>OAuth Scope</b>: Messages<br>\n  <b>Threshold limit</b>: 30 requests per min<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 after exceeding the threshold.<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;\">input_invalid</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">Invalid filter inputs were provided.</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;\">chat_access_denied</span></td>\n            <td style=\"padding:10px 18px; border-bottom:1px solid rgba(148,163,184,0.2);\">You are not authorized to access one or more requested chats.</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;\">operation_failed</span></td>\n            <td style=\"padding:10px 18px;\">The operation could not be completed due to a server-side issue.</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:
      - name: chat_id
        in: query
        required: false
        description: 'Filter starred messages to only include those from a specific chat. Provide the chat ID in the format "2000000012345_2000000067890". If omitted, starred messages from all chats will be included.

          '
        schema:
          type: string
          example: '2000000012345_2000000067890'
      - name: star_type
        in: query
        required: false
        description: "Filter starred messages by a specific star type.\n  <br><br>\n  <b>Allowed values:</b><br>\n  <ul>\n    <li><code>important</code>: Mark messages that require special attention or contain critical information.</li>\n    <li><code>to_do</code>: Flag messages representing tasks or action items that need to be completed.</li>\n    <li><code>note</code>: Save messages for future reference or as reminders of important information.</li>\n    <li><code>manager</code>: Highlight messages related to managerial communications or approvals.</li>\n    <li><code>follow_up</code>: Identify messages that require follow-up actions or responses.</li>\n    <li><code>all</code>: Retrieve all starred messages regardless of star type.</li>\n  </ul>\n"
        schema:
          type: string
          enum:
          - important
          - to_do
          - note
          - manager
          - follow_up
          - all
          example: important
      - name: from_time
        in: query
        required: false
        description: '<ul>

          <li>Lower bound timestamp for message time.</li>

          <li>Accepts epoch milliseconds (for example, <code>1704067200000</code>) or <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> datetime strings (for example, <code>2024-01-01T00:00:00Z</code>).</li>

          <li>Only messages starred after this time will be included in the results.</li>

          <li>If omitted, there is no lower time limit on the messages returned.</li>

          </ul>

          '
        schema:
          type: string
          example: '1704067200000'
      - name: to_time
        in: query
        required: false
        description: '<ul>

          <li>Upper bound timestamp for message time.</li>

          <li>Accepts epoch milliseconds (for example, <code>1735689599999</code>) or <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> datetime strings (for example, <code>2024-12-31T23:59:59Z</code>).</li>

          <li>Only messages starred before this time will be included in the results.</li>

          <li>If omitted, there is no upper time limit on the messages returned.</li>

          </ul>

          '
        schema:
          type: string
          example: '1735689599999'
      - name: limit
        in: query
        required: false
        description: 'Maximum number of starred messages to return in the response.<br>

          <b>Maximum limit</b>:50<br>

          <b>Default</b>:50<br>

          If the total number of starred messages exceeds this limit, a pagination token will be included in the response to retrieve the next page of results.

          '
        schema:
          type: integer
          minimum: 1
          maximum: 50
          default: 50
          example: 25
      - name: next_token
        in: query
        required: false
        description: "Opaque pagination token to retrieve the next page of results.\n<ul>\n  <li>This token is provided in the response when there are more results available than can fit in a single response.</li>\n  <li>To retrieve the next page, include this token in the subsequent request without modifying it.</li>\n  <li>The token is base64-encoded.</li>\n  <li>If omitted, the first page of results will be returned.</li>\n</ul>\n"
        schema:
          type: string
          example: ey5MDUzODAwMDAwMDAxMjM0NSIsInRpbWVzdGFtcCI6MTcxNDkyMDQwMDAwMH0=
      - name: sync_token
        in: query
        required: false
        description: "Synchronization token for incremental updates.\n<ul>\n  <li>This token is returned in the response to help clients sync local state.</li>\n  <li>When provided in a request, only starred message changes after that sync point are returned.</li>\n  <li>If omitted, results are returned based on the other filters.</li>\n  <li><b>Format</b>: base64 token.</li>\n  <li><b>Maximum length</b>: 200 characters.</li>\n</ul>\n"
        schema:
          type: string
          maxLength: 200
          example: 911083u18u3811834u
      responses:
        '200':
          description: Starred messages retrieved successfully.
          content:
            application/json:
              examples:
                starred_messages:
                  summary: List of starred messages with next_token
                  value:
                    star_messages:
                    - type: text
                      id: '1746000123456789001'
                      time: '2026-04-30T10:00:00Z'
                      sender:
                        id: '1234567890'
                        name: Alice Johnson
                      content:
                        text: Please review the Q2 report before Friday.
                      is_pinned: false
                      star_information:
                        star_type: important
                        starred_message_time: '2026-04-30T10:15:30Z'
                      chat_information:
                        chat_id: chid_abcdef123456
                        chat_type: chat
                        title: Alice Johnson
                        joined: true
                    - type: file
                      id: '1746000987654321002'
                      time: '2026-04-30T09:40:00Z'
                      sender:
                        id: '9876543210'
                        name: Bob Smith
                      content:
                        file_name: Q2_Report_Final.pdf
                        file_size: 204800
                        file_url: https://cliq.zoho.com/file/download?id=enc_file_id_xyz
                      is_pinned: false
                      star_information:
                        star_type: to_do
                        starred_message_time: '2026-04-30T09:45:00Z'
                      chat_information:
                        chat_id: chid_channel_org_001
                        chat_type: channel
                        title: Engineering Announcements
                        display_name: Engineering Announcements
                        joined: true
                    next_token: eyJsYXN0U3RhcnJlZFRpbWUiOiIxNzQ1OTkwMDAwMDAwIiwibGltaXQiOjJ9
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: star_messages
                  next_token:
                    type: string
                    description: Opaque base64-encoded pagination token for the next page. Omitted if no more pages exist.
                    example: asdhfqjdbnajdndjnadj
                  sync_token:
                    type: string
                    description: Synchronization token for incremental updates.
                    example: 911083u18u3811834u
                  data:
                    type: array
                    description: Array of starred messages in V3 message hash format.
                    items:
                      type: object
                      properties:
                        star_information:
                          type: object
                          properties:
                            star_type:
                              type: string
                              example: important
                            starred_message_time:
                              type: string
                              format: date-time
                              example: '2026-03-25T10:30:00.000Z'
                            file_permission:
                              type: object
                              properties:
                                cross_org_policy:
                                  type: boolean
                                  example: true
                                file_scope:
                                  type: string
                                  example: '60005678901'
                        chat_information:
                          type: object
                          properties:
                            chat_id:
                              type: string
                              example: '2000000012345_2000000067890'
                            chat_type:
                              type: string
                              example: direct
                            title:
                              type: string
                              example: John Doe
                            display_name:
                              type: string
                              example: John Doe
                            joined:
                              type: boolean
                              example: true
                            receiver:
                              type: string
                              example: '2000000012345'
        '400':
          description: Bad Request. Query parameter validation failed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 1012
                  message:
                    type: string
                    example: input_invalid
        '401':
          description: Unauthorized. Request was rejected due to invalid authentication token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Request was rejected because of invalid AuthToken.
        '403':
          description: Forbidden. User is not a participant of the specified chat.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 430002
                  message:
                    type: string
                    example: chat_access_denied
              example:
                code: 430002
                message: chat_access_denied
        '429':
          description: Too Many Requests. Rate limit exceeded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Too many requests within a certain time frame.
        '500':
          description: Internal Server Error. Unexpected error occurred during retrieval.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
          

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