Confluence Folder API

The Folder API from Confluence — 2 operation(s) for folder.

Operations 3

POST /folders Create folder #
GET /folders/{id} Get folder by id #
DELETE /folders/{id} Delete folder #

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/confluence-folder-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

confluence-folder-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Confluence Cloud REST API v2 Folder API
  description: This document describes Confluence's v2 APIs. This is intended to be an iteration on the existing Confluence Cloud REST API with improvements in both endpoint definitions and performance.
  termsOfService: https://developer.atlassian.com/platform/marketplace/atlassian-developer-terms/
  version: 2.0.0
servers:
- url: https://{your-domain}/wiki/api/v2
  variables:
    your-domain:
      default: no-default
      description: Specific domain of the Confluence site being used. Must be provided.
tags:
- name: Folder
  description: ''
paths:
  /folders:
    post:
      tags:
      - Folder
      operationId: createFolder
      summary: Create folder
      description: 'Creates a folder in the space.


        **Permissions required**:

        Permission to view the corresponding space. Permission to create a folder in the space.'
      requestBody:
        $ref: '#/components/requestBodies/FolderCreateRequest'
      responses:
        '200':
          description: Returned if the folder was successfully created in the content tree.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/FolderSingle'
                - type: object
                  properties:
                    _links:
                      type: object
                      properties:
                        base:
                          type: string
                          description: Base url of the Confluence site.
        '400':
          description: Returned if an invalid request is provided.
          content: {}
        '401':
          description: Returned if the authentication credentials are incorrect or missing from the request.
          content: {}
        '404':
          description: 'Returned if:

            - The space does not exist

            - The user does not have permissions to view the space

            - The user does not have the needed permissions to create a folder in the provided space'
        '413':
          description: Returned if the request is too large in size (over 5 MB).
          content: {}
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - write:folder:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - write:folder:confluence
      x-atlassian-connect-scope: WRITE
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: false
  /folders/{id}:
    get:
      tags:
      - Folder
      operationId: getFolderById
      summary: Get folder by id
      description: 'Returns a specific folder.


        **Permissions required**:

        Permission to view the folder and its corresponding space.'
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the folder to be returned.
        schema:
          format: int64
          type: integer
      - name: include-collaborators
        in: query
        description: Includes collaborators on the folder.
        schema:
          type: boolean
          default: false
      - name: include-direct-children
        in: query
        description: Includes direct children of the folder, as defined in the `ChildrenResponse` object.
        schema:
          type: boolean
          default: false
      - name: include-operations
        in: query
        description: 'Includes operations associated with this folder in the response, as defined in the `Operation` object.

          The number of results will be limited to 50 and sorted in the default sort order.

          A `meta` and `_links` property will be present to indicate if more results are available and a link to retrieve the rest of the results.'
        schema:
          type: boolean
          default: false
      - name: include-properties
        in: query
        description: 'Includes content properties associated with this folder in the response.

          The number of results will be limited to 50 and sorted in the default sort order.

          A `meta` and `_links` property will be present to indicate if more results are available and a link to retrieve the rest of the results.'
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Returned if the requested folder is returned.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/FolderSingle'
                - type: object
                  properties:
                    _links:
                      type: object
                      properties:
                        base:
                          type: string
                          description: Base url of the Confluence site.
        '400':
          description: Returned if an invalid request is provided.
          content: {}
        '401':
          description: 'Returned if the authentication credentials are incorrect or missing

            from the request.'
          content: {}
        '404':
          description: 'Returned if the calling user does not have permission to view the

            requested folder or the folder was not found.'
          content: {}
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - read:folder:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - read:folder:confluence
      x-atlassian-connect-scope: READ
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: false
    delete:
      tags:
      - Folder
      operationId: deleteFolder
      summary: Delete folder
      description: 'Delete a folder by id.


        Deleting a folder moves the folder to the trash, where it can be restored later


        **Permissions required**:

        Permission to view the folder and its corresponding space.

        Permission to delete folders in the space.'
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the folder to be deleted.
        schema:
          format: int64
          type: integer
      responses:
        '204':
          description: Returned if the folder was successfully deleted.
          content: {}
        '400':
          description: Returned if an invalid request is provided.
          content: {}
        '401':
          description: 'Returned if the authentication credentials are incorrect or missing

            from the request.'
          content: {}
        '404':
          description: 'Returned if:

            - The provided folder does not exist

            - The user does not have permissions to view the folder

            - The user does not have the needed permissions to delete folder in the space'
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - delete:folder:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - delete:folder:confluence
      x-atlassian-connect-scope: DELETE
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: false
components:
  schemas:
    ContentStatus:
      enum:
      - current
      - draft
      - archived
      - historical
      - trashed
      - deleted
      - any
      type: string
      description: The status of the content.
    ParentContentType:
      type: string
      enum:
      - page
      - whiteboard
      - database
      - embed
      - folder
      description: Content type of the parent, or null if there is no parent.
    FolderLinks:
      type: object
      properties:
        webui:
          type: string
          description: Web UI link of the content.
    FolderSingle:
      type: object
      properties:
        id:
          type: string
          description: ID of the folder.
        type:
          type: string
          description: The content type of the object.
        status:
          $ref: '#/components/schemas/ContentStatus'
        title:
          type: string
          description: Title of the folder.
        parentId:
          type: string
          description: ID of the parent content, or null if there is no parent content.
        parentType:
          $ref: '#/components/schemas/ParentContentType'
        position:
          format: int32
          type:
          - integer
          - 'null'
          description: Position of the folder within the given parent page tree.
        authorId:
          type: string
          description: The account ID of the user who created this folder.
        ownerId:
          type: string
          description: The account ID of the user who owns this folder.
        createdAt:
          type: string
          format: date-time
          description: Date and time when the folder was created. In format "YYYY-MM-DDTHH:mm:ss.sssZ".
        spaceId:
          type: string
          description: ID of the space the folder is in.
        version:
          $ref: '#/components/schemas/Version'
        _links:
          $ref: '#/components/schemas/FolderLinks'
    Version:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
          description: Date and time when the version was created. In format "YYYY-MM-DDTHH:mm:ss.sssZ".
        message:
          type: string
          description: Message associated with the current version.
        number:
          format: int32
          type: integer
          description: The version number.
        minorEdit:
          type: boolean
          description: Describes if this version is a minor version. Email notifications and activity stream updates are not created for minor versions.
        authorId:
          type: string
          description: The account ID of the user who created this version.
  requestBodies:
    FolderCreateRequest:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
            - spaceId
            properties:
              spaceId:
                type: string
                description: ID of the space.
              title:
                type: string
                description: Title of the folder.
              parentId:
                type: string
                description: The parent content ID of the folder.
  securitySchemes:
    basicAuth:
      type: http
      description: You can access this resource via basic auth.
      scheme: basic
    oAuthDefinitions:
      type: oauth2
      description: This API uses OAuth 2 with the authorizationCode grant flow.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.atlassian.com/authorize
          tokenUrl: https://auth.atlassian.com/oauth/token
          scopes:
            read:page:confluence: View pages and blogposts and their properties.
            read:space:confluence: View spaces and their properties.
            read:attachment:confluence: View attachments and their properties.
            read:comment:confluence: View comments and their properties.
            read:custom-content:confluence: View custom content and their properties.
            read:task:confluence: View tasks.
            read:whiteboard:confluence: View whiteboards and their properties.
            read:database:confluence: View databases and their properties.
            read:embed:confluence: View Smart Links in the content tree and their properties.
            read:folder:confluence: View folders and their properties.
            read:hierarchical-content:confluence: View children and descendants in the content tree.
            write:space:confluence: Create and update spaces and their properties.
            write:page:confluence: Create and update pages and blog posts and their properties.
            write:comment:confluence: Create and update comments and their properties.
            write:custom-content:confluence: Create and update custom content and their properties.
            write:whiteboard:confluence: Create and update whiteboards and their properties.
            write:database:confluence: Create and update databases and their properties.
            write:embed:confluence: Create and update Smart Links in the content tree and their properties.
            write:folder:confluence: Create and update folders and their properties.
            write:app-data:confluence: Create, update and delete app properties.
            delete:custom-content:confluence: Delete custom content.
            delete:page:confluence: Delete pages and blog posts.
            delete:comment:confluence: Delete comments.
            delete:whiteboard:confluence: Delete whiteboards.
            delete:database:confluence: Delete databases.
            delete:embed:confluence: Delete Smart Links in the content tree.
            delete:folder:confluence: Delete folders.
externalDocs:
  description: The online and complete version of the Confluence Cloud REST API docs.
  url: https://developer.atlassian.com/cloud/confluence/rest/v2
x-atlassian-narrative:
  documents:
  - title: About
    anchor: about
    body: This is the reference for the Confluence Cloud REST API v2, with definitions and performance intended to be an improvement over v1. You can click on the meatball menu in the upper right to download the spec or Postman collection.
  - title: Authentication and authorization
    anchor: auth
    body: '**Authentication:** If you are building a Cloud app, authentication is implemented via JWT or Oauth 2.0, depending on what you''re building (see [Authentication for apps](https://developer.atlassian.com/cloud/confluence/authentication-for-apps/)). Otherwise, if you are authenticating directly against the REST API, the REST API supports basic auth (see [Basic auth for REST APIs](https://developer.atlassian.com/cloud/confluence/basic-auth-for-rest-apis/)).


      **Authorization:** If you are building a Cloud app, authorization can be implemented by [scopes](https://developer.atlassian.com/cloud/confluence/scopes/) or by [OAuth 2.0 user impersonation](https://developer.atlassian.com/cloud/confluence/oauth-2-jwt-bearer-tokens-for-apps). Otherwise, if you are making calls directly against the REST API, authorization is based on the user used in the authentication process.


      See [Security overview](https://developer.atlassian.com/cloud/confluence/security-overview/) for more details on authentication and authorization.'
  - title: Using the REST API
    anchor: using
    body: "**Pagination:** The Confluence REST API v2 uses cursor-based pagination: a method that returns a response with multiple objects can only return a limited number at one time. This limits the size of responses and conserves server resources.\n\nUse the 'limit' and 'cursor' parameters on endpoints that return multiple objects to work with pagination. First, make a request with your desired limit in the 'limit' parameter, then observe the `Link` header in the response. If there are additional entities to be retrieved, the `next` URL in the `Link` header will allow you to retrieve the next set of results. This relative URL will also be available under the `_links.next` property of paginated responses. \n\nFor example, the following request will return 5 page objects (if there are 5 present in the target site).\n```\nGET /wiki/api/v2/pages?limit=5\n```\n\nIf there are additional pages available, the `Link` header will look like:\n```\n</wiki/api/v2/pages?limit=5&cursor=<cursor token>>; rel=\"next\"\n```\nThe URL within the `Link` header will allow you to access the next 5 pages, while the `rel=\"next\"` denotes that the URL refers to the \"next\" set of pages. Relations for a single URL are separated by semicolons (;) and URLs are separated by commas (,)\nIf there are no related URLs, the `Link` header will not be present in the response and neither will the `next` property for `_links` in the response body."