Qlik Sense Report Templates API

The report-templates API from Qlik Sense — 3 operation(s) for report-templates.

Business capability
Analytics & BI Management BC-610.50

Operations 7

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 Evangelist overlay

GET /api/v1/report-templates List report templates · Get descriptive info for the specified templates #
Ask an LLM
“Which report templates are available to me?”
“Can I find report templates built from a specific app?”
Tell an agent
List report templates.
Show report templates named {name}.
POST /api/v1/report-templates Create a report template · Create a new report template #
Ask an LLM
“How do I add a new report template from an uploaded file?”
“What do I need to register a report template?”
Tell an agent
Create a report template {name} from temporary content {temporaryContentId}.
Create template {name} for app {sourceAppId} using upload {temporaryContentId}.
GET /api/v1/report-templates/{id} Get a report template · Get descriptive info for the specified report template #
Ask an LLM
“Where can I see info about one report template?”
“Who owns a given report template?”
Tell an agent
Get report template {id}.
Show details for report template {id}.
PATCH /api/v1/report-templates/{id} Patch a report template · Patch an existing report template #
Ask an LLM
“Can I change just the name or description of a report template?”
“How do I make a small edit to a report template?”
Tell an agent
Patch report template {id}.
Change a few fields on report template {id}.
PUT /api/v1/report-templates/{id} Replace a report template · Update an existing report template #
Ask an LLM
“How do I replace the file behind an existing report template?”
“Can I overwrite a report template with new content?”
Tell an agent
Replace report template {id} with name {name} and content {temporaryContentId}.
Upload new content {temporaryContentId} into template {id} named {name}.
DELETE /api/v1/report-templates/{id} Delete a report template · Delete the specified report template #
Ask an LLM
“How do I remove a report template?”
“Can I delete a template I no longer use?”
Tell an agent destructive · confirm first
Delete report template {id}.
Remove the report template {id}.
POST /api/v1/report-templates/{id}/actions/download Download a report template file · Download the template file of the specified report template #
Ask an LLM
“How do I download the file behind a report template?”
“Can I get the template file to edit it locally?”
Tell an agent
Download the file for report template {id}.
Get the template file of report template {id}.

Documentation

📖
Documentation
https://qlik.dev/apis/rest/analytics/apps/
📖
APIReference
https://qlik.dev/apis/rest/analytics/apps/
📖
Documentation
https://qlik.dev/apis/rest/analytics/change-stores/
📖
APIReference
https://qlik.dev/apis/rest/analytics/change-stores/
📖
Documentation
https://qlik.dev/apis/rest/analytics/discovery-agent/adaptive-cards/
📖
APIReference
https://qlik.dev/apis/rest/analytics/discovery-agent/adaptive-cards/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-apps/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-apps/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-links/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-links/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-requests/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-requests/
📖
Documentation
https://qlik.dev/apis/rest/analytics/odag-settings/
📖
APIReference
https://qlik.dev/apis/rest/analytics/odag-settings/
📖
Documentation
https://qlik.dev/apis/rest/api-keys/
📖
APIReference
https://qlik.dev/apis/rest/api-keys/
📖
Documentation
https://qlik.dev/apis/rest/apps/
📖
APIReference
https://qlik.dev/apis/rest/apps/
📖
Documentation
https://qlik.dev/apis/rest/assistants/
📖
APIReference
https://qlik.dev/apis/rest/assistants/
📖
Documentation
https://qlik.dev/apis/rest/audits/
📖
APIReference
https://qlik.dev/apis/rest/audits/
📖
Documentation
https://qlik.dev/apis/rest/automation-connections/
📖
APIReference
https://qlik.dev/apis/rest/automation-connections/
📖
Documentation
https://qlik.dev/apis/rest/automation-connectors/
📖
APIReference
https://qlik.dev/apis/rest/automation-connectors/
📖
Documentation
https://qlik.dev/apis/rest/automations/
📖
APIReference
https://qlik.dev/apis/rest/automations/
📖
Documentation
https://qlik.dev/apis/rest/automl-deployments/
📖
APIReference
https://qlik.dev/apis/rest/automl-deployments/
📖
Documentation
https://qlik.dev/apis/rest/automl-predictions/
📖
APIReference
https://qlik.dev/apis/rest/automl-predictions/
📖
Documentation
https://qlik.dev/apis/rest/banners/
📖
APIReference
https://qlik.dev/apis/rest/banners/
📖
Documentation
https://qlik.dev/apis/rest/brands/
📖
APIReference
https://qlik.dev/apis/rest/brands/
📖
Documentation
https://qlik.dev/apis/rest/collections/
📖
APIReference
https://qlik.dev/apis/rest/collections/
📖
Documentation
https://qlik.dev/apis/rest/conditions/
📖
APIReference
https://qlik.dev/apis/rest/conditions/
📖
Documentation
https://qlik.dev/apis/rest/consumption/
📖
APIReference
https://qlik.dev/apis/rest/consumption/
📖
Documentation
https://qlik.dev/apis/rest/core/auth-settings/
📖
APIReference
https://qlik.dev/apis/rest/core/auth-settings/
📖
Documentation
https://qlik.dev/apis/rest/core/ip-policies/
📖
APIReference
https://qlik.dev/apis/rest/core/ip-policies/
📖
Documentation
https://qlik.dev/apis/rest/csp-origins/
📖
APIReference
https://qlik.dev/apis/rest/csp-origins/
📖
Documentation
https://qlik.dev/apis/rest/csrf-token/
📖
APIReference
https://qlik.dev/apis/rest/csrf-token/
📖
Documentation
https://qlik.dev/apis/rest/data-alerts/
📖
APIReference
https://qlik.dev/apis/rest/data-alerts/
📖
Documentation
https://qlik.dev/apis/rest/data-assets/
📖
APIReference
https://qlik.dev/apis/rest/data-assets/
📖
Documentation
https://qlik.dev/apis/rest/data-connections/
📖
APIReference
https://qlik.dev/apis/rest/data-connections/
📖
Documentation
https://qlik.dev/apis/rest/data-credentials/
📖
APIReference
https://qlik.dev/apis/rest/data-credentials/
📖
Documentation
https://qlik.dev/apis/rest/data-files/
📖
APIReference
https://qlik.dev/apis/rest/data-files/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/data-products/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/data-products/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/data-qualities/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/data-qualities/
📖
Documentation
https://qlik.dev/apis/rest/data-governance/trust-scores/
📖
APIReference
https://qlik.dev/apis/rest/data-governance/trust-scores/
📖
Documentation
https://qlik.dev/apis/rest/data-qualities/
📖
APIReference
https://qlik.dev/apis/rest/data-qualities/
📖
Documentation
https://qlik.dev/apis/rest/data-sets/
📖
APIReference
https://qlik.dev/apis/rest/data-sets/
📖
Documentation
https://qlik.dev/apis/rest/data-sources/
📖
APIReference
https://qlik.dev/apis/rest/data-sources/
📖
Documentation
https://qlik.dev/apis/rest/data-stores/
📖
APIReference
https://qlik.dev/apis/rest/data-stores/
📖
Documentation
https://qlik.dev/apis/rest/di-projects/
📖
APIReference
https://qlik.dev/apis/rest/di-projects/
📖
Documentation
https://qlik.dev/apis/rest/direct-access-agents/
📖
APIReference
https://qlik.dev/apis/rest/direct-access-agents/
📖
Documentation
https://qlik.dev/apis/rest/encryption/
📖
APIReference
https://qlik.dev/apis/rest/encryption/
📖
Documentation
https://qlik.dev/apis/rest/extensions/
📖
APIReference
https://qlik.dev/apis/rest/extensions/
📖
Documentation
https://qlik.dev/apis/rest/glossaries/
📖
APIReference
https://qlik.dev/apis/rest/glossaries/
📖
Documentation
https://qlik.dev/apis/rest/groups/
📖
APIReference
https://qlik.dev/apis/rest/groups/
📖
Documentation
https://qlik.dev/apis/rest/identity-providers/
📖
APIReference
https://qlik.dev/apis/rest/identity-providers/
📖
Documentation
https://qlik.dev/apis/rest/items/
📖
APIReference
https://qlik.dev/apis/rest/items/
📖
Documentation
https://qlik.dev/apis/rest/knowledgebases/
📖
APIReference
https://qlik.dev/apis/rest/knowledgebases/
📖
Documentation
https://qlik.dev/apis/rest/licenses/
📖
APIReference
https://qlik.dev/apis/rest/licenses/
📖
Documentation
https://qlik.dev/apis/rest/lineage-graphs/
📖
APIReference
https://qlik.dev/apis/rest/lineage-graphs/
📖
Documentation
https://qlik.dev/apis/rest/login/
📖
APIReference
https://qlik.dev/apis/rest/login/
📖
Documentation
https://qlik.dev/apis/rest/ml/
📖
APIReference
https://qlik.dev/apis/rest/ml/
📖
Documentation
https://qlik.dev/apis/rest/notes/
📖
APIReference
https://qlik.dev/apis/rest/notes/
📖
Documentation
https://qlik.dev/apis/rest/notifications/
📖
APIReference
https://qlik.dev/apis/rest/notifications/
📖
Documentation
https://qlik.dev/apis/rest/oauth-clients/
📖
APIReference
https://qlik.dev/apis/rest/oauth-clients/
📖
Documentation
https://qlik.dev/apis/rest/oauth-tokens/
📖
APIReference
https://qlik.dev/apis/rest/oauth-tokens/
📖
Documentation
https://qlik.dev/apis/rest/questions/
📖
APIReference
https://qlik.dev/apis/rest/questions/
📖
Documentation
https://qlik.dev/apis/rest/quotas/
📖
APIReference
https://qlik.dev/apis/rest/quotas/
📖
Documentation
https://qlik.dev/apis/rest/reload-tasks/
📖
APIReference
https://qlik.dev/apis/rest/reload-tasks/
📖
Documentation
https://qlik.dev/apis/rest/reloads/
📖
APIReference
https://qlik.dev/apis/rest/reloads/
📖
Documentation
https://qlik.dev/apis/rest/report-templates/
📖
APIReference
https://qlik.dev/apis/rest/report-templates/
📖
Documentation
https://qlik.dev/apis/rest/reports/
📖
APIReference
https://qlik.dev/apis/rest/reports/
📖
Documentation
https://qlik.dev/apis/rest/roles/
📖
APIReference
https://qlik.dev/apis/rest/roles/
📖
Documentation
https://qlik.dev/apis/rest/scheduling/tasks/
📖
APIReference
https://qlik.dev/apis/rest/scheduling/tasks/
📖
Documentation
https://qlik.dev/apis/rest/sharing-tasks/
📖
APIReference
https://qlik.dev/apis/rest/sharing-tasks/
📖
Documentation
https://qlik.dev/apis/rest/spaces/
📖
APIReference
https://qlik.dev/apis/rest/spaces/
📖
Documentation
https://qlik.dev/apis/rest/tasks/
📖
APIReference
https://qlik.dev/apis/rest/tasks/
📖
Documentation
https://qlik.dev/apis/rest/temp-contents/
📖
APIReference
https://qlik.dev/apis/rest/temp-contents/
📖
Documentation
https://qlik.dev/apis/rest/tenant-settings/
📖
APIReference
https://qlik.dev/apis/rest/tenant-settings/
📖
Documentation
https://qlik.dev/apis/rest/tenants/
📖
APIReference
https://qlik.dev/apis/rest/tenants/
📖
Documentation
https://qlik.dev/apis/rest/themes/
📖
APIReference
https://qlik.dev/apis/rest/themes/
📖
Documentation
https://qlik.dev/apis/rest/transports/
📖
APIReference
https://qlik.dev/apis/rest/transports/
📖
Documentation
https://qlik.dev/apis/rest/ui-config/
📖
APIReference
https://qlik.dev/apis/rest/ui-config/
📖
Documentation
https://qlik.dev/apis/rest/users/
📖
APIReference
https://qlik.dev/apis/rest/users/
📖
Documentation
https://qlik.dev/apis/rest/web-integrations/
📖
APIReference
https://qlik.dev/apis/rest/web-integrations/
📖
Documentation
https://qlik.dev/apis/rest/web-notifications/
📖
APIReference
https://qlik.dev/apis/rest/web-notifications/
📖
Documentation
https://qlik.dev/apis/rest/webhooks/
📖
APIReference
https://qlik.dev/apis/rest/webhooks/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automation-connections/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automation-connections/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automation-connectors/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automation-connectors/
📖
Documentation
https://qlik.dev/apis/rest/workflows/automations/
📖
APIReference
https://qlik.dev/apis/rest/workflows/automations/
📖
Documentation
https://qlik.dev/apis/rest
📖
Authentication
https://qlik.dev/authenticate

Specifications

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/qliksense:qliksense-report-templates-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

qliksense-report-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Report Templates API
  version: ''
servers:
- url: https://{tenant}.{region}.qlikcloud.com
  variables:
    region:
      default: us
      description: The region the tenant is hosted in
    tenant:
      default: your-tenant
      description: Name of the tenant that will be called
tags:
- name: Report Templates
paths:
  /api/v1/report-templates:
    get:
      tags:
      - Report Templates
      summary: Get descriptive info for the specified templates
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTemplatesResponse'
          description: The templates list was retrieved.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
          format: int32
          default: 20
          maximum: 100
          minimum: 1
        description: If present, restrict the number of returned items to this value.
      - in: query
        name: name
        schema:
          type: string
        example: Sales
        description: Template name to search and filter for. Case-insensitive open search with wildcards both as prefix and suffix.
      - in: query
        name: ownerId
        schema:
          type: string
        example: 0rTsxGg_rtsZAs19Zib_421n6haydjIh
        description: Return the templates for the specified owner.
      - in: query
        name: skip
        schema:
          type: integer
          format: int32
          default: 0
          maximum: 2147483647
          minimum: 0
        description: If present, skip this number of the returned values in the result set (facilitates paging).
      - in: query
        name: sort
        schema:
          type: array
          items:
            enum:
            - name
            - +name
            - -name
            - createdAt
            - +createdAt
            - -createdAt
            - updatedAt
            - +updatedAt
            - -updatedAt
            - type
            - +type
            - -type
            type: string
        example: +name
        description: Field to sort by. Prefix with +/- to indicate ascending/descending. By default, the sort order is ascending.
      - in: query
        name: sourceAppId
        schema:
          type: string
        example: 78fb8e8d-bc83-4da1-b0d1-b0dc0a5c3e5b
        description: Return the templates that are using the specified app as data source.
      operationId: getReportTemplates
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '1'
        limit: 1000
    post:
      tags:
      - Report Templates
      summary: Create a new report template
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplateResponse'
          description: New template was created.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Not Found
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: The template file exceeds the user's quota for maximum file to upload.
      operationId: createReportTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTemplateRequest'
        description: The upload request.
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
  /api/v1/report-templates/{id}:
    get:
      tags:
      - Report Templates
      summary: Get descriptive info for the specified report template
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplateResponse'
          description: The template was located.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: A template with the specified ID was not found.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: The ID of the report template.
      operationId: getReportTemplate
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '1'
        limit: 1000
    patch:
      tags:
      - Report Templates
      summary: Patch an existing report template
      responses:
        '204':
          description: Patch successfully applied to template.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: A template with the specified ID was not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Conflict
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: The template file exceeds the user's quota for maximum file to upload.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: The ID of the report template to patch.
      operationId: patchReportTemplate
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Operation'
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Operation'
        description: A JSON patch request as defined by RFC 6902.
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
    put:
      tags:
      - Report Templates
      summary: Update an existing report template
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportTemplateResponse'
          description: The template was updated.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: A template with the specified ID was not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Conflict
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: The template file exceeds the user's quota for maximum file to upload.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: The ID of the report template to update.
      operationId: updateReportTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTemplateRequest'
        description: The upload request.
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
    delete:
      tags:
      - Report Templates
      summary: Delete the specified report template
      responses:
        '204':
          description: The template was deleted.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Not Found
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: The ID of the report template to delete.
      operationId: deleteReportTemplate
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
  /api/v1/report-templates/{id}/actions/download:
    post:
      tags:
      - Report Templates
      summary: Download the template file of the specified report template
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          description: The template file.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
          description: Not Found
      parameters:
      - in: path
        name: id
        schema:
          type: string
          format: uuid
        required: true
        description: The ID of the report template.
      operationId: downloadReportTemplate
      x-qlik-stability: stable
      x-qlik-visibility: public
      x-qlik-deprecated: false
      x-qlik-tier:
        tier: '2'
        limit: 100
components:
  schemas:
    CreateTemplateRequest:
      type: object
      required:
      - name
      - temporaryContentId
      properties:
        name:
          type: string
          example: Sales by category
          maxLength: 255
          minLength: 1
          description: Template name
        description:
          type:
          - string
          - 'null'
          example: Sales grouped by product category
          maxLength: 255
          description: Template description
        sourceAppId:
          type:
          - string
          - 'null'
          example: 78fb8e8d-bc83-4da1-b0d1-b0dc0a5c3e5b
          description: The ID of the app that this template is using as data source. The id stored in the template file metadata is used if no value is specified.
        sourceAppAction:
          enum:
          - validate
          - replace
          type: string
          format: Enumeration
          default: validate
          description: Specifies the action to perform with the given source app id. Use "validate" to verify that the template source app matches the provided value. Use "replace" to migrate the template to a different app by replacing the source app id.
        temporaryContentId:
          type: string
          example: 69b14f2bb93332c3ff8c64b8
          minLength: 1
          description: The ID of a previously uploaded temporary content file
      additionalProperties: false
    UpdateTemplateRequest:
      type: object
      required:
      - name
      - temporaryContentId
      properties:
        name:
          type: string
          example: Sales by category
          maxLength: 255
          minLength: 1
          description: Template name
        description:
          type:
          - string
          - 'null'
          example: Sales grouped by product category
          maxLength: 255
          description: Template description
        sourceAppAction:
          enum:
          - validate
          - replace
          type: string
          format: Enumeration
          default: validate
          description: Specifies the action to perform with the new source app. Use "validate" to verify that the source app of the uploaded template matches the target app. Use "replace" to migrate the uploaded template to the target app by replacing the source app id.
        temporaryContentId:
          type: string
          example: 69b14f2bb93332c3ff8c64b8
          minLength: 1
          description: The ID of a previously uploaded temporary content file
      additionalProperties: false
    Operation:
      type: object
      properties:
        op:
          type:
          - string
          - 'null'
        from:
          type:
          - string
          - 'null'
        path:
          type:
          - string
          - 'null'
        value:
          type:
          - object
          - 'null'
      additionalProperties: false
    PaginationLink:
      type: object
      properties:
        href:
          type:
          - string
          - 'null'
          format: uri
          description: The URL for the pagination link.
      additionalProperties: false
    ErrorResponseItem:
      type: object
      properties:
        code:
          type:
          - string
          - 'null'
          example: REPTPL-400001
          description: The error code.
        meta:
          type:
          - object
          - 'null'
          description: Additional error metadata.
        title:
          type:
          - string
          - 'null'
          example: Cursor not formatted correctly.
          description: Summary of the problem.
        detail:
          type:
          - string
          - 'null'
          example: Invalid encoding of cursor.
          description: A human-readable explanation specific to this occurrence of the problem.
      additionalProperties: false
    GetTemplatesResponse:
      type: object
      properties:
        data:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ReportTemplateResponse'
          description: The current page data.
        links:
          $ref: '#/components/schemas/PaginationLinks'
      additionalProperties: false
    ReportTemplateResponse:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
          format: uuid
          example: c35f4b70-3ce4-4a30-b62b-2aef16943bc4
          description: The template ID
        name:
          type:
          - string
          - 'null'
          example: Sales by category
          description: Template name
        type:
          enum:
          - excel
          - pixelPerfect
          - html
          - powerPoint
          - word
          type: string
          example: excel
          description: Template type
        ownerId:
          type:
          - string
          - 'null'
          example: 0rTsxGg_rtsZAs19Zib_421n6haydjIh
          description: The user that this template is scoped to.
        createdAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T12:00:00.000Z'
          description: The date and time when the template was created.
        createdBy:
          type:
          - string
          - 'null'
          example: 0rTsxGg_rtsZAs19Zib_421n6htydjIh
          description: The id of the user who created the template.
        updatedAt:
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-01-01T12:00:00.000Z'
          description: The date and time when the template was last updated.
        updatedBy:
          type:
          - string
          - 'null'
          example: 0rTsxGg_rtsZAs19Zib_421n6htydjIh
          description: The id of the user who last updated the template.
        description:
          type:
          - string
          - 'null'
          example: Sales grouped by product category
          description: Template description
        sourceAppId:
          type:
          - string
          - 'null'
          example: c4c70012-29c7-47c2-820d-4ff74cb164a9
          description: The id of the app that this template is using as data source.
        sourceAppName:
          type:
          - string
          - 'null'
          example: Qlik app
          description: The name of the app that this template is using as data source.
        metadataVersion:
          type: integer
          format: int32
          example: 1
          description: The template metadata version
      additionalProperties: false
    PaginationLinks:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/PaginationLink'
        prev:
          $ref: '#/components/schemas/PaginationLink'
        self:
          $ref: '#/components/schemas/PaginationLink'
      additionalProperties: false
    ErrorResult:
      type: object
      properties:
        errors:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ErrorResponseItem'
          description: List of errors and their properties.
        statusCode:
          type:
          - integer
          - 'null'
          format: int32
          readOnly: true
      additionalProperties: false