Report templates

The Report Templates API allows you to create, update, and manage templates that define the structure and styling for generated reports, enabling consistent report delivery across your organization.

Get descriptive info for the specified templates.

Facts

Rate limit Tier 1 (1000 requests per minute)

Query Parameters

  • limit integer

    If present, restrict the number of returned items to this value.

  • name string

    Template name to search and filter for. Case-insensitive open search with wildcards both as prefix and suffix.

  • ownerId string

    Return the templates for the specified owner.

  • skip integer

    If present, skip this number of the returned values in the result set (facilitates paging).

  • sort array of strings

    Field to sort by. Prefix with +/- to indicate ascending/descending. By default, the sort order is ascending.

    Values may be any of: "name""+name""-name""createdAt""+createdAt""-createdAt""updatedAt""+updatedAt""-updatedAt""type""+type""-type"

  • sourceAppId string

    Return the templates that are using the specified app as data source.

Responses

200

The templates list was retrieved.

  • application/json object
    Show application/json properties
    • data array of objects

      The current page data.

      Show data properties
      • id string

        The template ID

      • name string

        Template name

      • type string

        Template type

        Can be one of: "excel""pixelPerfect""html""powerPoint""word"

      • ownerId string

        The user that this template is scoped to.

      • createdAt string

        The date and time when the template was created.

      • createdBy string

        The id of the user who created the template.

      • updatedAt string

        The date and time when the template was last updated.

      • updatedBy string

        The id of the user who last updated the template.

      • description string

        Template description

      • sourceAppId string

        The id of the app that this template is using as data source.

      • sourceAppName string

        The name of the app that this template is using as data source.

      • metadataVersion integer

        The template metadata version

    • links object
      Show links properties
      • next object
        Show next properties
        • href string

          The URL for the pagination link.

      • prev object
        Show prev properties
        • href string

          The URL for the pagination link.

      • self object
        Show self properties
        • href string

          The URL for the pagination link.

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
GET /api/v1/report-templates
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.getReportTemplates({})
qlik report-template ls
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates" \
-H "Authorization: Bearer <access_token>"

Example Response

{
"data": [
{
"id": "c35f4b70-3ce4-4a30-b62b-2aef16943bc4",
"name": "Sales by category",
"type": "excel",
"ownerId": "0rTsxGg_rtsZAs19Zib_421n6haydjIh",
"createdAt": "2026-01-01T12:00:00.000Z",
"createdBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"updatedAt": "2026-01-01T12:00:00.000Z",
"updatedBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"description": "Sales grouped by product category",
"sourceAppId": "c4c70012-29c7-47c2-820d-4ff74cb164a9",
"sourceAppName": "Qlik app",
"metadataVersion": 1
}
],
"links": {
"next": {
"href": "string"
},
"prev": {
"href": "string"
},
"self": {
"href": "string"
}
}
}

Create a new report template.

Facts

Rate limit Tier 2 (100 requests per minute)

Request Body

The upload request.

  • application/json object
    Show application/json properties
    • name string
      Required

      Template name

    • description string

      Template description

    • sourceAppId string

      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 string

      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.

      Can be one of: "validate""replace"

    • temporaryContentId string
      Required

      The ID of a previously uploaded temporary content file

Responses

201

New template was created.

  • application/json object
    Show application/json properties
    • id string

      The template ID

    • name string

      Template name

    • type string

      Template type

      Can be one of: "excel""pixelPerfect""html""powerPoint""word"

    • ownerId string

      The user that this template is scoped to.

    • createdAt string

      The date and time when the template was created.

    • createdBy string

      The id of the user who created the template.

    • updatedAt string

      The date and time when the template was last updated.

    • updatedBy string

      The id of the user who last updated the template.

    • description string

      Template description

    • sourceAppId string

      The id of the app that this template is using as data source.

    • sourceAppName string

      The name of the app that this template is using as data source.

    • metadataVersion integer

      The template metadata version

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

403

Forbidden

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

404

Not Found

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

413

The template file exceeds the user's quota for maximum file to upload.

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
POST /api/v1/report-templates
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.createReportTemplate({
description:
'Sales grouped by product category',
name: 'Sales by category',
sourceAppAction: 'validate',
sourceAppId:
'78fb8e8d-bc83-4da1-b0d1-b0dc0a5c3e5b',
temporaryContentId: '69b14f2bb93332c3ff8c64b8',
})
qlik report-template create \
--name 'Sales by category' \
--temporaryContentId '69b14f2bb93332c3ff8c64b8'
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates" \
-X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '{"name":"Sales by category","description":"Sales grouped by product category","sourceAppId":"78fb8e8d-bc83-4da1-b0d1-b0dc0a5c3e5b","sourceAppAction":"validate","temporaryContentId":"69b14f2bb93332c3ff8c64b8"}'

Example Response

{
"id": "c35f4b70-3ce4-4a30-b62b-2aef16943bc4",
"name": "Sales by category",
"type": "excel",
"ownerId": "0rTsxGg_rtsZAs19Zib_421n6haydjIh",
"createdAt": "2026-01-01T12:00:00.000Z",
"createdBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"updatedAt": "2026-01-01T12:00:00.000Z",
"updatedBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"description": "Sales grouped by product category",
"sourceAppId": "c4c70012-29c7-47c2-820d-4ff74cb164a9",
"sourceAppName": "Qlik app",
"metadataVersion": 1
}

Get descriptive info for the specified report template.

Facts

Rate limit Tier 1 (1000 requests per minute)

Path Parameters

  • id string
    Required

    The ID of the report template.

Responses

200

The template was located.

  • application/json object
    Show application/json properties
    • id string

      The template ID

    • name string

      Template name

    • type string

      Template type

      Can be one of: "excel""pixelPerfect""html""powerPoint""word"

    • ownerId string

      The user that this template is scoped to.

    • createdAt string

      The date and time when the template was created.

    • createdBy string

      The id of the user who created the template.

    • updatedAt string

      The date and time when the template was last updated.

    • updatedBy string

      The id of the user who last updated the template.

    • description string

      Template description

    • sourceAppId string

      The id of the app that this template is using as data source.

    • sourceAppName string

      The name of the app that this template is using as data source.

    • metadataVersion integer

      The template metadata version

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

403

Forbidden

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

404

A template with the specified ID was not found.

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
GET /api/v1/report-templates/{id}
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.getReportTemplate(
'c35f4b70-3ce4-4a30-b62b-2aef16943bc4',
)
qlik report-template get 'c35f4b70-3ce4-4a30-b62b-2aef16943bc4'
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates/{id}" \
-H "Authorization: Bearer <access_token>"

Example Response

{
"id": "c35f4b70-3ce4-4a30-b62b-2aef16943bc4",
"name": "Sales by category",
"type": "excel",
"ownerId": "0rTsxGg_rtsZAs19Zib_421n6haydjIh",
"createdAt": "2026-01-01T12:00:00.000Z",
"createdBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"updatedAt": "2026-01-01T12:00:00.000Z",
"updatedBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"description": "Sales grouped by product category",
"sourceAppId": "c4c70012-29c7-47c2-820d-4ff74cb164a9",
"sourceAppName": "Qlik app",
"metadataVersion": 1
}

Patch an existing report template.

Facts

Rate limit Tier 2 (100 requests per minute)

Path Parameters

  • id string
    Required

    The ID of the report template to patch.

Request Body

A JSON patch request as defined by RFC 6902.

  • application/json array of objects
    Show application/json properties
    • op string
    • from string
    • path string
    • value object

A JSON patch request as defined by RFC 6902.

  • application/json-patch+json array of objects
    Show application/json-patch+json properties
    • op string
    • from string
    • path string
    • value object

Responses

204

Patch successfully applied to template.

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

403

Forbidden

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

404

A template with the specified ID was not found.

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

409

Conflict

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

413

The template file exceeds the user's quota for maximum file to upload.

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
PATCH /api/v1/report-templates/{id}
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.patchReportTemplate(
'c35f4b70-3ce4-4a30-b62b-2aef16943bc4',
[
{
from: 'string',
op: 'string',
path: 'string',
value: {},
},
],
)
qlik report-template patch 'c35f4b70-3ce4-4a30-b62b-2aef16943bc4'
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates/{id}" \
-X PATCH \
-H "Content-type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '[{"op":"string","from":"string","path":"string","value":{}}]'

Update an existing report template.

Facts

Rate limit Tier 2 (100 requests per minute)

Path Parameters

  • id string
    Required

    The ID of the report template to update.

Request Body

The upload request.

  • application/json object
    Show application/json properties
    • name string
      Required

      Template name

    • description string

      Template description

    • sourceAppAction string

      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.

      Can be one of: "validate""replace"

    • temporaryContentId string
      Required

      The ID of a previously uploaded temporary content file

Responses

201

The template was updated.

  • application/json object
    Show application/json properties
    • id string

      The template ID

    • name string

      Template name

    • type string

      Template type

      Can be one of: "excel""pixelPerfect""html""powerPoint""word"

    • ownerId string

      The user that this template is scoped to.

    • createdAt string

      The date and time when the template was created.

    • createdBy string

      The id of the user who created the template.

    • updatedAt string

      The date and time when the template was last updated.

    • updatedBy string

      The id of the user who last updated the template.

    • description string

      Template description

    • sourceAppId string

      The id of the app that this template is using as data source.

    • sourceAppName string

      The name of the app that this template is using as data source.

    • metadataVersion integer

      The template metadata version

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

403

Forbidden

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

404

A template with the specified ID was not found.

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

409

Conflict

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

413

The template file exceeds the user's quota for maximum file to upload.

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
PUT /api/v1/report-templates/{id}
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.updateReportTemplate(
'c35f4b70-3ce4-4a30-b62b-2aef16943bc4',
{
description:
'Sales grouped by product category',
name: 'Sales by category',
sourceAppAction: 'validate',
temporaryContentId:
'69b14f2bb93332c3ff8c64b8',
},
)
qlik report-template update 'c35f4b70-3ce4-4a30-b62b-2aef16943bc4' \
--name 'Sales by category' \
--temporaryContentId '69b14f2bb93332c3ff8c64b8'
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates/{id}" \
-X PUT \
-H "Content-type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '{"name":"Sales by category","description":"Sales grouped by product category","sourceAppAction":"validate","temporaryContentId":"69b14f2bb93332c3ff8c64b8"}'

Example Response

{
"id": "c35f4b70-3ce4-4a30-b62b-2aef16943bc4",
"name": "Sales by category",
"type": "excel",
"ownerId": "0rTsxGg_rtsZAs19Zib_421n6haydjIh",
"createdAt": "2026-01-01T12:00:00.000Z",
"createdBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"updatedAt": "2026-01-01T12:00:00.000Z",
"updatedBy": "0rTsxGg_rtsZAs19Zib_421n6htydjIh",
"description": "Sales grouped by product category",
"sourceAppId": "c4c70012-29c7-47c2-820d-4ff74cb164a9",
"sourceAppName": "Qlik app",
"metadataVersion": 1
}

Delete the specified report template.

Facts

Rate limit Tier 2 (100 requests per minute)

Path Parameters

  • id string
    Required

    The ID of the report template to delete.

Responses

204

The template was deleted.

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

403

Forbidden

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

404

Not Found

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
DELETE /api/v1/report-templates/{id}
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.deleteReportTemplate(
'c35f4b70-3ce4-4a30-b62b-2aef16943bc4',
)
qlik report-template rm 'c35f4b70-3ce4-4a30-b62b-2aef16943bc4'
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates/{id}" \
-X DELETE \
-H "Authorization: Bearer <access_token>"

Download the template file of the specified report template

Facts

Rate limit Tier 2 (100 requests per minute)

Path Parameters

  • id string
    Required

    The ID of the report template.

Responses

200

The template file.

  • application/octet-stream string

400

Bad Request

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

403

Forbidden

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer

404

Not Found

  • application/json object
    Show application/json properties
    • errors array of objects

      List of errors and their properties.

      Show errors properties
      • code string

        The error code.

      • meta object

        Additional error metadata.

      • title string

        Summary of the problem.

      • detail string

        A human-readable explanation specific to this occurrence of the problem.

    • statusCode integer
POST /api/v1/report-templates/{id}/actions/download
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({
hostConfig: {
host: 'https://{tenant}.{region}.qlikcloud.com',
apiKey: '<access-token>',
},
})
await qlik.reportTemplates.downloadReportTemplate(
'c35f4b70-3ce4-4a30-b62b-2aef16943bc4',
)
qlik report-template download 'c35f4b70-3ce4-4a30-b62b-2aef16943bc4'
curl "https://{tenant}.{region}.qlikcloud.com/api/v1/report-templates/{id}/actions/download" \
-X POST \
-H "Authorization: Bearer <access_token>" \
-o "output-file"