Disqus Public API

REST API for reading and writing Disqus comments, threads, forums, users, categories, and moderation data. Endpoints are served from https://disqus.com/api/3.0/ and authenticated via OAuth 2.0 access tokens combined with an application API key and secret passed as query parameters.

OpenAPI Specification

disqus-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Disqus Public API
  description: >-
    REST API for Disqus comments, threads, forums, users, and categories.
    Read and write operations are authenticated using an API key and secret,
    with OAuth 2.0 access tokens for user-context operations. All endpoints
    are served under https://disqus.com/api/3.0/.
  version: "3.0"
servers:
  - url: https://disqus.com/api/3.0
    description: Disqus API v3.0
security:
  - apiKey: []
  - oauth2: []
tags:
  - name: Forums
  - name: Threads
  - name: Posts
  - name: Users
  - name: Categories
paths:
  /forums/details.json:
    get:
      tags: [Forums]
      summary: Get forum details
      operationId: forumsDetails
      parameters:
        - name: forum
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Forum details
  /forums/create.json:
    post:
      tags: [Forums]
      summary: Create a new forum
      operationId: forumsCreate
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Created
  /forums/update.json:
    post:
      tags: [Forums]
      summary: Update forum details
      operationId: forumsUpdate
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Updated
  /forums/listThreads.json:
    get:
      tags: [Forums]
      summary: List threads within a forum
      operationId: forumsListThreads
      parameters:
        - name: forum
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Threads
  /forums/listPosts.json:
    get:
      tags: [Forums]
      summary: List posts within a forum
      operationId: forumsListPosts
      parameters:
        - name: forum
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Posts
  /forums/listModerators.json:
    get:
      tags: [Forums]
      summary: List moderators on a forum
      operationId: forumsListModerators
      parameters:
        - name: forum
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Moderators
  /forums/addModerator.json:
    post:
      tags: [Forums]
      summary: Add a moderator to a forum
      operationId: forumsAddModerator
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Added
  /forums/removeModerator.json:
    post:
      tags: [Forums]
      summary: Remove a moderator from a forum
      operationId: forumsRemoveModerator
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Removed
  /forums/follow.json:
    post:
      tags: [Forums]
      summary: Follow a forum
      operationId: forumsFollow
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Followed
  /forums/unfollow.json:
    post:
      tags: [Forums]
      summary: Unfollow a forum
      operationId: forumsUnfollow
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Unfollowed
  /threads/details.json:
    get:
      tags: [Threads]
      summary: Get thread details
      operationId: threadsDetails
      parameters:
        - name: thread
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Thread details
  /threads/create.json:
    post:
      tags: [Threads]
      summary: Create a thread
      operationId: threadsCreate
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Created
  /threads/list.json:
    get:
      tags: [Threads]
      summary: List threads
      operationId: threadsList
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Threads
  /threads/listPosts.json:
    get:
      tags: [Threads]
      summary: List posts in a thread
      operationId: threadsListPosts
      parameters:
        - name: thread
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Posts
  /posts/details.json:
    get:
      tags: [Posts]
      summary: Get post details
      operationId: postsDetails
      parameters:
        - name: post
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Post
  /posts/create.json:
    post:
      tags: [Posts]
      summary: Create a post
      operationId: postsCreate
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Created
  /posts/list.json:
    get:
      tags: [Posts]
      summary: List posts
      operationId: postsList
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Posts
  /posts/approve.json:
    post:
      tags: [Posts]
      summary: Approve posts
      operationId: postsApprove
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Approved
  /posts/remove.json:
    post:
      tags: [Posts]
      summary: Remove posts
      operationId: postsRemove
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Removed
  /posts/vote.json:
    post:
      tags: [Posts]
      summary: Vote on a post
      operationId: postsVote
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Vote registered
  /users/details.json:
    get:
      tags: [Users]
      summary: Get user details
      operationId: usersDetails
      parameters:
        - name: user
          in: query
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: User
  /users/follow.json:
    post:
      tags: [Users]
      summary: Follow a user
      operationId: usersFollow
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Followed
  /users/unfollow.json:
    post:
      tags: [Users]
      summary: Unfollow a user
      operationId: usersUnfollow
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Unfollowed
  /categories/list.json:
    get:
      tags: [Categories]
      summary: List categories
      operationId: categoriesList
      parameters:
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Categories
  /categories/details.json:
    get:
      tags: [Categories]
      summary: Get category details
      operationId: categoriesDetails
      parameters:
        - name: category
          in: query
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/ApiKey'
      responses:
        '200':
          description: Category
components:
  parameters:
    ApiKey:
      name: api_key
      in: query
      schema:
        type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: api_key
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://disqus.com/api/oauth/2.0/authorize/
          tokenUrl: https://disqus.com/api/oauth/2.0/access_token/
          scopes:
            read: Read forums, threads, posts
            write: Create posts and threads
            admin: Forum administration