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 Evangelistoverlay
1 of 6 operations are conformant: apis.io called them with no credentials and the responses matched this contract. Checked 2026-11-12. how this works · status file
GET/wiki/rest/api/settings/themeList the installed themes · Get themesconformant#
Ask an LLM
“What themes are installed on my Confluence site?”
“Does the theme list include the default theme?”
Tell an agent
List all installed themes.
Show {limit} themes starting at {start}.
GET/wiki/rest/api/settings/theme/selectedGet the site-wide theme · Get global theme#
Ask an LLM
“Which theme is set globally for the whole site?”
“What look and feel do spaces inherit by default?”
Tell an agent
Show the globally selected theme.
Tell me which theme the site uses by default.
GET/wiki/rest/api/settings/theme/{themeKey}Get a theme by key · Get theme#
Ask an LLM
“What's the name, description and icon of a particular theme?”
“How do I look up a theme's details from its key?”
Tell an agent
Get theme {themeKey}.
Describe the theme with key {themeKey}.
GET/wiki/rest/api/space/{spaceKey}/themeGet the theme set on a space · Get space theme#
Ask an LLM
“Which theme is a space using?”
“Is a space inheriting the global look and feel or has its own theme?”
Tell an agent
Show the theme for space {spaceKey}.
Check whether space {spaceKey} has its own theme.
PUT/wiki/rest/api/space/{spaceKey}/themeApply a theme to a space · Set space theme#
Ask an LLM
“How do I change the theme of a single space?”
“What permission do I need to set a space's theme?”
Tell an agent
Set space {spaceKey} to use theme {themeKey}.
Apply theme {themeKey} to space {spaceKey}.
DELETE/wiki/rest/api/space/{spaceKey}/themeReset a space to the global theme · Reset space theme#
Ask an LLM
“How do I make a space go back to the site's default look and feel?”
“Can I remove a custom theme from a space?”
Tell an agentdestructive · confirm first
Reset the theme of space {spaceKey}.
Make space {spaceKey} inherit the global theme again.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.
openapi: 3.2.0
info:
title: Confluence Cloud REST Themes API
description: This document describes the REST API and resources provided by Confluence.
termsOfService: https://atlassian.com/terms/
version: 1.0.0
servers:
- url: //your-domain.atlassian.net
tags:
- name: Themes
description: ''
paths:
/wiki/rest/api/settings/theme:
get:
tags:
- Themes
summary: Get themes
description: 'Returns all themes, not including the default theme.
**Permissions required**: None'
operationId: getThemes
parameters:
- name: start
in: query
description: The starting index of the returned themes.
schema:
minimum: 0
type: integer
format: int32
default: 0
- name: limit
in: query
description: 'The maximum number of themes to return per page.
Note, this may be restricted by fixed system limits.'
schema:
minimum: 0
type: integer
format: int32
default: 100
responses:
'200':
description: Returned if the requested themes are returned.
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeArray'
security:
- basicAuth: []
- oAuthDefinitions:
- manage:confluence-configuration
x-atlassian-oauth2-scopes:
- scheme: oAuthDefinitions
state: Current
scopes:
- manage:confluence-configuration
- scheme: oAuthDefinitions
state: Beta
scopes:
- read:configuration:confluence
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-connect-scope: READ
/wiki/rest/api/settings/theme/selected:
get:
tags:
- Themes
summary: Get global theme
description: 'Returns the globally assigned theme.
**Permissions required**: None'
operationId: getGlobalTheme
responses:
'200':
description: Returned if the global theme is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
'404':
description: 'Returned if Confluence does not have a global theme assigned, i.e.
the default theme is used.'
content: {}
security:
- basicAuth: []
- oAuthDefinitions:
- manage:confluence-configuration
x-atlassian-oauth2-scopes:
- scheme: oAuthDefinitions
state: Current
scopes:
- manage:confluence-configuration
- scheme: oAuthDefinitions
state: Beta
scopes:
- read:configuration:confluence
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-connect-scope: READ
/wiki/rest/api/settings/theme/{themeKey}:
get:
tags:
- Themes
summary: Get theme
description: 'Returns a theme. This includes information about the theme name,
description, and icon.
**Permissions required**: None'
operationId: getTheme
parameters:
- name: themeKey
in: path
description: The key of the theme to be returned.
required: true
schema:
type: string
responses:
'200':
description: Returned if the requested theme is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
'404':
description: Returned if there is no theme with the given key.
content: {}
security:
- basicAuth: []
- oAuthDefinitions:
- manage:confluence-configuration
x-atlassian-oauth2-scopes:
- scheme: oAuthDefinitions
state: Current
scopes:
- manage:confluence-configuration
- scheme: oAuthDefinitions
state: Beta
scopes:
- read:configuration:confluence
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-connect-scope: READ
/wiki/rest/api/space/{spaceKey}/theme:
get:
tags:
- Themes
summary: Get space theme
description: 'Returns the theme selected for a space, if one is set. If no space
theme is set, this means that the space is inheriting the global look
and feel settings.
**Permissions required**: ‘View’ permission for the space.'
operationId: getSpaceTheme
parameters:
- name: spaceKey
in: path
description: The key of the space to be queried for its theme.
required: true
schema:
type: string
responses:
'200':
description: Returned if the requested theme is returned.
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
'404':
description: 'Returned if any of the following is true:
- There is no space with the given key.
- The space does not have a theme assigned to it.'
content: {}
security:
- basicAuth: []
- oAuthDefinitions:
- read:confluence-space.summary
x-atlassian-oauth2-scopes:
- scheme: oAuthDefinitions
state: Current
scopes:
- read:confluence-space.summary
- scheme: oAuthDefinitions
state: Beta
scopes:
- read:space.setting:confluence
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-connect-scope: READ
put:
tags:
- Themes
summary: Set space theme
description: 'Sets the theme for a space. Note, if you want to reset the space theme to
the default Confluence theme, use the ''Reset space theme'' method instead
of this method.
**Permissions required**:
''Admin'' permission for the space.'
operationId: setSpaceTheme
parameters:
- name: spaceKey
in: path
description: The key of the space to set the theme for.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeUpdate'
required: true
responses:
'200':
description: Returned if the theme was set for the space.
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
'403':
description: Returned if the theme key is invalid.
content: {}
'404':
description: Returned if there is no space with the given key.
content: {}
security:
- basicAuth: []
- oAuthDefinitions:
- write:confluence-space
x-atlassian-oauth2-scopes:
- scheme: oAuthDefinitions
state: Current
scopes:
- write:confluence-space
- scheme: oAuthDefinitions
state: Beta
scopes:
- read:space.setting:confluence
- write:space.setting:confluence
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-codegen-request-body-name: body
x-atlassian-connect-scope: WRITE
delete:
tags:
- Themes
summary: Reset space theme
description: 'Resets the space theme. This means that the space will inherit the
global look and feel settings
**Permissions required**:
''Admin'' permission for the space.'
operationId: resetSpaceTheme
parameters:
- name: spaceKey
in: path
description: The key of the space to reset the theme for.
required: true
schema:
type: string
responses:
'204':
description: Returned if the theme was reset for the space.
content: {}
'404':
description: Returned if there is no space with the given key.
content: {}
security:
- basicAuth: []
- oAuthDefinitions:
- write:confluence-space
x-atlassian-oauth2-scopes:
- scheme: oAuthDefinitions
state: Current
scopes:
- write:confluence-space
- scheme: oAuthDefinitions
state: Beta
scopes:
- write:space.setting:confluence
x-atlassian-data-security-policy:
- app-access-rule-exempt: true
x-atlassian-connect-scope: DELETE
components:
schemas:
GenericLinks:
type: object
additionalProperties:
oneOf:
- type: object
additionalProperties: true
- type: string
ThemeNoLinks:
required:
- themeKey
type: object
properties:
themeKey:
type: string
name:
type: string
description:
type: string
icon:
$ref: '#/components/schemas/Icon'
description: Theme object without links. Used in ThemeArray.
ThemeUpdate:
required:
- themeKey
type: object
properties:
themeKey:
type: string
description: The key of the theme to be set as the space theme.
Theme:
required:
- themeKey
type: object
properties:
themeKey:
type: string
name:
type: string
description:
type: string
icon:
$ref: '#/components/schemas/Icon'
_links:
$ref: '#/components/schemas/GenericLinks'
ThemeArray:
required:
- _links
- limit
- results
- size
- start
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/ThemeNoLinks'
start:
type: integer
format: int32
limit:
type: integer
format: int32
size:
type: integer
format: int32
_links:
$ref: '#/components/schemas/GenericLinks'
Icon:
required:
- height
- isDefault
- path
- width
type:
- object
- 'null'
properties:
path:
type: string
width:
type: integer
format: int32
height:
type: integer
format: int32
isDefault:
type: boolean
description: This object represents an icon. If used as a profilePicture, this may be returned as null, depending on the user's privacy setting.
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.
externalDocs:
description: The online and complete version of the Confluence Cloud REST API docs.
url: https://developer.atlassian.com/cloud/confluence/rest/
x-atlassian-narrative:
documents:
- title: About
anchor: about
body: 'This is the reference for the Confluence Cloud REST API. This API is the primary way to get and
modify data in Confluence Cloud, whether you are developing an app or any other integration.
Use it to interact with Confluence entities, like pages and blog posts, spaces, users, groups,
and more.'
- 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 are building (see [Security overview](https://developer.atlassian.com/cloud/confluence/security-overview/)). 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: Status codes
anchor: status-code
body: "The Confluence REST API uses the [standard HTTP status codes](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).\n\nResponses that return an error status code will also return a response body, similar to the following:\n```json\n{\n \"statusCode\": 404,\n \"data\": {\n \"authorized\": false,\n \"valid\": false,\n \"errors\": [\n {\n \"message\": {\n \"translation\": \"This is an example error message.\",\n \"args\": []\n }\n }\n ],\n \"successful\": false\n },\n \"message\": \"This is an example error message.\"\n}\n```"
- title: Using the REST API
anchor: using
body: '**Expansion:** The Confluence REST API uses resource expansion: some parts of a resource are not returned unless explicitly specified. This simplifies responses and minimizes network traffic.
To expand part of a resource in a request, use the `expand` query parameter and specify the entities to be expanded. If you need to expand nested entities, use the `.` dot notation. For example, the following request will expand information about the requested content''s space and labels:
```
GET /wiki/rest/api/content/{id}?expand=space,metadata.labels
```
For bulk endpoints, when using the expand query parameter to request `body.export_view` and/or `body.styled_view` content representations, the response will be limited to a maximum of 25 results. If you require more than 25 results, use pagination to retrieve additional results.
**Pagination:** The Confluence REST API uses 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.
Use the ''limit'' and ''start'' query parameters to specify pagination:
- `limit` is the number of objects to return per page. This may be restricted by system limits.
- `start` is the index of the first item returned in the page of results. The base index is 0.
For example, the following request will return ten content objects, starting from the fifth object.
```
GET /wiki/rest/api/content?start=4&limit=10
```
**Special headers:**
- `X-Atlassian-Token: no-check` request header must be specified for methods
that are protected from Cross Site Request Forgery (XSRF/CSRF) attacks. This is
stated in the method description, if required. For more information, see this
[KB article](https://confluence.atlassian.com/cloudkb/xsrf-check-failed-when-calling-cloud-apis-826874382.html).'
- title: Capabilities
anchor: capabilities
body: '**Webhooks:** A webhook is a user-defined callback over HTTP. You can use Confluence webhooks to notify your app or web application when certain events occur in Confluence. For example, when a page is created or updated. To learn more, see [Webhooks](https://developer.atlassian.com/cloud/confluence/modules/webhook/).
**Content properties:** Content properties are a key-value storage associated with a piece of Confluence content. If you are building an app, this is one form of persistence that you can use. You can use the Confluence REST API to get, update, and delete content properties. To learn more, see [Content properties in the REST API](https://developer.atlassian.com/cloud/confluence/content-properties/).
**CQL:** The Confluence Query Language (CQL) allows you to perform complex searches for content using an SQL-like syntax in the `search` resource. To learn more, see [Advanced searching using CQL](https://developer.atlassian.com/cloud/confluence/advanced-searching-using-cql/).'
x-provenance:
method: harvested
publisher: Confluence
source: https://dac-static.atlassian.com/cloud/confluence/swagger.v3.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)