Confluence Space permissions API

The Space permissions API from Confluence — 5 operation(s) for space permissions.

Operations 5

POST /wiki/rest/api/space/{spaceKey}/permission Add new permission to space #
POST /wiki/rest/api/space/{spaceKey}/permission/custom-content Add new custom content permission to space #
DELETE /wiki/rest/api/space/{spaceKey}/permission/{id} Remove a space permission #
GET /spaces/{id}/permissions Get space permissions assignments #
GET /space-permissions Get available space permissions #

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-space-permissions-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-space-permissions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Confluence Space permissions API
  version: '1.0'
  description: 'Operations tagged Space permissions across 2 of this provider''s published API definitions: confluence-rest-v1-openapi.json, confluence-rest-v2-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: //your-domain.atlassian.net
- 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: Space Permissions
  description: ''
paths:
  /wiki/rest/api/space/{spaceKey}/permission:
    post:
      tags:
      - Space Permissions
      summary: Add new permission to space
      description: 'Adds new permission to space.


        If the permission to be added is a group permission, the group can be identified

        by its group name or group id.


        Note: Apps cannot access this REST resource - including when utilizing user impersonation.


        **Permissions required**:

        ''Admin'' permission for the space.'
      operationId: addPermissionToSpace
      parameters:
      - name: spaceKey
        in: path
        description: The key of the space to be queried for its content.
        required: true
        schema:
          type: string
      requestBody:
        description: The permission to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpacePermissionRequest'
        required: true
      responses:
        '200':
          description: Returned if the requested content is returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpacePermissionV2'
        '400':
          description: 'Used for various errors. Such as:

            - Permission already exists for the given user or group.

            - ''read space'' permission doesn''t exist for the given user or group.

            - No group found with the given groupName or groupId'
          content: {}
        '401':
          description: 'Returned if the authentication credentials are incorrect or missing

            from the request.'
          content: {}
        '403':
          description: Returned if the user isn't authorized.
          content: {}
        '404':
          description: 'Returned if any of the following is true:

            - There is no space with the given key.

            - The calling user does not have permission to view the space.'
          content: {}
      x-codegen-request-body-name: body
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - read:space.permission:confluence
        - write:space.permission:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - read:space.permission:confluence
        - write:space.permission:confluence
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-connect-scope: INACCESSIBLE
    servers:
    - url: //your-domain.atlassian.net
  /wiki/rest/api/space/{spaceKey}/permission/custom-content:
    post:
      tags:
      - Space Permissions
      summary: Add new custom content permission to space
      description: 'Adds new custom content permission to space.


        If the permission to be added is a group permission, the group can be identified

        by its group name or group id.


        Note: Only apps can access this REST resource and only make changes to the respective app permissions.


        **Permissions required**:

        ''Admin'' permission for the space.'
      operationId: addCustomContentPermissions
      parameters:
      - name: spaceKey
        in: path
        description: The key of the space to be queried for its content.
        required: true
        schema:
          type: string
      requestBody:
        description: The permissions to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpacePermissionCustomContent'
        required: true
      responses:
        '200':
          description: Returned if the requested content is returned.
          content: {}
        '400':
          description: 'Used for various errors. Such as:

            - Permission already exists for the given user or group.

            - ''read space'' permission doesn''t exist for the given user or group.

            - No group found with the given groupName or groupId'
          content: {}
        '401':
          description: 'Returned if the authentication credentials are incorrect or missing

            from the request.'
          content: {}
        '403':
          description: Returned if the user isn't authorized.
          content: {}
        '404':
          description: 'Returned if any of the following is true:

            - There is no space with the given key.

            - The calling user does not have permission to view the space.'
          content: {}
      x-codegen-request-body-name: body
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - read:space.permission:confluence
        - write:space.permission:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - read:space.permission:confluence
        - write:space.permission:confluence
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-connect-scope: WRITE
    servers:
    - url: //your-domain.atlassian.net
  /wiki/rest/api/space/{spaceKey}/permission/{id}:
    delete:
      tags:
      - Space Permissions
      summary: Remove a space permission
      description: 'Removes a space permission. Note that removing Read Space permission for a user or group will remove all

        the space permissions for that user or group.


        Note: Apps cannot access this REST resource - including when utilizing user impersonation.


        **Permissions required**:

        ''Admin'' permission for the space.'
      operationId: removePermission
      parameters:
      - name: spaceKey
        in: path
        description: The key of the space to be queried for its content.
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Id of the permission to be deleted.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Permission successfully removed.
          content: {}
        '400':
          description: 'Used for various errors. Such as:

            - All of the admin permissions cannot be removed from a space.'
          content: {}
        '401':
          description: 'Returned if the authentication credentials are incorrect or missing

            from the request.'
          content: {}
        '403':
          description: Returned if the user isn't authorized.
          content: {}
        '404':
          description: 'Returned if any of the following is true:

            - There is no permission with the given id.

            - There is no space with the given key.

            - The calling user does not have permission to view the space.'
          content: {}
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - write:space.permission:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - write:space.permission:confluence
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
      x-atlassian-connect-scope: INACCESSIBLE
    servers:
    - url: //your-domain.atlassian.net
  /spaces/{id}/permissions:
    get:
      tags:
      - Space Permissions
      operationId: getSpacePermissionsAssignments
      summary: Get space permissions assignments
      description: 'Returns space permission assignments for a specific space.


        **Permissions required**:

        Permission to view the space.'
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the space to be returned.
        schema:
          format: int64
          type: integer
      - name: cursor
        in: query
        required: false
        description: Used for pagination, this opaque cursor will be returned in the `next` URL in the `Link` response header. Use the relative URL in the `Link` header to retrieve the `next` set of results.
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of assignments to return. If more results exist, use the `Link` response header to retrieve a relative URL that will return the next set of results.
        schema:
          format: int32
          default: 25
          minimum: 1
          maximum: 250
          type: integer
      responses:
        '200':
          description: Returned if the requested assignments are returned.
          content:
            application/json:
              schema:
                title: MultiEntityResult<SpacePermissionAssignment>
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/SpacePermissionAssignment'
                  _links:
                    $ref: '#/components/schemas/MultiEntityLinks'
        '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 space permission assignments or the space was not found.'
          content: {}
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - read:space:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - read:space:confluence
      x-atlassian-connect-scope: READ
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
    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.
  /space-permissions:
    get:
      tags:
      - Space Permissions
      operationId: getAvailableSpacePermissions
      summary: Get available space permissions
      description: 'Retrieves the available space permissions.


        Available on tenants with Role-Based Access Control.


        **Permissions required**:

        Permission to access the Confluence site.'
      parameters:
      - name: cursor
        in: query
        required: false
        description: Used for pagination, this opaque cursor will be returned in the `next` URL in the `Link` response header. Use the relative URL in the `Link` header to retrieve the `next` set of results.
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of space permissions to return. If more results exist, use the `Link` response header to retrieve a relative URL that will return the next set of results.
        schema:
          format: int32
          default: 25
          minimum: 1
          maximum: 250
          type: integer
      responses:
        '200':
          description: Returned if the requested space permissions are retrieved.
          content:
            application/json:
              schema:
                title: MultiEntityResult<SpacePermission>
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/SpacePermission'
                  _links:
                    $ref: '#/components/schemas/MultiEntityLinks'
        '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

            available space permissions.'
          content: {}
      security:
      - basicAuth: []
      - oAuthDefinitions:
        - read:space.permission:confluence
      x-atlassian-oauth2-scopes:
      - scheme: oAuthDefinitions
        state: Current
        scopes:
        - read:space.permission:confluence
      x-atlassian-connect-scope: READ
      x-atlassian-data-security-policy:
      - app-access-rule-exempt: true
    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.
components:
  schemas:
    SpacePermissionRequest:
      required:
      - subject
      - operation
      type: object
      additionalProperties: true
      properties:
        subject:
          $ref: '#/components/schemas/PermissionSubject'
        operation:
          required:
          - key
          - target
          type: object
          properties:
            key:
              type: string
              enum:
              - administer
              - archive
              - copy
              - create
              - delete
              - export
              - move
              - purge
              - purge_version
              - read
              - restore
              - restrict_content
              - update
              - use
            target:
              type: string
              description: The space or content type that the operation applies to.
              enum:
              - page
              - blogpost
              - comment
              - attachment
              - space
        _links:
          $ref: '#/components/schemas/GenericLinks'
      description: "This object represents the request for the single space permission. Permissions consist of\none operation object with an accompanying subjects object.\n\nThe following combinations of `operation.key` and `operation.target` values are\nvalid for the `operation` object:\n``` bash\n'create': 'page', 'blogpost', 'comment', 'attachment'\n'read': 'space'\n'delete': 'page', 'blogpost', 'comment', 'attachment', 'space'\n'export': 'space'\n'administer': 'space'\n'archive': 'page'\n'restrict_content': 'space'\n```\n\nFor example, to enable Delete Own permission, set the `operation` object to the following:\n```\n\"operation\": {\n    \"key\": \"delete\",\n    \"target\": \"space\"\n}\n```\nTo enable Add/Delete Restrictions permissions, set the `operation` object to the following:\n```\n\"operation\": {\n    \"key\": \"restrict_content\",\n    \"target\": \"space\"\n}\n```"
    SpacePermissionCustomContent:
      required:
      - operations
      - subject
      type: object
      properties:
        subject:
          $ref: '#/components/schemas/PermissionSubject'
        operations:
          type: array
          items:
            required:
            - access
            - key
            - target
            type: object
            properties:
              key:
                type: string
                description: The operation type
                enum:
                - read
                - create
                - delete
              target:
                type: string
                description: The custom content type
              access:
                type: boolean
                description: Grant or restrict access
      description: 'This object represents a list of space permissions for custom content type for an individual user. Permissions consist of

        a subjects object and a list with at least one operation object.'
    SpacePermissionV2:
      required:
      - id
      - subject
      - operation
      type: object
      properties:
        id:
          type: integer
          format: int64
        subject:
          $ref: '#/components/schemas/PermissionSubject'
        operation:
          required:
          - key
          - target
          type: object
          properties:
            key:
              type: string
              enum:
              - administer
              - archive
              - copy
              - create
              - delete
              - export
              - move
              - purge
              - purge_version
              - read
              - restore
              - restrict_content
              - update
              - use
            target:
              type: string
              description: The space or content type that the operation applies to.
              enum:
              - page
              - blogpost
              - comment
              - attachment
              - space
        _links:
          $ref: '#/components/schemas/GenericLinks'
      description: "This object represents a single space permission. Permissions consist of\nat least one operation object with an accompanying subjects object.\n\nThe following combinations of `operation.key` and `operation.target` values are\nvalid for the `operation` object:\n``` bash\n'create': 'page', 'blogpost', 'comment', 'attachment'\n'read': 'space'\n'delete': 'page', 'blogpost', 'comment', 'attachment', 'space'\n'export': 'space'\n'administer': 'space'\n'archive': 'page'\n'restrict_content': 'space'\n```\n\nFor example, to enable Delete Own permission, set the `operation` object to the following:\n```\n\"operation\": {\n    \"key\": \"delete\",\n    \"target\": \"space\"\n}\n```\nTo enable Add/Delete Restrictions permissions, set the `operation` object to the following:\n```\n\"operation\": {\n    \"key\": \"restrict_content\",\n    \"target\": \"space\"\n}\n```"
    GenericLinks:
      type: object
      additionalProperties:
        oneOf:
        - type: object
          additionalProperties: true
        - type: string
    PermissionSubject:
      required:
      - identifier
      - type
      type: object
      properties:
        type:
          type: string
          enum:
          - user
          - group
        identifier:
          type: string
          description: 'for `type=user`, identifier should be user''s accountId or `anonymous` for anonymous users


            for `type=group`, identifier should be the groupId.'
      description: The user or group that the permission applies to.
    SpacePermission:
      type: object
      properties:
        id:
          type: string
          description: The identifier for the space permission.
        displayName:
          type: string
          description: The display name for the space permission.
        description:
          type: string
          description: Describes the space permission’s usage.
        requiredPermissionIds:
          type: array
          items:
            type: string
          description: The permissions required for this permission to be enabled.
    MultiEntityLinks:
      type: object
      properties:
        next:
          type: string
          description: 'Used for pagination. Contains the relative URL for the next set of results, using a cursor query parameter.

            This property will not be present if there is no additional data available.'
        base:
          type: string
          description: Base url of the Confluence site.
    SpacePermissionAssignment:
      type: object
      properties:
        id:
          type: string
          description: ID of the space permission.
        principal:
          type: object
          description: The entity the space permissions corresponds to.
          properties:
            type:
              enum:
              - user
              - group
              - role
              type: string
            id:
              type: string
              description: ID of the entity.
        operation:
          type: object
          description: The operation the space permission corresponds to.
          properties:
            key:
              enum:
              - use
              - create
              - read
              - update
              - delete
              - copy
              - move
              - export
              - purge
              - purge_version
              - administer
              - restore
              - create_space
              - restrict_content
              - archive
              type: string
              description: The type of operation.
            targetType:
              enum:
              - page
              - blogpost
              - comment
              - attachment
              - whiteboard
              - database
              - embed
              - folder
              - space
              - application
              - userProfile
              type: string
              description: The type of entity the operation type targets.
  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:confluence-content.all: Read all content, including content body (expansions permitted). Note, APIs using this scope may also return data allowed by read:confluence-space.summary. However, this scope is not a substitute for read:confluence-space.summary.
            read:confluence-content.permission: Read content permissions.
            read:confluence-content.summary: Read a summary of the content, which is the content without expansions. Note, APIs using this scope may also return data allowed by read:confluence-space.summary. However, this scope is not a substitute for read:confluence-space.summary.
            write:confluence-content: Permits the creation of pages, blogs, comments and questions.
            read:confluence-space.summary: Read a summary of space information without expansions.
            write:confluence-space: Create, update and delete space information.
            write:confluence-file: Upload attachments.
            read:confluence-props: Read content properties.
            write:confluence-props: Write content properties.
            search:confluence: Search Confluence. Note, APIs using this scope may also return data allowed by read:confluence-space.summary and read:confluence-content.summary. However, this scope is not a substitute for read:confluence-space.summary or read:confluence-content.summary.
            manage:confluence-configuration: Manage global settings.
            read:confluence-groups: Read user groups.
            write:confluence-groups: Create, remove and update user groups.
            read:confluence-user: Read users.
            readonly:content.attachment:confluence: Download attachments of a Confluence page or blogpost that you have access to.
            read:content:confluence: View content.
            read:content-details:confluence: View content details.
            write:content:confluence: Create and update content.
            delete:content:confluence: Delete content.
            read:space-details:confluence: View space details.
            read:analytics.content:confluence: View analytics for content.
            read:audit-log:confluence: View audit records.
            write:audit-log:confluence: Create audit records.
            read:configuration:confluence: View Confluence settings.
            write:configuration:confluence: Update Confluence settings.
            read:page:confluence: View pages.
            write:page:confluence: Create and update pages.
            delete:page:confluence: Delete pages.
            read:blogpost:confluence: View blogposts.
            write:blogpost:confluence: Create and update blogposts.
            delete:blogpost:confluence: Delete blogposts.
            read:whiteboard:confluence: View whiteboards.
            write:whiteboard:confluence: Create and update whiteboards.
            delete:whiteboard:confluence: Delete whiteboards.
            read:custom-content:confluence: View custom content.
            write:custom-content:confluence: Create and update custom content.
            delete:custom-content:confluence: Delete custom content.
            read:attachment:confluence: View and download content attachments.
            write:attachment:confluence: Create and update attachments.
            delete:attachment:confluence: Delete attachments.
            read:comment:confluence: View comments.
            write:comment:confluence: Create and update comments.
            delete:comment:confluence: Delete comments.
            read:template:confluence: View content templates.
            write:template:confluence: Create, update and delete content templates.
            read:label:confluence: View labels.
            write:label:confluence: Add and remove labels.
            read:content.permission:confluence: Check content permissions.
            read:content.property:confluence: View content properties.
            write:content.property:confluence: Create, update and delete content properties.
            read:content.restriction:confluence: View content restrictions.
            write:content.restriction:confluence: Update content restrictions.
            read:content.metadata:confluence: View content summaries.
            read:watcher:confluence: View content watchers.
            write:watcher:confluence: Add and remove content watchers.
            read:group:confluence: View groups.
            write:group:confluence: Create and delete groups.
            read:inlinetask:confluence: View tasks.
            write:inlinetask:confluence: Update tasks.
            read:relation:confluence: View entity relationships.
            write:relation:confluence: Create and update entity relationships.
            read:space:confluence: View spaces.
            write:space:confluence: Create and update spaces.
            delete:space:confluence: Delete spaces.
            read:space.permission:confluence: View space permissions.
            write:space.permission:confluence: Update space permissions.
            read:space.property:confluence: View space properties.
            write:space.property:confluence: Create, update and delete space properties.
            read:user.property:confluence: View user properties.
            write:user.property:confluence: Create, update and delete user properties.
            read:space.setting:confluence: View space settings.
            write:space.setting:confluence: Update space settings.
            read:user:confluence: View user details.
            moderate:core-content:confluence: Moderate core contents
            moderate:comment:confluence: Moderate comments
            read:email-address:confluence: View email addresses of all users regardless of the user’s profile visibility settings.
x-refined-from:
- confluence-rest-v1-openapi.json
- confluence-rest-v2-openapi.json