openapi: 3.2.0 info: title: Confluence Cloud REST Content body 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: Content Body description: '' paths: /wiki/rest/api/contentbody/convert/async/{to}: post: tags: - Content Body summary: Asynchronously convert content body description: 'Converts a content body from one format to another format asynchronously. Returns the asyncId for the asynchronous task. Supported conversions: - atlas_doc_format: editor, export_view, storage, styled_view, view - storage: atlas_doc_format, editor, export_view, styled_view, view - editor: storage No other conversions are supported at the moment. Once a conversion is completed, it will be available for 5 minutes at the result endpoint. **Permissions required**: If request specifies ''contentIdContext'', ''View'' permission for the space, and permission to view the content.' operationId: asyncConvertContentBodyRequest parameters: - name: to in: path description: The name of the target format for the content body. required: true schema: type: string enum: - export_view - $ref: '#/components/parameters/bodyConversionExpand' - name: spaceKeyContext in: query description: 'The space key used for resolving embedded content (page includes, files, and links) in the content body. For example, if the source content contains the link `` and the `spaceKeyContext=TEST` parameter is provided, then the link will be converted to a link to the "Example page" page in the "TEST" space.' schema: type: string - name: contentIdContext in: query description: 'The content ID used to find the space for resolving embedded content (page includes, files, and links) in the content body. For example, if the source content contains the link `` and the `contentIdContext=123` parameter is provided, then the link will be converted to a link to the "Example page" page in the same space that has the content with ID=123. Note, `spaceKeyContext` will be ignored if this parameter is provided.' schema: type: string - name: allowCache in: query description: "Controls whether conversion results are cached and reused for identical requests.\n\n- `false`: Each request creates a new conversion task, even if an identical request was made previously.\n- `true`: Enables caching behavior for identical requests from the same user.\n - If no cached result exists, a new conversion task is created\n - If a cached result exists, the existing task is marked as RERUNNING and will complete with status COMPLETED\n - Returns the same task ID for identical requests, allowing you to retrieve the cached result" schema: type: boolean default: false - name: embeddedContentRender in: query description: 'Mode used for rendering embedded content, like attachments. - `current` renders the embedded content using the latest version. - `version-at-save` renders the embedded content using the version at the time of save.' schema: type: string default: current enum: - current - version-at-save requestBody: description: The content body to convert. content: application/json: schema: $ref: '#/components/schemas/ContentBodyCreate' required: true responses: '200': description: Returned if the content is added to the messaging queue for conversion. This id will be available for 5 minutes after the conversion is complete. content: application/json: schema: $ref: '#/components/schemas/AsyncId' '400': description: 'Returned - if the content body or conversion context is invalid or null - if the value is improperly formed - any conversion type other than export_view' content: {} '404': description: Returned if content cannot be found with the provided context. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.all x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.all - scheme: oAuthDefinitions state: Beta scopes: - read:content.metadata:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: true x-codegen-request-body-name: body x-atlassian-connect-scope: READ /wiki/rest/api/contentbody/convert/async/{id}: get: tags: - Content Body summary: Get asynchronously converted content body from the id or the current status of… description: 'Returns the content body for the corresponding `asyncId` of a completed conversion task. If the task is not completed, the task status is returned instead. Once a conversion task is completed, the result can be obtained for up to 5 minutes, or until an identical conversion request is made again with the `allowCache` parameter set to false. **Permissions required**: If request specifies ''contentIdContext'', ''View'' permission for the space, and permission to view the content.' operationId: asyncConvertContentBodyResponse parameters: - name: id in: path description: The asyncId of the macro task to get the converted body. required: true schema: type: string responses: '200': description: Returned if successfully found an async conversion task associated with the id. content: application/json: schema: $ref: '#/components/schemas/AsyncContentBody' '400': description: Returned if the async id is invalid. content: {} '401': description: Returned if the request was not made by an anonymous user and user is not authenticated. content: {} '403': description: Returned if the requesting user is not the user who made the conversion request. content: {} '404': description: Returned if async macro conversion task cannot be found with the provided id. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.all x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.all - scheme: oAuthDefinitions state: Beta scopes: - read:content.metadata:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: true x-codegen-request-body-name: body x-atlassian-connect-scope: INACCESSIBLE /wiki/rest/api/contentbody/convert/async/bulk/tasks: post: tags: - Content Body summary: Create asynchronous content body conversion tasks in bulk description: 'Asynchronously converts content bodies from one format to another format in bulk. Use the Content body REST API to get the status of conversion tasks. Note that there is a maximum limit of 10 conversions per request to this endpoint. Supported conversions: - storage: editor, export_view, styled_view, view - editor: storage Once a conversion task is completed, it is available for polling for up to 5 minutes. **Permissions required**: ''View'' permission for the space, and permission to view the content if the `spaceKeyContext` or `contentIdContext` are present.' operationId: bulkAsyncConvertContentBodyRequest requestBody: description: An array of parameters to create content body conversion tasks. content: application/json: schema: $ref: '#/components/schemas/BulkContentBodyConversionInput' required: true responses: '200': description: Returned if asynchronous tasks are created to convert content bodies. If a conversion task fails to be created, a “FAILED_TO_QUEUE” string will be returned instead of an asyncId. content: application/json: schema: $ref: '#/components/schemas/AsyncIdArray' '400': description: Returned if there are more than 10 conversions requested. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.all x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.all - scheme: oAuthDefinitions state: Beta scopes: - read:content.metadata:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: true x-codegen-request-body-name: body x-atlassian-connect-scope: READ get: tags: - Content Body summary: Get asynchronous content body conversion task result in bulk description: 'Returns the content body for the corresponding `asyncId` of a completed conversion task. If the task is not completed, the task status is returned instead. Once a conversion task is completed, the result can be obtained for up to 5 minutes, or until an identical conversion request is made again with the `allowCache` parameter set to false. Note that there is a maximum limit of 50 task results per request to this endpoint. **Permissions required**: Permission to access the Confluence site (''Can use'' global permission).' operationId: bulkAsyncConvertContentBodyResponse parameters: - name: ids in: query description: The asyncIds of the conversion tasks. required: true schema: type: array items: type: string responses: '200': description: Returned if asynchronous conversion tasks are successfully found. content: application/json: schema: $ref: '#/components/schemas/AsyncContentBodyArray' '400': description: Returned if there are more than 50 results requested. content: {} security: - basicAuth: [] - oAuthDefinitions: - read:confluence-content.all x-atlassian-oauth2-scopes: - scheme: oAuthDefinitions state: Current scopes: - read:confluence-content.all - scheme: oAuthDefinitions state: Beta scopes: - read:content.metadata:confluence x-atlassian-data-security-policy: - app-access-rule-exempt: true x-codegen-request-body-name: body x-atlassian-connect-scope: INACCESSIBLE components: schemas: AsyncContentBodyArray: type: array items: $ref: '#/components/schemas/AsyncContentBody' AsyncId: required: - asyncId type: object properties: asyncId: type: string AsyncContentBody: type: object properties: value: type: string representation: type: string enum: - view - export_view - styled_view - storage - editor - editor2 - anonymous_export_view - wiki - atlas_doc_format renderTaskId: type: string error: type: string status: description: Rerunning is reserved for when the job is working, but there is a previous run's value in the cache. You may choose to continue polling, or use the cached value. type: string enum: - WORKING - QUEUED - FAILED - COMPLETED - RERUNNING embeddedContent: type: array items: $ref: '#/components/schemas/EmbeddedContent' webresource: $ref: '#/components/schemas/WebResourceDependencies' mediaToken: type: object properties: collectionIds: type: array items: type: string contentId: type: string expiryDateTime: type: string fileIds: type: array items: type: string token: type: string _expandable: type: object properties: content: type: string embeddedContent: type: string webresource: type: string mediaToken: type: string _links: $ref: '#/components/schemas/GenericLinks' AsyncIdArray: type: array items: $ref: '#/components/schemas/AsyncId' WebResourceDependencies: type: object properties: _expandable: type: object additionalProperties: true properties: uris: oneOf: - type: string - type: object additionalProperties: true keys: type: array items: type: string contexts: type: array items: type: string uris: type: object properties: all: oneOf: - type: array items: type: string - type: string css: oneOf: - type: array items: type: string - type: string js: oneOf: - type: array items: type: string - type: string _expandable: type: object additionalProperties: true properties: css: oneOf: - type: array items: type: string - type: string js: oneOf: - type: array items: type: string - type: string tags: type: object properties: all: type: string css: type: string data: type: string js: type: string _expandable: type: object additionalProperties: true superbatch: $ref: '#/components/schemas/SuperBatchWebResources' GenericLinks: type: object additionalProperties: oneOf: - type: object additionalProperties: true - type: string Embeddable: type: object additionalProperties: true BulkContentBodyConversionInput: type: object properties: conversionInputs: type: array items: $ref: '#/components/schemas/ContentBodyConversionInput' ContentBodyConversionInput: required: - to - body type: object properties: to: type: string description: The name of the target format for the content body conversion. allowCache: type: boolean description: "Controls whether conversion results are cached and reused for identical requests.\n\n- `false`: Each request creates a new conversion task, even if an identical request was made previously.\n- `true`: Enables caching behavior for identical requests from the same user.\n - If no cached result exists, a new conversion task is created\n - If a cached result exists, the existing task is marked as RERUNNING and will complete with status COMPLETED\n - Returns the same task ID for identical requests, allowing you to retrieve the cached result" default: false spaceKeyContext: type: string description: The space key used for resolving embedded content (page includes, files, and links) in the content body. For example, if the source content contains the link `` and the `spaceKeyContext=TEST` parameter is provided, then the link will be converted into a link to the "Example page" page in the "TEST" space. contentIdContext: type: string description: The content ID used to find the space for resolving embedded content (page includes, files, and links) in the content body. For example, if the source content contains the link `` and the `contentIdContext=123` parameter is provided, then the link will be converted into a link to the "Example page" page in the same space that has the content with ID=123. Note that `spaceKeyContext` will be ignored if this parameter is provided. embeddedContentRender: type: string description: Mode used for rendering embedded content, such as attachments. - `current` renders the embedded content using the latest version. - `version-at-save` renders the embedded content using the version at the time of save. default: current enum: - current - version-at-save expand: type: array items: type: string description: "A multi-value, comma-separated parameter indicating which properties of the content to expand and populate. Expands are dependent\non the `to` conversion format and may be irrelevant for certain conversions (e.g. `macroRenderedOutput` is redundant when\nconverting to `view` format). \n\nIf rendering to `view` format, and the body content being converted includes arbitrary nested content (such as macros); then it is \nnecessary to include webresource expands in the request. Webresources for content body are the batched JS and CSS dependencies for\nany nested dynamic content (i.e. macros).\n\n- `embeddedContent` returns metadata for nested content (e.g. page included using page include macro)\n- `mediaToken` returns JWT token for retrieving attachment data from Media API\n- `macroRenderedOutput` additionally converts body to view format\n- `webresource.superbatch.uris.js` returns all common JS dependencies as static URLs\n- `webresource.superbatch.uris.css` returns all common CSS dependencies as static URLs\n- `webresource.superbatch.uris.all` returns all common dependencies as static URLs\n- `webresource.superbatch.tags.all` returns all common JS dependencies as html `