Welcome to the Developer Portal for Qlik Cloud -
Learn more >Get started
Portal introduction
Understand what the developer portal is all about, what you can use the Qlik platform for, and more!Get started with qlik-cli
qlik-cli is a Command Line Interface (CLI) for automating administrative functions using commands and scripts in Qlik Cloud.Build a simple web app
Learn how to create a web app that integrates with your Qlik Sense SaaS tenant.
Featured APIs & tools
Explore some of the featured APIs and tools that'll help you be successful in leveraging the Qlik platform.
// opening an app and log the layout
(async () => {
const enigma = require('enigma.js');
const schema = require('enigma.js/schemas/12.612.0');
const WebSocket = require('ws');
const appId = '<app-id>';
const tenant = '<your-tenant.qlikcloud.com>';
const apiKey = '<your-api-key>';
const url = `wss://${tenant}/app/${appId}`;
const session = enigma.create({
schema,
createSocket: () => new WebSocket(url, {
headers: { "Authorization": `Bearer ${apiKey}` }
}),
});
const global = await session.open();
const app = await global.openDoc(appId);
const appLayout = await app.getAppLayout();
console.log(appLayout);
})();
// the logged app layout
{
"qTitle": "Hello world",
"qFileName": "<app-id>",
"qLastReloadTime": "2020-03-31T16:30:29.248Z",
"qHasScript": true,
"qStateNames": [],
"qMeta": {},
"qLocaleInfo": {
<snip>
},
"qHasData": true,
"qThumbnail": {},
"description": "",
"encrypted": true,
"id": "96d275f8-af88-419b-8090-6f84382efcb8",
"_resourcetype": "app",
"published": false,
"owner": "SOMEONE\in-your-org",
"ownerId": "v42QFF876gzcEzVd_4p9M1zzcXvXl2hm",
"createdDate": "2020-03-31T15:55:45.487Z",
"modifiedDate": "2020-04-29T15:02:47.738Z",
"hassectionaccess": false,
"privileges": [
<snip>
],
"create": [
<snip>
]
}
// render a mekko chart
// index.html
<!doctype html>
<html lang="en">
<meta charset="utf-8">
<title>Mekko chart</title>
<script src="https://unpkg.com/enigma.js@2.7.0/enigma.min.js"></script>
<script src="https://unpkg.com/@nebula.js/stardust@0.6.0"></script>
<script src="https://unpkg.com/@nebula.js/sn-mekko-chart"></script>
<style>
.object {
position: relative;
display: inline-block;
height: 600px;
width: calc(50% - 8px);
}
</style>
<div class="object"></div>
<script src="index.js"></script>
</html>
// index.js
(async () => {
// open app
const schema = await (await fetch('https://unpkg.com/enigma.js/schemas/3.2.json')).json();
const appId = '96d275f8-af88-419b-8090-6f84382efcb8';
const url = `wss://your-tenant.us.qlikcloud.com/app/${appId}?qlik-web-integration-id=foo&qlik-csrf-token=bar`;
const session = window.enigma.create({ schema, url });
const app = await (await session.open()).openDoc(appId);
// configure nucleus
const nuked = window.stardust.embed(app, {
context: { theme: 'light' },
types: [{
name: 'mekko',
load: () => Promise.resolve(window['sn-mekko-chart']),
}],
});
// create a session object
nuked.render({
element: document.querySelector('.object'),
type: 'mekko',
fields: ['Region', 'Product Group Desc', '=Sum([Sales Quantity]*[Sales Price])'],
});
})();

# use the curl command-line tool, pass in your API key and use the
# /items API to list resources of type app
curl -L -H 'authorization: bearer <your-api-key>' \
https://your-tenant.us.qlikcloud.com/api/v1/items?limit=2&resourceType=app
// response from API
{
"data": [
{
"name": "Human Resources",
"spaceId": "5e6a7e70258de50601ef0e81",
"resourceAttributes": {
<snip>
},
"resourceCustomAttributes": {
<snip>
},
"resourceUpdatedAt": "2020-03-12T18:25:05Z",
"resourceType": "app",
"resourceId": "244a9ef3-6c2e-ba04-99fc-fbc5e8f1b6be",
"resourceCreatedAt": "2018-06-26T18:50:05Z",
"id": "5b328addc0fcaa00071ebfe0",
"createdAt": "2018-06-26T18:50:05Z",
"updatedAt": "2020-03-12T18:25:06Z",
"creatorId": "",
"updaterId": "9NwEqfjZ1Kr_tS_GlX5_gEBn9Lf4iKCw",
"tenantId": "xqFQ0k66vaR8f9G7J-vZtHZQkiYrCpct",
"isFavorited": false,
"links": {
<snip>
},
"actions": [
<snip>
],
"collectionIds": [
<snip>
],
"meta": {
<snip>
},
"ownerId": ""
},
{
"name": "Finances",
"description": "The best finance app out there",
"resourceAttributes": {
<snip>
},
"resourceCustomAttributes": null,
"resourceUpdatedAt": "0001-01-01T00:00:00Z",
"resourceType": "app",
"resourceId": "bee73dac-ccd2-4c72-b7f8-87c13ba6b3e6",
"resourceCreatedAt": "2018-11-14T14:00:28Z",
"id": "5bec2a7dbe45076801401657",
"createdAt": "2018-11-14T14:00:29Z",
"updatedAt": "2018-11-14T14:00:29Z",
"creatorId": "LXh3A7VALmT6lP12Fu67iw45Mk3iweaL",
"updaterId": "LXh3A7VALmT6lP12Fu67iw45Mk3iweaL",
"tenantId": "xqFQ0k61vSR8f9G7J-vZtHZQkiYrCpct",
"isFavorited": false,
"links": {
<snip>
},
"actions": [
<snip>
],
"collectionIds": [],
"meta": {
<snip>
},
"ownerId": "LXh3A7VALmT6lP1W1u67iwt5Mk3iweaL"
}
],
"links": {
"self": {
"href": "https://your-tenant.us.qlikcloud.com/api/v1/items?limit=2&resourceType=app"
},
"next": {
"href": "https://your-tenant.us.qlikcloud.com/api/v1/items?limit=2&resourceType=app&&next=FgbbbbAdfaWQAW-wqfb5FBwABQBZXAA"
}
}
}
# use the curl command-line tool, pass in your API key and use the
# /reloads API to schedule an immediate reload of an app
curl -L -H 'authorization: bearer <your-api-key>' \
-X POST -d '{ "appId": "96d275f8-af88-419b-8090-6f84382efcb8" }'
https://your-tenant.us.qlikcloud.com/api/v1/reloads
// response from API
{
"id": "5eba7d70b1454700014624e9",
"appId": "96d275f8-af88-419b-8090-6f84382efcb8",
"tenantId": "xqFQ0k661R8f9G7J-vZtHZQkiYrCpct",
"userId": "v42QFFne6gz2EzVd_4p9M1zzcXvXazhm",
"status": "QUEUED",
"creationTime": "2020-05-12T10:41:52.098Z",
"links": {
"self": {
"href": "https://your-tenant.us.qlikcloud.com.com/api/v1/reloads/5eba7d70b1454700014624e9"
}
}
}
The enigma.js documentation has a lot more awesome stuff for you to learn.
Check out libraries & tools.Go to Libraries & Tools
Looking for more?
Here are a few places to explore.
Here are a few places to explore.