Clickup Docs API

Docs API

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/v3/workspaces/{workspace_id}/docs Search the Docs in a Workspace · Search for Docs #
Ask an LLM
“How do I find the Docs in my ClickUp Workspace?”
“Can I search for Docs created by a specific person or under a particular parent?”
Tell an agent
Search Docs in Workspace {workspace_id}.
Find Docs in Workspace {workspace_id} created by user {creator}.
POST /api/v3/workspaces/{workspace_id}/docs Create a new Doc · Create a Doc #
Ask an LLM
“How do I create a new Doc in a Workspace?”
“Can I set a Doc's visibility and parent location when I create it?”
Tell an agent
Create a Doc named {name} in Workspace {workspace_id}.
Create a {visibility} Doc called {name} under {parent} in Workspace {workspace_id}.
GET /api/v3/workspaces/{workspace_id}/docs/{doc_id} Get information about a Doc · Fetch a Doc #
Ask an LLM
“What details can I get about a single Doc?”
“Can I look up a Doc by its ID?”
Tell an agent
Get Doc {doc_id} in Workspace {workspace_id}.
Show information about Doc {doc_id} in Workspace {workspace_id}.
GET /api/v3/workspaces/{workspace_id}/docs/{doc_id}/page_listing Get a Doc's page outline · Fetch PageListing for a Doc #
Ask an LLM
“How can I see the structure of pages in a Doc without their content?”
“Can I limit how deep the page listing goes?”
Tell an agent
Get the page listing for Doc {doc_id} in Workspace {workspace_id}.
Show the page tree of Doc {doc_id} in Workspace {workspace_id} to depth {max_page_depth}.
GET /api/v3/workspaces/{workspace_id}/docs/{doc_id}/pages Fetch all pages of a Doc with content · Fetch Pages belonging to a Doc #
Ask an LLM
“How do I pull every page of a Doc along with its content?”
“Can I get a Doc's pages back as markdown?”
Tell an agent
Fetch all pages of Doc {doc_id} in Workspace {workspace_id}.
Get the pages of Doc {doc_id} in Workspace {workspace_id} in {content_format} format.
POST /api/v3/workspaces/{workspace_id}/docs/{doc_id}/pages Add a page to a Doc · Create a Page #
Ask an LLM
“How do I add a new page to an existing Doc?”
“Can I create a sub-page under another page in a Doc?”
Tell an agent
Create page {name} in Doc {doc_id} of Workspace {workspace_id}.
Add a sub-page {name} under page {parent_page_id} in Doc {doc_id}, Workspace {workspace_id}, with content {content}.
GET /api/v3/workspaces/{workspace_id}/docs/{doc_id}/pages/{page_id} Get a single page from a Doc · Get page #
Ask an LLM
“How do I read one specific page of a Doc?”
“Will a Doc page look exactly the same when exported as markdown?”
Tell an agent
Get page {page_id} of Doc {doc_id} in Workspace {workspace_id}.
Read page {page_id} in Doc {doc_id} of Workspace {workspace_id} as {content_format}.
PUT /api/v3/workspaces/{workspace_id}/docs/{doc_id}/pages/{page_id} Edit a page in a Doc · Edit a Page #
Ask an LLM
“Can I append to a Doc page instead of replacing its content?”
“How do I rename a page inside a Doc?”
Tell an agent
Rename page {page_id} in Doc {doc_id}, Workspace {workspace_id}, to {name}.
Update page {page_id} of Doc {doc_id} in Workspace {workspace_id} with {content} using edit mode {content_edit_mode}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clickup-docs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clickup-docs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ClickUp Public API v3 Docs API
  version: version
  description: This API is exposed to the public internet and is meant to be accessed by third-party integrations.
servers:
- url: https://api.clickup.com/
  description: ClickUp
security:
- authHeader: []
tags:
- description: Docs API
  name: Docs
paths:
  /api/v3/workspaces/{workspace_id}/docs:
    get:
      operationId: searchDocsPublic
      summary: Search for Docs
      description: View the Docs in your Workspace. You can only view information of Docs you can access.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsSearchDocsPublicWorkspaceIdPath'
      - name: id
        in: query
        description: Filter results to Docs created by the user with the given Doc ID.
        required: false
        schema:
          type: string
      - name: creator
        in: query
        description: Filter results to Docs created by the user with the given user ID.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsSearchDocsPublicCreatorQuery'
      - name: deleted
        in: query
        description: Filter results to return deleted Docs.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsSearchDocsPublicDeletedQuery'
      - name: archived
        in: query
        description: Filter results to return archived Docs.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsSearchDocsPublicArchivedQuery'
      - name: parent_id
        in: query
        description: Filter results to children of a parent Doc with the given parent Doc ID.
        required: false
        schema:
          type: string
      - name: parent_type
        in: query
        description: Filter results to children of the given parent Doc type. For example, `SPACE`, `FOLDER`, `LIST`, `EVERYTHING`, `WORKSPACE`.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsSearchDocsPublicParentTypeQuery'
      - name: limit
        in: query
        description: The maximum number of results to fetch for this page.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsSearchDocsPublicLimitQuery'
      - name: cursor
        in: query
        description: The cursor to use to fetch the next page of results.
        required: false
        schema:
          type: string
      - name: next_cursor
        in: query
        description: The cursor to use to fetch the next page of results. [deprecated]
        required: false
        schema:
          type: string
        deprecated: true
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsDocsSearchResultDto'
      tags:
      - Docs
      x-is-workspace-endpoint: true
    post:
      operationId: createDocPublic
      summary: Create a Doc
      description: Create a new Doc.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsCreateDocPublicWorkspaceIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicDocsCreateDocOptionsDto'
      responses:
        '201':
          description: Doc created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsDocDto'
      tags:
      - Docs
      x-is-workspace-endpoint: true
  /api/v3/workspaces/{workspace_id}/docs/{doc_id}:
    get:
      operationId: getDocPublic
      summary: Fetch a Doc
      description: View information about a Doc.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsGetDocPublicWorkspaceIdPath'
      - name: doc_id
        in: path
        description: The ID of the doc.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Doc found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsDocDto'
        '404':
          description: Doc not found
          content:
            application/json: {}
      tags:
      - Docs
      x-is-workspace-endpoint: true
  /api/v3/workspaces/{workspace_id}/docs/{doc_id}/page_listing:
    get:
      operationId: getDocPageListingPublic
      summary: Fetch PageListing for a Doc
      description: View the PageListing for a Doc.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsGetDocPageListingPublicWorkspaceIdPath'
      - name: doc_id
        in: path
        description: The ID of the doc.
        required: true
        schema:
          type: string
      - name: max_page_depth
        in: query
        description: The maximum depth to retrieve pages and subpages. Use `-1` to return pages and subpages with no depth limit.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsGetDocPageListingPublicMaxPageDepthQuery'
      responses:
        '200':
          description: PageListing found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsGetDocPageListingPublic200Response'
        '404':
          description: PageListing not found
          content:
            application/json: {}
      tags:
      - Docs
      x-is-workspace-endpoint: true
  /api/v3/workspaces/{workspace_id}/docs/{doc_id}/pages:
    get:
      operationId: getDocPagesPublic
      summary: Fetch Pages belonging to a Doc
      description: View the pages belonging to a Doc.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsGetDocPagesPublicWorkspaceIdPath'
      - name: doc_id
        in: path
        description: The ID of the doc.
        required: true
        schema:
          type: string
      - name: max_page_depth
        in: query
        description: The maximum depth to retrieve pages and subpages. Use `-1` to return pages and subpages with no depth limit.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsGetDocPagesPublicMaxPageDepthQuery'
      - name: content_format
        in: query
        description: The format to return the page content in. For example, `text/md` for markdown or `text/plain` for plain text.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsGetDocPagesPublicContentFormatQuery'
      responses:
        '200':
          description: Pages found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsGetDocPagesPublic200Response'
      tags:
      - Docs
      x-is-workspace-endpoint: true
    post:
      operationId: createPagePublic
      summary: Create a Page
      description: Create a page in a Doc.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsCreatePagePublicWorkspaceIdPath'
      - name: doc_id
        in: path
        description: The ID of the doc.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicDocsPublicCreatePageOptionsDto'
      responses:
        '201':
          description: Page created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsPageV3Dto'
      tags:
      - Docs
      x-is-workspace-endpoint: true
  /api/v3/workspaces/{workspace_id}/docs/{doc_id}/pages/{page_id}:
    get:
      operationId: getPagePublic
      summary: Get page
      description: View the information about a page in a Doc. Due to markdown format limitations, some content elements will not be displayed exactly as they appear in ClickUp.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsGetPagePublicWorkspaceIdPath'
      - name: doc_id
        in: path
        description: The ID of the doc.
        required: true
        schema:
          type: string
      - name: page_id
        in: path
        description: The ID of the page
        required: true
        schema:
          type: string
      - name: content_format
        in: query
        description: The format to return the page content in. For example, `text/md` for markdown or `text/plain` for plain text.
        required: false
        schema:
          $ref: '#/components/schemas/PublicDocsGetPagePublicContentFormatQuery'
      responses:
        '200':
          description: Page found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicDocsPageV3Dto'
        '404':
          description: Page not found
          content:
            application/json: {}
      tags:
      - Docs
      x-is-workspace-endpoint: true
    put:
      operationId: editPagePublic
      summary: Edit a Page
      description: Edit a page in a Doc.
      parameters:
      - name: workspace_id
        in: path
        description: The ID of the Workspace.
        required: true
        schema:
          $ref: '#/components/schemas/PublicDocsEditPagePublicWorkspaceIdPath'
      - name: doc_id
        in: path
        description: The ID of the doc.
        required: true
        schema:
          type: string
      - name: page_id
        in: path
        description: The ID of the page
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicDocsPublicEditPageOptionsDto'
      responses:
        '200':
          description: Page updated
          content:
            application/json: {}
      tags:
      - Docs
      x-is-workspace-endpoint: true
components:
  schemas:
    PublicDocsGetDocPagesPublicContentFormatQuery:
      type: string
      default: text/md
      enum:
      - text/md
      - text/plain
    PublicDocsCreatePagePublicWorkspaceIdPath:
      type: number
    PublicDocsSearchDocsPublicArchivedQuery:
      type: boolean
      default: false
    PublicDocsSearchDocsPublicLimitQuery:
      type: number
      default: 50
      maximum: 100
      minimum: 10
    PublicDocsParentDto:
      type: object
      properties:
        id:
          type: string
        type:
          description: The parent Doc type. Use `4` for Space, `5` for Folder, `6` for List, `7` for Everything, and `12` for Workspace.
          type: number
      required:
      - id
      - type
    PublicDocsPublicEditPageOptionsDto:
      type: object
      properties:
        name:
          description: The updated name of the page.
          type: string
          default: ''
        sub_title:
          description: The updateds ubtitle of the page.
          type: string
        content:
          default: ''
          description: The updated content of the page.
          type: string
        content_edit_mode:
          description: The strategy for updating content on the page. For example, `replace`, `append`, or `prepend`.
          type: string
          default: replace
          enum:
          - replace
          - append
          - prepend
        content_format:
          description: The format the page content is in. For example, `text/md` for markdown or `text/plain` for plain text.
          type: string
          default: text/md
          enum:
          - text/md
          - text/plain
    PublicDocsCreateDocPublicWorkspaceIdPath:
      type: number
    PublicDocsAvatarDto:
      type: object
      properties:
        color:
          type: string
        value:
          type: string
        source:
          type: string
    PublicDocsGetPagePublicWorkspaceIdPath:
      type: number
    PublicDocsGetDocPagesPublicWorkspaceIdPath:
      type: number
    PublicDocsSearchDocsPublicParentTypeQuery:
      type: string
      enum:
      - '4'
      - '5'
      - '6'
      - '7'
      - '12'
      - SPACE
      - FOLDER
      - LIST
      - EVERYTHING
      - WORKSPACE
    PublicDocsSearchDocsPublicDeletedQuery:
      type: boolean
      default: false
    PublicDocsDocCoreDto:
      type: object
      properties:
        id:
          type: string
        date_created:
          type: number
        date_updated:
          type: number
        name:
          type: string
        type:
          type: number
          enum:
          - 1
          - 2
        parent:
          $ref: '#/components/schemas/PublicDocsParentDto'
        public:
          type: boolean
        workspace_id:
          type: number
        creator:
          type: number
        deleted:
          type: boolean
        date_deleted:
          type: number
        deleted_by:
          type: number
        archived:
          type: boolean
        archived_by:
          type: number
        date_archived:
          type: number
      required:
      - id
      - date_created
      - name
      - type
      - parent
      - public
      - workspace_id
      - creator
      - deleted
      - archived
    PublicDocsPresentationDetailsDto:
      type: object
      properties:
        font:
          type: string
        font_size:
          type: number
        line_height:
          type: number
        page_width:
          type: number
        paragraph_spacing:
          type: number
        show_author_header:
          type: boolean
        show_contributor_header:
          type: boolean
        show_cover_header:
          type: boolean
        show_date_header:
          type: boolean
        show_page_outline:
          type: boolean
        show_sub_pages:
          type: boolean
        sub_page_size:
          type: string
        show_sub_title_header:
          type: boolean
        show_title_icon_header:
          type: boolean
        show_relationships:
          type: boolean
        show_relationships_compact:
          type: boolean
        show_sub_pages_author:
          type: boolean
        show_sub_pages_thumbnail:
          type: boolean
        show_sub_pages_compact:
          type: boolean
        sub_pages_style:
          type: string
    PublicDocsSearchDocsPublicWorkspaceIdPath:
      type: number
    PublicDocsPageCoverDto:
      type: object
      properties:
        color:
          type: string
        image_url:
          type: string
        position:
          $ref: '#/components/schemas/PublicDocsPositionDto'
    PublicDocsGetDocPageListingPublic200Response:
      type: array
      items:
        $ref: '#/components/schemas/PublicDocsPageV3ReferenceDto'
    PublicDocsGetPagePublicContentFormatQuery:
      type: string
      default: text/md
      enum:
      - text/md
      - text/plain
    PublicDocsEditPagePublicWorkspaceIdPath:
      type: number
    PublicDocsCreateDocOptionsDto:
      type: object
      properties:
        name:
          description: The name of the new Doc.
          type: string
          default: ''
        parent:
          description: The parent of the new Doc.
          default: null
          allOf:
          - $ref: '#/components/schemas/PublicDocsParentDto'
        visibility:
          description: The visibility of the new Doc. For example, `PUBLIC` or `PRIVATE`.
          oneOf:
          - description: The visibility of the new Doc
            enum:
            - PUBLIC
            - PRIVATE
            - PERSONAL
            - HIDDEN
            type: string
          - description: The visibility of the new Doc
            enum:
            - 1
            - 2
            - 3
            - 4
            type: number
        create_page:
          description: Create a new page when creating the Doc.
          type: boolean
          default: true
    PublicDocsPageV3ReferenceDto:
      type: object
      properties:
        id:
          type: string
        doc_id:
          type: string
        parent_page_id:
          type: string
        workspace_id:
          type: number
        name:
          type: string
        pages:
          type: array
          items:
            $ref: '#/components/schemas/PublicDocsPageV3ReferenceDto'
      example:
      - id: 8cht190-271
        doc_id: 8cht190-831
        workspace_id: 9011234080
        name: Fantastic Marketing doc
      - id: 8cht190-311
        doc_id: 8cht190-831
        workspace_id: 9011234080
        name: Another doc
        pages:
        - id: 8cht190-331
          doc_id: 8cht190-831
          parent_page_id: 8cht190-311
          workspace_id: 9011234080
          name: sub page
          pages:
          - id: 8cht190-351
            doc_id: 8cht190-831
            parent_page_id: 8cht190-331
            workspace_id: 9011234080
            name: 2nd sub page
      required:
      - id
      - doc_id
      - workspace_id
      - name
    PublicDocsSearchDocsPublicCreatorQuery:
      type: number
    PublicDocsPublicCreatePageOptionsDto:
      type: object
      properties:
        parent_page_id:
          description: The ID of the parent page. If this is a root page in the Doc, `parent_page_id` will not be returned.
          type: string
        name:
          description: The name of the new page.
          type: string
          default: ''
        sub_title:
          description: The subtitle of the new page.
          type: string
        content:
          default: ''
          description: The content of the new page.
          type: string
        content_format:
          description: The format the page content is in. For example, `text/md` for markdown or `text/plain` for plain text.
          type: string
          default: text/md
          enum:
          - text/md
          - text/plain
    PublicDocsDocDto:
      type: object
      properties:
        id:
          type: string
        date_created:
          type: number
        date_updated:
          type: number
        name:
          type: string
        type:
          type: number
          enum:
          - 1
          - 2
        parent:
          $ref: '#/components/schemas/PublicDocsParentDto'
        public:
          type: boolean
        workspace_id:
          type: number
        archived:
          type: boolean
        archived_by:
          type: number
        creator:
          type: number
        date_archived:
          type: number
        date_deleted:
          type: number
        deleted:
          type: boolean
        deleted_by:
          type: number
        page_defaults:
          $ref: '#/components/schemas/PublicDocsPresentationDetailsDto'
      required:
      - id
      - date_created
      - name
      - type
      - parent
      - public
      - workspace_id
      - creator
    PublicDocsGetDocPagesPublic200Response:
      type: array
      items:
        $ref: '#/components/schemas/PublicDocsPageV3Dto'
    PublicDocsGetDocPagesPublicMaxPageDepthQuery:
      type: number
      default: -1
    PublicDocsPositionDto:
      type: object
      properties:
        x:
          type: number
        y:
          type: number
      required:
      - x
      - y
    PublicDocsDocsSearchResultDto:
      type: object
      properties:
        docs:
          type: array
          items:
            $ref: '#/components/schemas/PublicDocsDocCoreDto'
        next_cursor:
          type: string
      required:
      - docs
    PublicDocsGetDocPageListingPublicMaxPageDepthQuery:
      type: number
      default: -1
    PublicDocsPageV3Dto:
      type: object
      properties:
        id:
          type: string
        doc_id:
          type: string
        parent_page_id:
          type: string
        workspace_id:
          type: number
        name:
          type: string
        pages:
          type: array
          items:
            $ref: '#/components/schemas/PublicDocsPageV3Dto'
        sub_title:
          type: string
        date_created:
          type: number
        date_updated:
          type: number
        content:
          type: string
        avatar:
          $ref: '#/components/schemas/PublicDocsAvatarDto'
        creator_id:
          type: number
        deleted:
          type: boolean
        deleted_by:
          type: number
        date_deleted:
          type: number
        date_edited:
          type: number
        edited_by:
          type: number
        archived:
          type: boolean
        archived_by:
          type: number
        date_archived:
          type: number
        authors:
          type: array
          items:
            type: number
        contributors:
          type: array
          items:
            type: number
        cover:
          $ref: '#/components/schemas/PublicDocsPageCoverDto'
        protected:
          type: boolean
        protected_by:
          type: number
        protected_note:
          type: string
        presentation_details:
          $ref: '#/components/schemas/PublicDocsPresentationDetailsDto'
      required:
      - id
      - doc_id
      - workspace_id
      - name
      - date_created
      - content
      - creator_id
      - authors
    PublicDocsGetDocPageListingPublicWorkspaceIdPath:
      type: number
    PublicDocsGetDocPublicWorkspaceIdPath:
      type: number
  securitySchemes:
    authHeader:
      in: header
      type: apiKey
      name: Authorization