Zoho CommunityTopic API

The CommunityTopic API from Zoho — 32 operation(s) for communitytopic.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

zoho-communitytopic-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Helpcenter CommunityTopic API
  version: 1.0.0
tags:
- name: CommunityTopic
paths:
  /api/v1/communityTopics/{topicId}/unmoderate:
    post:
      tags:
      - CommunityTopic
      summary: Unmoderate community topic
      description: This API helps unmoderate a forum topic, which means user comments are published without reviewing.
      operationId: unmoderateCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics:
    get:
      tags:
      - CommunityTopic
      summary: List forum topics
      description: This API lists a particular number of forum topics, based on the limit defined.
      operationId: getAllCommunityTopics
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/tagName'
      - name: isSticky
        in: query
        description: Key that defines whether the topics to list must be sticky posts or not
        required: false
        style: form
        explode: true
        schema:
          type:
          - boolean
          - 'null'
          description: Key that defines whether the topics to list must be sticky posts or not
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/listAllTopics'
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
    post:
      tags:
      - CommunityTopic
      summary: Add community topic
      description: 'This API helps add a forum topic in the user community. '
      operationId: addCommunityTopic
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/communityAddTopicJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/communityMangerTopicJSON'
      security:
      - iam-oauth2-schema:
        - Desk.forums.CREATE
        - Desk.community.CREATE
      x-audience:
      - external-public
    delete:
      tags:
      - CommunityTopic
      summary: Permanently delete trashed community topics
      description: This API permanently deletes forum topics from the trash.
      operationId: deleteTrashedCommunityTopics
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/deleteTopics_moderationTopicIdsJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.DELETE
        - Desk.community.DELETE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/associateTags:
    post:
      tags:
      - CommunityTopic
      summary: Associate tags to community topic
      description: This API associates quick access/reference tags to a forum topic.
      operationId: addTagsToCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/tagsRequest'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/associateTagsResponse'
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/approve:
    post:
      tags:
      - CommunityTopic
      summary: Approve topics
      description: This API helps to approve topics and publish them on the forum.
      operationId: approveTopics
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/moderationTopicIdsJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/markSpam:
    post:
      tags:
      - CommunityTopic
      summary: Report topic as spam
      description: This API marks a forum topic as spam.
      operationId: markATopicAsSpam
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/spamReason'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.basic.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/updateDraft:
    put:
      tags:
      - CommunityTopic
      summary: Update Drafted Topic
      description: This API helps update the draft of a forum topic.
      operationId: updateDraftedCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/communityAddOrUpdateDraftTopicJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/communityAddOrUpdateDraftedTopicResponseJSON'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}:
    get:
      tags:
      - CommunityTopic
      summary: Get topic
      description: This API fetches a forum topic from the user community.
      operationId: getCommunityTopic
      parameters:
      - name: include
        in: query
        description: 'Additional information related to the topics. Values allowed are: @seo@, @featuredImage@ and @participantsCount@.'
        required: false
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: 'Additional information related to the topics. Values allowed are: @seo@, @featuredImage@ and @participantsCount@.'
          items:
            type:
            - string
            - 'null'
            enum:
            - seo
            - featuredImage
            - participantsCount
            maxLength: 100
            minLength: 0
          uniqueItems: true
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/communityMangerTopicJSON'
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
    patch:
      tags:
      - CommunityTopic
      summary: Update community topic
      description: This API helps update a published forum topic.
      operationId: updateCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/communityUpdateTopicJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/communityMangerTopicJSON'
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/deleteDraft:
    delete:
      tags:
      - CommunityTopic
      summary: Delete drafted community topic
      description: This API deletes a topic draft from the user community.
      operationId: deleteDraftedCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.DELETE
        - Desk.community.DELETE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/followers:
    get:
      tags:
      - CommunityTopic
      summary: List all community topic followers
      description: 'This API lists a particular number of users who follow a forum topic, based on the limit defined. '
      operationId: getAllCommunityTopicFollowers
      parameters:
      - name: limit
        in: query
        description: Number of users to list
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Number of users to list
          maximum: 50
          minimum: 1
          pattern: ([0-9]+)
      - name: from
        in: query
        description: Index number, starting from which the users must be listed.
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Index number, starting from which the users must be listed.
          minimum: 0
          pattern: ([0-9]+)
      - $ref: '#/components/parameters/userType'
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/listAllCommunityTopicFollowers'
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/dissociateTags:
    post:
      tags:
      - CommunityTopic
      summary: Dissociate tags from topic
      description: This API removes quick access/reference tags from a forum topic.
      operationId: deleteCommunityTopicTags
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/deleteTagsoFATopic_tagsRequest'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/unmoderate:
    post:
      tags:
      - CommunityTopic
      summary: Unmoderate community topics
      description: This API unmoderate the moderated forum topics.The comments that are posted during moderation will be displayed to all users without under going any review.
      operationId: unmoderateCommunityTopics
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/unmoderateTopics_moderationTopicIdsJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/community/markAllTopicsAsSpam:
    post:
      tags:
      - CommunityTopic
      summary: Report multiple topics as spam
      description: This API marks multiple forum topics as spam.
      operationId: markAllTopicsAsSpam
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/reportBulkTopicsAsSpam'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.basic.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/unlock:
    post:
      tags:
      - CommunityTopic
      summary: Unlock community topic
      description: This API helps unlock a forum topic, so that further user actions can be performed.
      operationId: unlockCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/saveDraft:
    post:
      tags:
      - CommunityTopic
      summary: Draft community topic
      description: This API saves a draft of a forum topic.
      operationId: addCommunityTopicAsDraft
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/addDraft_communityAddOrUpdateDraftTopicJson'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/communityAddOrUpdateDraftedTopicResponseJSON'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.CREATE
        - Desk.community.CREATE
      x-audience:
      - external-public
  /api/v1/communityModeration/topics:
    get:
      tags:
      - CommunityTopic
      summary: List topics pending moderation
      description: This API lists a particular number of forum topics that are pending moderation, based on the limit defined.
      operationId: getCommunityModerationTopics
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/categoryId'
      - $ref: '#/components/parameters/status'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '200':
          $ref: '#/components/responses/listAllModerationTopics'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/participants:
    get:
      tags:
      - CommunityTopic
      summary: List topic participants
      description: This API lists a particular number of users who participated in a forum topic, based on the limit defined.
      operationId: getCommunityTopicParticipants
      parameters:
      - name: limit
        in: query
        description: Number of users to list
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Number of users to list
          maximum: 50
          minimum: 1
          pattern: ([0-9]+)
      - name: from
        in: query
        description: Index number, starting from which the users must be listed
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Index number, starting from which the users must be listed
          minimum: 0
          pattern: ([0-9]+)
      - $ref: '#/components/parameters/userType'
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/listAllCommunityTopicFollowers'
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/unfollow:
    post:
      tags:
      - CommunityTopic
      summary: Unfollow community topic
      description: This API enables users to unfollow a topic.
      operationId: unfollowCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '500':
          $ref: ./Common.json#/components/responses/internalErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/moveToTrash:
    post:
      tags:
      - CommunityTopic
      summary: Trash unmoderated community topics
      description: 'This API trashes forum topics that are yet to be moderated for publishing. '
      operationId: deleteUnmoderatedCommunityTopics
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/trashTopics_moderationTopicIdsJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/count:
    get:
      tags:
      - CommunityTopic
      summary: Get community Topics Views Count
      description: This API fetches the total count of the topics based on the selected view.
      operationId: getCommunityTopicsViewsCount
      parameters:
      - name: viewId
        in: query
        description: ID of a view for which you need to get the count
        required: true
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int64
          description: ID of a view for which you need to get the count
          pattern: ([0-9]+)
      - name: label
        in: query
        description: 'Status label by which topics must be filtered. The value of this key varies according to the topic type. Values allowed are: @NOSTATUS@, @NEEDMOREINFO@, @WORKINGONIT@, @ANSWERED@, @UNANSWERED@, @MAYBELATER@, @UNDERREVIEW@, @IMPLEMENTED@, @WILLNOTIMPLEMENT@, @NOTAPROBLEM@, @TEMPORARYFIX@, @ANALYZING@, @SOLVED@, @UNSOLVED@, and @MOSTVOTED@.'
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: 'Status label by which topics must be filtered. The value of this key varies according to the topic type. Values allowed are: @NOSTATUS@, @NEEDMOREINFO@, @WORKINGONIT@, @ANSWERED@, @UNANSWERED@, @MAYBELATER@, @UNDERREVIEW@, @IMPLEMENTED@, @WILLNOTIMPLEMENT@, @NOTAPROBLEM@, @TEMPORARYFIX@, @ANALYZING@, @SOLVED@, @UNSOLVED@, and @MOSTVOTED@.'
          maxLength: 100
          minLength: 0
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/tagName'
      - $ref: '#/components/parameters/categoryId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '200':
          $ref: '#/components/responses/topicsViewsCountResponse'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/unlike:
    post:
      tags:
      - CommunityTopic
      summary: Unlike topic
      description: This API enables users to unlike a topic.
      operationId: unlikeATopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopicTypes:
    get:
      tags:
      - CommunityTopic
      summary: Get topic types
      description: This API fetches the topic types defined in the user community of your help desk portal.
      operationId: getCommunityTopicTypes
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: '#/components/responses/topicTypeResponseJSON'
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
    patch:
      tags:
      - CommunityTopic
      summary: Update topic type preferences
      description: This API helps set the default topic type and enable/disable other topic types in the user community.
      operationId: updateCommunityTopicTypes
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/topicTypeRequestJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/follow:
    post:
      tags:
      - CommunityTopic
      summary: Follow community topic
      description: This API enables users to follow a topic.
      operationId: followCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/moderate:
    post:
      tags:
      - CommunityTopic
      summary: Moderate community topic
      description: This API allows to set the forum topics as moderate. The comments that are posted during moderation will not be displayed to users and await for the review.
      operationId: moderateCommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/move:
    post:
      tags:
      - CommunityTopic
      summary: Move a community topic
      description: This API moves a forum topic from one community category to another.
      operationId: moveACommunityTopic
      parameters:
      - $ref: '#/components/parameters/topicId'
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/communityCategoryIdJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '204':
          $ref: ./Common.json#/components/responses/emptyResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityTopicByPermalink:
    get:
      tags:
      - CommunityTopic
      summary: Get community topic by permalink
      description: This API fetches a forum topic, based on the permalink in the API request.
      operationId: getCommunityTopicByPermalink
      parameters:
      - name: include
        in: query
        description: 'Additional information related to the topics. Values allowed are: @seo@, @featuredImage@ and @participantsCount@.'
        required: false
        style: simple
        explode: true
        schema:
          type:
          - 'null'
          - array
          description: 'Additional information related to the topics. Values allowed are: @seo@, @featuredImage@ and @participantsCount@.'
          items:
            type:
            - string
            - 'null'
            enum:
            - seo
            - featuredImage
            - participantsCount
            maxLength: 100
            minLength: 0
          uniqueItems: true
      - name: permalink
        in: query
        description: permalink of the topic
        required: true
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: permalink of the topic
          maxLength: 1000
          minLength: 0
          pattern: '[a-z0-9\/%\-\P{InBasicLatin}]+'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '422':
          $ref: ./Common.json#/components/responses/multipleUnprocessEntityResponse
        '404':
          $ref: ./Common.json#/components/responses/urlNotFoundErrorResponse
        '200':
          $ref: '#/components/responses/communityMangerTopicJSON'
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityTopics/restore:
    post:
      tags:
      - CommunityTopic
      summary: Restore trashed topics
      description: 'This API restores topics from trash. '
      operationId: addTrashedCommunityTopics
      parameters:
      - $ref: ./Common.json#/components/parameters/orgId
      requestBody:
        $ref: '#/components/requestBodies/restoreTopics_moderationTopicIdsJSON'
      responses:
        '422':
          $ref: ./Common.json#/components/responses/invalidDataErrorResponse
        '200':
          $ref: ./MassActionResponse.json#/components/responses/massActionListResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.UPDATE
        - Desk.community.UPDATE
      x-audience:
      - external-public
  /api/v1/communityModeratedTopics:
    get:
      tags:
      - CommunityTopic
      summary: List moderated community topics
      description: This API lists a particular number of moderated topics, based on the limit defined.
      operationId: getModeratedCommunityTopics
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/categoryId_requiredFalse'
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/listAllModeratedTopics'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityUsers/{userId}/topics:
    get:
      tags:
      - CommunityTopic
      summary: List community topics by user
      description: This API lists a particular number of topics by a user, based on the limit defined.
      operationId: getCommunityTopicsByUser
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/from'
      - name: startTime
        in: query
        description: Starting time of the time range in which the topics should have been created. The value must be expressed according to the GMT time zone.
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: Starting time of the time range in which the topics should have been created. The value must be expressed according to the GMT time zone.
          maxLength: 100
          minLength: 0
          pattern: (((19|20)\d\d)[-/.]{1}(0?[1-9]|1[012])[-/.]{1}(0?[1-9]|[12][0-9]|3[01])(T)([01]?[0-9]|2[0-3]):[0-5]?[0-9]:[0-5]?[0-9]([/.][\d]{0,3})?(Z))
      - name: endTime
        in: query
        description: Ending time of the time range in which the topics should have been created. The value must be expressed according to the GMT time zone.
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          description: Ending time of the time range in which the topics should have been created. The value must be expressed according to the GMT time zone.
          maxLength: 100
          minLength: 0
          pattern: (((19|20)\d\d)[-/.]{1}(0?[1-9]|1[012])[-/.]{1}(0?[1-9]|[12][0-9]|3[01])(T)([01]?[0-9]|2[0-3]):[0-5]?[0-9]:[0-5]?[0-9]([/.][\d]{0,3})?(Z))
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/categoryId_requiredFalse'
      - name: userId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int64
          pattern: ([0-9]+)
      - $ref: ./Common.json#/components/parameters/orgId
      responses:
        '200':
          $ref: '#/components/responses/listAllUserTopics'
        '403':
          $ref: ./Common.json#/components/responses/forbiddenErrorResponse
      security:
      - iam-oauth2-schema:
        - Desk.forums.READ
        - Desk.community.READ
      x-audience:
      - external-public
  /api/v1/communityTopics/{topicId}/voters:
    get:
      tags:
      - CommunityTopic
      summary: List community topic voters
      description: This API lists a particular number of users who voted in a forum topic, based on the limit defined.
      operationId: getCommuntiyTopicVoters
      parameters:
      - name: limit
        in: query
        description: Number of users to list
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Number of users to list
          maximum: 50
          minimum: 1
          pattern: ([0-9]+)
      - name: from
        in: query
        description: Index number, starting from which the users must be listed
        required: false
        style: form
        explode: true
        schema:
          type:
          - string
          - 'null'
          - integer
          format: int32
          description: Index number, starting from which the users must be listed
          minimum: 0
          patte

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