Extensions
Extensions is a powerful capability in Qlik Sense which allows third-party visualizations and other presentation objects to be used in the Qlik Sense client.
Endpoints
Skip to sectionGET | /v1/extensions |
POST | /v1/extensions |
GET | /v1/extensions/{id} |
PATCH | /v1/extensions/{id} |
DELETE | /v1/extensions/{id} |
GET | /v1/extensions/{id}/file |
GET | /v1/extensions/{id}/file/{filepath} |
Lists all extensions.
Facts GET /v1/extensions
Rate limit required | Tier 1 (1000 requests per minute) |
Responses GET /v1/extensions
200 application/json | OK. Lists all extensions. |
GET/v1/extensions
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/extensions
{
"data": [
{
"id": "string",
"file": {},
"icon": "string",
"name": "string",
"tags": [],
"type": "string",
"author": "string",
"bundle": {
"id": "string",
"name": "string",
"description": "string"
},
"userId": "string",
"bundled": true,
"license": "string",
"preview": "string",
"version": "string",
"checksum": "string",
"homepage": "string",
"keywords": "string",
"loadpath": "string",
"supplier": "string",
"tenantId": "string",
"updateAt": "2023-11-29T00:09:24.450Z",
"createdAt": "2023-11-29T00:09:24.450Z",
"supernova": true,
"deprecated": "2023-11-29T00:09:24.450Z",
"repository": "string",
"description": "string",
"qextVersion": "string",
"dependencies": {},
"qextFilename": "string"
}
]
}
Creates a new extension. If a file is provided, the data field is not required.
Facts POST /v1/extensions
Rate limit required | Tier 2 (100 requests per minute) |
Request Body POST /v1/extensions
data multipart/form-data | The extension model. |
file multipart/form-data string<binary> | Extension archive. |
Responses POST /v1/extensions
201 application/json | Created. Creates a new extension and returns it. |
409 application/json | Conflict. Resource with same unique identity already exists. |
415 application/json | Unsupported media type. Body of the payload is not a valid JSON object. |
422 application/json | Unprocessable entity. Validation error. |
default application/json | Unexpected error. |
POST/v1/extensions
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions" \
-X POST \
-H "Authorization: Bearer <API-key>" \
-H "Content-type: multipart/form-data" \
-F "file=@/path/to/file" \
-d '{"id":"string","file":{},"icon":"string","name":"string","tags":[],"type":"string","author":"string","bundle":{"id":"string","name":"string","description":"string"},"userId":"string","bundled":true,"license":"string","preview":"string","version":"string","checksum":"string","homepage":"string","keywords":"string","loadpath":"string","supplier":"string","tenantId":"string","updateAt":"2023-11-29T00:09:24.450Z","createdAt":"2023-11-29T00:09:24.450Z","supernova":true,"deprecated":"2023-11-29T00:09:24.450Z","repository":"string","description":"string","qextVersion":"string","dependencies":{},"qextFilename":"string"}'
Request POST /v1/extensions
{
"id": "string",
"file": {},
"icon": "string",
"name": "string",
"tags": [],
"type": "string",
"author": "string",
"bundle": {
"id": "string",
"name": "string",
"description": "string"
},
"userId": "string",
"bundled": true,
"license": "string",
"preview": "string",
"version": "string",
"checksum": "string",
"homepage": "string",
"keywords": "string",
"loadpath": "string",
"supplier": "string",
"tenantId": "string",
"updateAt": "2023-11-29T00:09:24.450Z",
"createdAt": "2023-11-29T00:09:24.450Z",
"supernova": true,
"deprecated": "2023-11-29T00:09:24.450Z",
"repository": "string",
"description": "string",
"qextVersion": "string",
"dependencies": {},
"qextFilename": "string"
}
Response POST /v1/extensions
{
"id": "string",
"file": {},
"icon": "string",
"name": "string",
"tags": [],
"type": "string",
"author": "string",
"bundle": {
"id": "string",
"name": "string",
"description": "string"
},
"userId": "string",
"bundled": true,
"license": "string",
"preview": "string",
"version": "string",
"checksum": "string",
"homepage": "string",
"keywords": "string",
"loadpath": "string",
"supplier": "string",
"tenantId": "string",
"updateAt": "2023-11-29T00:09:24.450Z",
"createdAt": "2023-11-29T00:09:24.450Z",
"supernova": true,
"deprecated": "2023-11-29T00:09:24.450Z",
"repository": "string",
"description": "string",
"qextVersion": "string",
"dependencies": {},
"qextFilename": "string"
}
Returns a specific extension.
Facts GET /v1/extensions/{id}
Rate limit required | Tier 1 (1000 requests per minute) |
Path Parameters GET /v1/extensions/{id}
id required string | Extension identifier or its qextFilename. |
Responses GET /v1/extensions/{id}
200 application/json | OK. Returns extension with {id}. |
403 application/json | Forbidden. User is not authorized to read extension with {id}. |
404 application/json | Not found. Could not find the extension with {id}. |
410 application/json | Gone. Extension with {id} has been deleted. |
GET/v1/extensions/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions/{id}" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/extensions/{id}
{
"id": "string",
"file": {},
"icon": "string",
"name": "string",
"tags": [],
"type": "string",
"author": "string",
"bundle": {
"id": "string",
"name": "string",
"description": "string"
},
"userId": "string",
"bundled": true,
"license": "string",
"preview": "string",
"version": "string",
"checksum": "string",
"homepage": "string",
"keywords": "string",
"loadpath": "string",
"supplier": "string",
"tenantId": "string",
"updateAt": "2023-11-29T00:09:24.450Z",
"createdAt": "2023-11-29T00:09:24.450Z",
"supernova": true,
"deprecated": "2023-11-29T00:09:24.450Z",
"repository": "string",
"description": "string",
"qextVersion": "string",
"dependencies": {},
"qextFilename": "string"
}
Updates a specific extension with provided data. If a file is provided, the data field is not required.
Facts PATCH /v1/extensions/{id}
Rate limit required | Tier 2 (100 requests per minute) |
Path Parameters PATCH /v1/extensions/{id}
id required string | Extension identifier or its qextFilename. |
Request Body PATCH /v1/extensions/{id}
data multipart/form-data | The extension model. |
file multipart/form-data string<binary> | Extension archive. |
Responses PATCH /v1/extensions/{id}
200 application/json | OK. Extension has been updated. |
403 application/json | Forbidden. User is not authorized to update extension with {id}. |
404 application/json | Not found. Could not find the extension with {id}. |
409 application/json | Conflict. Resource with same unique identity already exists. |
415 application/json | Unsupported media type. Body of the payload is not a valid JSON object. |
422 application/json | Unprocessable entity. Validation error. |
default application/json | Unexpected error. |
PATCH/v1/extensions/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions/{id}" \
-X PATCH \
-H "Authorization: Bearer <API-key>" \
-H "Content-type: multipart/form-data" \
-F "file=@/path/to/file" \
-d '{"id":"string","file":{},"icon":"string","name":"string","tags":[],"type":"string","author":"string","bundle":{"id":"string","name":"string","description":"string"},"userId":"string","bundled":true,"license":"string","preview":"string","version":"string","checksum":"string","homepage":"string","keywords":"string","loadpath":"string","supplier":"string","tenantId":"string","updateAt":"2023-11-29T00:09:24.450Z","createdAt":"2023-11-29T00:09:24.450Z","supernova":true,"deprecated":"2023-11-29T00:09:24.450Z","repository":"string","description":"string","qextVersion":"string","dependencies":{},"qextFilename":"string"}'
Request PATCH /v1/extensions/{id}
{
"id": "string",
"file": {},
"icon": "string",
"name": "string",
"tags": [],
"type": "string",
"author": "string",
"bundle": {
"id": "string",
"name": "string",
"description": "string"
},
"userId": "string",
"bundled": true,
"license": "string",
"preview": "string",
"version": "string",
"checksum": "string",
"homepage": "string",
"keywords": "string",
"loadpath": "string",
"supplier": "string",
"tenantId": "string",
"updateAt": "2023-11-29T00:09:24.450Z",
"createdAt": "2023-11-29T00:09:24.450Z",
"supernova": true,
"deprecated": "2023-11-29T00:09:24.450Z",
"repository": "string",
"description": "string",
"qextVersion": "string",
"dependencies": {},
"qextFilename": "string"
}
Response PATCH /v1/extensions/{id}
{
"id": "string",
"file": {},
"icon": "string",
"name": "string",
"tags": [],
"type": "string",
"author": "string",
"bundle": {
"id": "string",
"name": "string",
"description": "string"
},
"userId": "string",
"bundled": true,
"license": "string",
"preview": "string",
"version": "string",
"checksum": "string",
"homepage": "string",
"keywords": "string",
"loadpath": "string",
"supplier": "string",
"tenantId": "string",
"updateAt": "2023-11-29T00:09:24.451Z",
"createdAt": "2023-11-29T00:09:24.451Z",
"supernova": true,
"deprecated": "2023-11-29T00:09:24.451Z",
"repository": "string",
"description": "string",
"qextVersion": "string",
"dependencies": {},
"qextFilename": "string"
}
Deletes a specific extension.
Facts DELETE /v1/extensions/{id}
Rate limit required | Tier 2 (100 requests per minute) |
Path Parameters DELETE /v1/extensions/{id}
id required string | Extension identifier or its qextFilename. |
Responses DELETE /v1/extensions/{id}
204 object | No content. Soft deletes the extension. |
403 application/json | Forbidden. User is not authorized to delete extension with {id}. |
404 application/json | Not found. Could not find the extension with {id}. |
410 application/json | Gone. Extension with {id} has been deleted. |
DELETE/v1/extensions/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions/{id}" \
-X DELETE \
-H "Authorization: Bearer <API-key>"
Downloads the extension as an archive.
Facts GET /v1/extensions/{id}/file
Rate limit required | Tier 1 (1000 requests per minute) |
Path Parameters GET /v1/extensions/{id}/file
id required string | Extension identifier or its qextFilename. |
Responses GET /v1/extensions/{id}/file
200 object | OK. Extension exists. Returns the extension archive. |
403 application/json | Forbidden. User is not authorized to read extension with {id}. |
404 application/json | Not found. Could not find the extension with {id}. |
410 application/json | Gone. Extension with {id} has been deleted. |
GET/v1/extensions/{id}/file
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions/{id}/file" \
-H "Authorization: Bearer <API-key>"
Downloads a file from the extension archive.
Facts GET /v1/extensions/{id}/file/{filepath}
Rate limit required | Tier 1 (1000 requests per minute) |
Path Parameters GET /v1/extensions/{id}/file/{filepath}
filepath required string | Path to the file archive for the specified extension archive. Folders separated with forward slashes. |
id required string | Extension identifier or its qextFilename. |
Responses GET /v1/extensions/{id}/file/{filepath}
200 object | OK. Extension exists and the file specified exists. Returns the specific file. |
403 application/json | Forbidden. User is not authorized to read extension with {id}. |
404 application/json | Not found. Could not find the extension with {id} or the file does not exist in the archive. |
410 application/json | Gone. Extension with {id} has been deleted. |
GET/v1/extensions/{id}/file/{filepath}
curl "https://your-tenant.us.qlikcloud.com/api/v1/extensions/{id}/file/{filepath}" \
-H "Authorization: Bearer <API-key>"
bundleMeta
Object containing meta data regarding the bundle the extension belongs to. If it does not belong to a bundle, this object is not defined.
Properties
id string | Unique identifier of the bundle. |
name string | Name of the bundle. |
description string | Description of the bundle. |
error
An error object.
Properties
meta | Object containing meta data regarding an error. It does not necessarily contain all the properties. |
title required string | Title of the HTTP status code. |
source object | Optional JSON patch object pointing to an invalid property. |
status number | The HTTP status code. |
extension
objectThe extension model.
Properties
id string | No description |
file object | The file that was uploaded with the extension. |
icon string | Icon to show in the client. |
name string | The display name of this extension. |
tags Array<string> | List of tags. |
type string | The type of this extension (visualization, etc.). |
author PII data string | Author of the extension. |
bundle | Object containing meta data regarding the bundle the extension belongs to. If it does not belong to a bundle, this object is not defined. |
userId string | No description |
bundled boolean | If the extension is part of an extension bundle. |
license string | Under which license this extension is published. |
preview string | Path to an image that enables users to preview the extension. |
version string | Version of the extension. |
checksum string | Checksum of the extension contents. |
homepage string | Home page of the extension. |
keywords string | Keywords for the extension. |
loadpath string | Relative path to the extension's entry file, defaults to |
supplier string | Supplier of the extension. |
tenantId string | No description |
updateAt string<date> | No description |
createdAt string<date> | No description |
supernova boolean | If the extension is a supernova extension or not. |
deprecated string<date> | A date noting when the extension was deprecated. |
repository string | Link to the extension source code. |
description string | Description of the extension. |
qextVersion string | The version from the qext file that was uploaded with this extension. |
dependencies object | Map of dependencies describing version of the component it requires. |
qextFilename string | The name of the qext file that was uploaded with this extension. |
extensions
objectProperties
data required | No description |
meta
Object containing meta data regarding an error. It does not necessarily contain all the properties.
Properties
stack string | Full stack trace of the error that was raised. |
message string | A more detailed message explaining the error. |
resourceName string | Name of the resource related to the error. If there is a conflict, it is the name of the model attempting to be created. |