OpenAPI Specs

The API specs below represent the latest version of the apps and as provided for Confluence Cloud. Server and Data Center users may download the OpenApi spec file specific to their app versions at:

  • Scroll PDF Exporter: <BASE_URL>/download/resources/com.k15t.scroll.scroll-pdf/api-docs/1/openapi.yaml
  • Scroll Word Exporter: <BASE_URL>/download/resources/com.k15t.scroll.scroll-office/api-docs/1/openapi.yaml


We are currently in the process of changing the domains used by our apps. We recommend to use the newer domains as described here, because the old domains will stop working soon.


openapi: 3.0.1 info: title: Scroll Exporter Public REST API description: "Provides endpoints for starting, inspecting and cancelling export\ \ jobs." contact: name: K15t Support url: https://support.k15t.com email: help@k15t.com version: "1.0" externalDocs: description: K15t Help Center url: https://help.k15t.com/scroll-pdf-exporter/latest/cloud/?contentKey=export-content-via-rest-api servers: - url: https://scroll-pdf.us.exporter.k15t.app/api description: Scroll PDF Exporter for Confluence Cloud variables: {} - url: https://scroll-word.us.exporter.k15t.app/api description: Scroll Word Exporter for Confluence Cloud variables: {} - url: https://scroll-html.us.exporter.k15t.app/api description: Scroll HTML Exporter for Confluence Cloud variables: {} - url: "{CONFLUENCE_BASE_URL}/plugins/servlet/scroll-pdf/api" description: Scroll PDF Exporter for Confluence Server / Datacenter variables: CONFLUENCE_BASE_URL: default: http://localhost:8090 - url: "{CONFLUENCE_BASE_URL}/plugins/servlet/scroll-office/api" description: Scroll Word Exporter for Confluence Server / Datacenter variables: CONFLUENCE_BASE_URL: default: http://localhost:8090 security: - BearerAuth: [] tags: - name: Start Export description: Call this first to start an export job. - name: Get Export Status description: "Once started, use this to retrieve the status." - name: Cancel Export description: Optional - cancels running exports. paths: /public/1/exports/{exportJobId}: delete: tags: - Cancel Export summary: Cancel Export description: |- Cancels a scheduled or running export job. **This is normally not required and has no effect on completed export jobs.** Use this in case you realize you don't need the export result anymore while the export job is still running and you wish to save some resources. Just for your karma :-) operationId: cancel-export parameters: - name: exportJobId in: path required: true schema: type: string responses: "202": description: If cancellation of the export job has been successfully initiated. It might take some time to completely cancel the running export job. "400": description: If any of the provided parameters are invalid. "401": description: If no access token is provided in the request via Authorization header. "403": description: If the current user doesn't have permissions to cancel the specified export job. Only the user starting a job can cancel it. /public/1/exports/{exportJobId}/status: get: tags: - Get Export Status summary: Get Status description: |- Returns a status object with detailed information about the specified export job's progress. Once the export has completed successfully or with an error, the status object will contain a download URL for either the exported file or an error.zip file containing further details on the error. operationId: get-status parameters: - name: exportJobId in: path required: true schema: type: string responses: "200": description: The current status of the export job. content: application/json: schema: $ref: '#/components/schemas/ExportStatus' "400": description: If any of the provided parameters are invalid. "401": description: If no access token is provided in the request via Authorization header. "403": description: If the current user doesn't have permissions to view the specified export job. Only the user starting a job can view its details. /public/1/exports: post: tags: - Start Export summary: Start Export description: |- Starts a new export job with the provided parameters and returns its ID. Use the `Get Status` endpoint for progress and download details. operationId: start-export requestBody: content: application/json: schema: $ref: '#/components/schemas/StartExportRequest' required: true responses: "200": description: The ID of the new export job content: application/json: schema: $ref: '#/components/schemas/StartExportResponse' "400": description: If any of the provided parameters are invalid. "401": description: If no access token is provided in the request via Authorization header. "403": description: If the current user doesn't have permissions to start an export with the specified parameters. components: schemas: ExportStatus: type: object properties: status: type: string description: |- A summary of the status. * Initially export jobs are in status `incomplete`. * After finishing they are in status `complete` or `error`. * If cancelled by the user the status will be `cancelled`. enum: - incomplete - complete - cancelled - error step: type: integer description: | One of: * 1 - Initial step, while collecting pages to export. * 2 - While exporting and processing page content from Confluence. * 3 - While converting the content to the output format. format: int32 totalSteps: type: integer description: Always 3. This might change in case additional export steps will be added in the future. format: int32 stepProgress: type: integer description: The progress of the current step (0-100%). format: int32 downloadUrl: type: string description: "Only set if the status is `complete` or `error`. Clients must\ \ use this URL to download the exported file, or error.zip in case of\ \ an export error." StartExportResponse: type: object properties: jobId: type: string description: The unique ID of the new export job. Use with the `Get Status` or `Cancel Export` endpoints. StartExportRequest: required: - pageId - templateId type: object properties: pageId: type: string description: The ID of the page or blog post that the export should start from. example: "123456" scope: type: string description: |- Defines what pages will be exported: * `descendants` will export the specified page and its descendants. * `current` will only export the specified page. * `document` will export the whole Scroll Documents document that the specified page belongs to. When not specified, the default export scope of the specified template will be used. If the template does not specify such a default scope then `descendants` will be used. example: current enum: - descendants - current - document templateId: type: string description: The ID of the template to use for this export. Template IDs can be retrieved by inspecting the template information in the space / global template list's 'Action' menu. example: com.k15t.scroll.pdf.default-template-confluence versionId: type: string description: The ID of the Scroll Versions version to export. Ignored on Cloud. variantId: type: string description: Either the ID of a Scroll Documents or Scroll Versions variant. If specified only content belonging to that variant will be exported. languageKey: type: string description: The key of the Scroll Translations language to export. Ignored on Cloud. locale: type: string description: |- A BCP 47 language tag (`en`, `en-US`, `de`, `de-DE`, ...) specifying the locale to use when generating placeholder content like dates. If not specified the locale from the request's `Accept-Language` header will be used. Defaults to English if neither is available. example: en-US timeZone: type: string description: |- An IANA time zone database name (`Etc/UTC`, `Europe/Berlin`, `Asia/Hong_Kong`) specifying the time zone to use when generating placeholder content like dates. Defaults to the instance time zone if not available. example: Europe/Berlin securitySchemes: BearerAuth: type: http description: |- API authentication requires an API token for the respective exporter. * Cloud: Create an exporter-specific API token for your Confluence instance: [PDF](https://help.k15t.com/scroll-pdf-exporter/latest/cloud/?contentKey=export-content-via-rest-api) [Word](https://help.k15t.com/scroll-word-exporter/latest/cloud/?contentKey=export-content-via-rest-api) [HTML](https://help.k15t.com/scroll-html-exporter/latest/cloud/?contentKey=export-content-via-rest-api) * Server/Datacenter: Create a [personal access token](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html) for your user account. scheme: bearer