Qlik Sense Apps API
Manage Qlik Sense analytics applications including creating, copying, importing, exporting, publishing, and retrieving app metadata.
Manage Qlik Sense analytics applications including creating, copying, importing, exporting, publishing, and retrieving app metadata.
openapi: 3.1.0
info:
title: Qlik Cloud REST Apps API
description: REST API for Qlik Cloud platform services including apps, spaces, and reloads. Provides programmatic access to manage analytics applications, organize resources into spaces with access control, and trigger data reloads. Authentication is performed via OAuth 2.0 bearer tokens or API keys issued from a Qlik Cloud tenant.
version: 1.0.0
contact:
name: Qlik Developer Relations
email: developer@qlik.com
url: https://qlik.dev
license:
name: Qlik Terms of Use
url: https://www.qlik.com/us/legal/terms-of-use
x-logo:
url: https://www.qlik.com/us/-/media/images/qlik/global/qlik-logo.png
servers:
- url: https://{tenant}.{region}.qlikcloud.com/api/v1
description: Qlik Cloud tenant
variables:
tenant:
default: your-tenant
description: The name of your Qlik Cloud tenant
region:
default: us
description: The region of your Qlik Cloud deployment
enum:
- us
- eu
- ap
- uk
security:
- bearerAuth: []
- apiKey: []
tags:
- name: Apps
description: Manage Qlik Sense analytics applications including creating, copying, importing, exporting, publishing, and retrieving app metadata.
externalDocs:
url: https://qlik.dev/apis/rest/apps
paths:
/apps:
get:
operationId: getAppsPrivileges
summary: Get app privileges
description: Retrieves the current user privileges for app operations such as create, read, update, delete, import, and export.
tags:
- Apps
responses:
'200':
description: Privileges returned successfully.
content:
application/json:
schema:
type: array
items:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createApp
summary: Create an app
description: Creates a new analytics app in the specified or personal space.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppCreate'
responses:
'200':
description: App created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/apps/{appId}:
parameters:
- $ref: '#/components/parameters/AppId'
get:
operationId: getApp
summary: Retrieve an app
description: Retrieves information for a specific app.
tags:
- Apps
responses:
'200':
description: App information returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateApp
summary: Update an app
description: Updates the information for a specific app.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppUpdate'
responses:
'200':
description: App updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteApp
summary: Delete an app
description: Deletes a specific app.
tags:
- Apps
responses:
'200':
description: App deleted successfully.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/copy:
parameters:
- $ref: '#/components/parameters/AppId'
post:
operationId: copyApp
summary: Copy an app
description: Copies a specific app within the tenant.
tags:
- Apps
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/AppCopy'
responses:
'200':
description: App copied successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/export:
parameters:
- $ref: '#/components/parameters/AppId'
post:
operationId: exportApp
summary: Export an app
description: Exports a specific app, returning a temporary download path for the QVF file.
tags:
- Apps
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
noData:
type: boolean
description: When true, the export excludes the app data reducing the exported file size.
default: false
responses:
'200':
description: Export initiated successfully.
content:
application/json:
schema:
type: object
properties:
downloadPath:
type: string
description: Temporary URL to download the exported QVF file.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/import:
post:
operationId: importApp
summary: Import an app
description: Imports an app from a QVF file into the system.
tags:
- Apps
parameters:
- name: name
in: query
description: The name of the target app.
schema:
type: string
- name: spaceId
in: query
description: The space identifier to import the app into. Uses personal space if omitted.
schema:
type: string
- name: mode
in: query
description: The import mode for the app.
schema:
type: string
enum:
- new
- autoreplace
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: App imported successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
/apps/{appId}/publish:
parameters:
- $ref: '#/components/parameters/AppId'
post:
operationId: publishApp
summary: Publish an app
description: Publishes an app from a personal or shared space to a managed space.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppPublish'
responses:
'200':
description: App published successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: republishApp
summary: Republish an app
description: Republishes a published app, replacing its content with the source app data.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppPublish'
responses:
'200':
description: App republished successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/owner:
parameters:
- $ref: '#/components/parameters/AppId'
put:
operationId: updateAppOwner
summary: Change app owner
description: Changes the owner of the app.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- ownerId
properties:
ownerId:
type: string
description: The identifier of the new owner.
responses:
'200':
description: Owner changed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/space:
parameters:
- $ref: '#/components/parameters/AppId'
put:
operationId: moveAppToSpace
summary: Move app to a space
description: Sets the space on a specific app.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- spaceId
properties:
spaceId:
type: string
description: The identifier of the target space.
responses:
'200':
description: App moved to space successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: removeAppFromSpace
summary: Remove app from space
description: Removes the space assignment from the app, moving it to personal space.
tags:
- Apps
responses:
'200':
description: App removed from space successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppAttributes'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/data/metadata:
parameters:
- $ref: '#/components/parameters/AppId'
get:
operationId: getAppDataMetadata
summary: Retrieve data metadata for an app
description: Retrieves data model and reload statistics metadata for an app.
tags:
- Apps
responses:
'200':
description: Data metadata returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppDataMetadata'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/data/lineage:
parameters:
- $ref: '#/components/parameters/AppId'
get:
operationId: getAppDataLineage
summary: Retrieve data lineage for an app
description: Retrieves the data lineage information for an app.
tags:
- Apps
responses:
'200':
description: Data lineage returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AppDataLineage'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/scripts:
parameters:
- $ref: '#/components/parameters/AppId'
get:
operationId: getAppScripts
summary: Retrieve script history
description: Retrieves the script version history for an app.
tags:
- Apps
responses:
'200':
description: Script history returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AppScript'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: setAppScript
summary: Set script for an app
description: Sets the load script content for an app.
tags:
- Apps
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- script
properties:
script:
type: string
description: The load script content.
responses:
'200':
description: Script set successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/AppScript'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/reloads/logs:
parameters:
- $ref: '#/components/parameters/AppId'
get:
operationId: getAppReloadLogs
summary: Retrieve script log metadata
description: Retrieves metadata about available reload script logs for an app.
tags:
- Apps
responses:
'200':
description: Reload log metadata returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReloadLog'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/apps/{appId}/reloads/logs/{reloadId}:
parameters:
- $ref: '#/components/parameters/AppId'
- $ref: '#/components/parameters/ReloadId'
get:
operationId: getAppReloadLog
summary: Retrieve a specific reload log
description: Retrieves the log content for a specific reload of an app.
tags:
- Apps
responses:
'200':
description: Reload log returned successfully.
content:
text/plain:
schema:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
AppScript:
type: object
description: A script version for an app.
properties:
id:
type: string
description: The unique identifier of the script version.
script:
type: string
description: The content of the load script.
createdDate:
type: string
format: date-time
description: When the script version was created.
modifiedDate:
type: string
format: date-time
description: When the script version was last modified.
ReloadLog:
type: object
description: Metadata about an app reload log.
properties:
id:
type: string
description: The reload identifier.
createdDate:
type: string
format: date-time
description: When the reload was executed.
success:
type: boolean
description: Whether the reload was successful.
duration:
type: integer
description: Duration of the reload in milliseconds.
AppDataMetadata:
type: object
description: Data model and reload statistics metadata for an app.
properties:
fields:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the field.
tags:
type: array
items:
type: string
isSystem:
type: boolean
description: Whether this is a system-generated field.
tables:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the table.
noOfRows:
type: integer
description: Number of rows in the table.
noOfFields:
type: integer
description: Number of fields in the table.
noOfKeyFields:
type: integer
description: Number of key fields in the table.
byteSize:
type: integer
description: Table size in bytes.
reloadMeta:
type: object
properties:
cpuTimeSpentMs:
type: integer
description: CPU time spent during last reload in milliseconds.
peakMemoryBytes:
type: integer
description: Peak memory consumption during last reload.
AppUpdate:
type: object
description: Payload to update an existing app.
properties:
name:
type: string
description: The new name for the app.
maxLength: 256
description:
type: string
description: The updated description for the app.
ErrorResponse:
type: object
description: Standard error response.
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
description: The error code.
title:
type: string
description: A short summary of the error.
detail:
type: string
description: A detailed error message.
status:
type: string
description: The HTTP status code as a string.
meta:
type: object
description: Additional error metadata.
additionalProperties: true
AppCreate:
type: object
description: Payload to create a new app.
required:
- name
properties:
name:
type: string
description: The name of the new app.
maxLength: 256
description:
type: string
description: A description for the new app.
spaceId:
type: string
description: The identifier of the space to create the app in. Uses the personal space if omitted.
AppAttributes:
type: object
description: Represents a Qlik Sense analytics application.
properties:
id:
type: string
description: The unique identifier of the app.
name:
type: string
description: The name of the app.
description:
type: string
description: The description of the app.
thumbnail:
type: string
description: The URL to the app thumbnail image.
lastReloadTime:
type: string
format: date-time
description: The date and time of the last successful reload.
createdDate:
type: string
format: date-time
description: The date and time when the app was created.
modifiedDate:
type: string
format: date-time
description: The date and time when the app was last modified.
owner:
type: string
description: The identifier of the app owner.
ownerId:
type: string
description: The identifier of the user who owns the app.
published:
type: boolean
description: Indicates whether the app is published.
publishTime:
type: string
format: date-time
description: The date and time when the app was published.
custom:
type: object
description: Custom properties assigned to the app.
additionalProperties: true
dynamicColor:
type: string
description: Dynamic color expression for the app.
hasSectionAccess:
type: boolean
description: Indicates whether the app uses section access for row-level security.
isDirectQueryMode:
type: boolean
description: Indicates whether the app uses Direct Query mode.
encrypted:
type: boolean
description: Indicates whether the app is encrypted.
originAppId:
type: string
description: The identifier of the origin app if the app was copied or published.
spaceId:
type: string
description: The identifier of the space containing the app.
tenantId:
type: string
description: The identifier of the tenant the app belongs to.
usage:
type: string
description: The intended use of the app.
enum:
- ANALYTICS
- DATA_PREPARATION
- DATAFLOW_PREP
links:
type: object
description: HATEOAS links for the app resource.
properties:
self:
type: object
properties:
href:
type: string
open:
type: object
properties:
href:
type: string
thumbnail:
type: object
properties:
href:
type: string
AppPublish:
type: object
description: Payload to publish an app to a managed space.
required:
- spaceId
properties:
spaceId:
type: string
description: The identifier of the managed space to publish into.
data:
type: string
description: If set to source, the published app includes the source app data.
enum:
- source
attributes:
type: object
properties:
name:
type: string
description: The name of the published app. Defaults to the source app name.
description:
type: string
description: The description of the published app.
AppCopy:
type: object
description: Payload to copy an app.
properties:
name:
type: string
description: The name for the copied app. If omitted, the original name is used with a copy suffix.
spaceId:
type: string
description: The identifier of the space for the copied app. If omitted, the copy is placed in the personal space.
description:
type: string
description: The description for the copied app.
AppDataLineage:
type: object
description: Data lineage information for an app.
properties:
discriminator:
type: string
description: The type of lineage source.
statement:
type: string
description: The load statement from the data connection.
responses:
BadRequest:
description: Bad request. The request body or parameters are invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized. Authentication credentials are missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Forbidden:
description: Forbidden. The user does not have permission for this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Not found. The requested resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
ReloadId:
name: reloadId
in: path
required: true
description: The unique identifier of the reload.
schema:
type: string
AppId:
name: appId
in: path
required: true
description: The unique identifier of the app.
schema:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: OAuth 2.0 bearer token obtained from the Qlik Cloud tenant. Use the /oauth/token endpoint or interactive login to obtain a token.
apiKey:
type: apiKey
in: header
name: Authorization
description: API key generated from the Qlik Cloud Management Console. Passed in the Authorization header as Bearer <api-key>.
externalDocs:
description: Qlik Cloud REST API documentation
url: https://qlik.dev/apis/rest