System Integration with Qlik’s APIs — Why and How
Tags: api, qlik
Published: 2018-08-30 03:35:57

---
title: System Integration with Qlik’s APIs — Why and How
published: true
description: 
tags: API, Qlik
---

>First of all, this article is not a “how to” tutorial but rather a white paper. It is NOT MEANT FOR TECHNICAL USERS. If you understand the value of APIs and how to use Qlik’s APIs, this is not for you.


**_______________________Qlik Pro’s Stop Here_________________________**


“What are Qlik’s APIs?” 🤔

“Why would someone want to use an API?” 🤔

“What can you build using Qlik’s APIs.” 🤔

>If you have these questions, you may find this article helpful. This blog is about various types of system integration using Qlik Sense APIs.

###So let’s dive in. With APIs, you can do amazing things. But wait, what is an API?

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*FZ3oq1iOJfMl0_x8VFgPIw.png)

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*9djymVQcqlaN0lWsDtbewQ.png)

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*6UNxUlrS_taO6h0uZa36pA.png)

>Behind every click, various events are triggered on the back-end.

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*VghBhnFTIHy1fqofKBgjFQ.png)

>The APIs are the bridge between the front and the back.

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*1fcG3qHoAzWrgXwXuNzyng.png)

>Usually, user interactions are restricted to front-end elements: buttons, charts, filters, etc.

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*FokNr-uBKh5HwBn2YPOj7w.png)

>So when a piece of software implements APIs, it means interactions with the back-end are no longer limited to the software’s native front-end, which opens many possibilities.

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*ciZOzGjf4T5JSVYsk3EIKw.png)

###Now that you know what an API is…what can you build with Qlik Sense APIs?

APIs have always been an important and unique part of Qlik. They are the building blocks of mashups and extensions. If you don’t know about those, below is a brief explanation:
![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*GlU82u9waWIu6v9WeqE1Jw.png)

But since this article is about system integration, we will focus on mashups.

>Here is a random fact: you can build a mashup with extensions. That way, technically you put the visualization you put into Qlik system into your own system.

####Mashup Lv.1 — build a webpage of iframes
This is probably the simplest kind of system integration. Every chart or table in Qlik Sense has an ID and an URL, which can be found in [Qlik Sense DevHub](https://help.qlik.com/en-US/sense-developer/June2018/Subsystems/Dev-Hub/Content/dev-hub-at-a-glance.htm) -> single configurator portal.
![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*lCf6o99hif-Ii5vAZmOyEA.png)

If you copy the URL into your browser, you can see the object on the page. A single line of code extracted from the DevHub can, therefore, be added into an existing website to embed a Qlik chart to a web page. Put multiple iframes onto an html file and you have a dashboard.

>So in less than 1 minute, you can build a web page with four lines of code copied from DevHub. 👍

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*ysdWbTLCoQ6Jl8j5jsaw-Q.png)

Required skill level: ★☆☆☆☆

####Mashup Lv.2 — mashup with APIs and libraries
![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*qCi-Lhi5uO77ztGtz66FaA.png)
<figcaption>See how it is implemented in the [Walkers Dashboard](http://playground.qlik.com/liveshowcase/playground-zombie/main.html)</figcaption>

The Walkers Dashboard is an example on [Qlik Playground](http://playground.qlik.com/) created by [Francis Kabinoff](https://github.com/fkabinoff) which uses Qlik charts within a web page showing stats on the tv show The Walking Dead. It is a typical mashup built with the Qlik Sense [capability APIs](https://help.qlik.com/en-US/sense-developer/1.0/Subsystems/Workbench/Content/BuildingWebsites/API/qswb_mup_apireference.htm). Different from an iframe, charts are rendered using a Qlik javascript library to control the user interaction and object retrieval. This means faster and cleaner execution, customizable elements and other features.

There is an easy way to create and host your own mashup too. In Qlik Sense DevHub, you can find a tool called [Mashup Editor](https://help.qlik.com/en-US/sense-developer/June2018/Subsystems/Dev-Hub/Content/MashupEditor/mashup-editor-overview.htm). It allows users to design their own web application by dragging and dropping Qlik objects onto predefined templates. But if you want to build something different, like The Walker Dashboard, you need to learn javascript and html.

Required skill level: ★★☆☆☆

####Mashup Lv.3 — building a Qlik dashboard which looks completely non-related to Qlik
![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*WS5K5tnKzIMINrVPi0MOaA.png)
<figcaption>See how it is implemented in the<a href="http://playground.qlik.com/liveshowcase/maple-leafs/index.htm">Maple Leafs Dashboard</a></figcaption>

Qlik Sense is business intelligence software, but not only business intelligence software. By using APIs, users may create their own visualizations, on top of a Qlik application, without using charts from Qlik. In this use case, Qlik is no longer a visualization server. It is a data warehouse plus data engine (Qlik’s Associative Engine) behind your dashboard. It handles the data processing, storage and association part but lets third-party technologies take care of the presentation part.
>If you are doing this, you are entitled to call yourself a Qlik Pro. 😁 The Qlik Sense DevHub Mashup Editor won’t help you at this level. You have to write every line of front-end code by yourself.

Required skill level: ★★★☆☆

####Mashup Lv.4 — using enigma.js and engine API
Most Qlik developers do not use [enigma.js](https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/APIs/Content/enigmajs/enigmajs-introduction.htm) and the [engine API](https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/EngineAPI/Content/introducing-engine-API.htm). For many, the capability API is enough for most use cases.

Enigma.js is a wrapper library on top of the engine API. While the capability APIs are run from a user’s browser, enigma.js can be run on an application server to interact with Qlik before serving a web page to a user. In fact, the capability API also implements enigma.js inside of an Angular application packed using require.js.

![Alt text of image](https://cdn-images-1.medium.com/max/1600/0*0wY-WYnmMD-PsxSL)
The engine API is the communication protocol between the Qlik Sense server and the Qlik Sense client. The [Engine API Explorer](https://help.qlik.com/en-US/sense-developer/June2018/Subsystems/Dev-Hub/Content/EngineApiExplorer/engine-api-explorer.htm) is a tool in DevHub where you can learn how the front-end talks to the back-end. Unless you are building your own support library, Enigma.js should cover most of your integration needs.

Required skill level: ★★★★☆

####Mashup(?) Lv.MAX — leveraging on the engine itself
When you know the technology inside out, you may want to use the data engine (aka Qlik’s Associative Engine) outside of the business intelligence space. Examples speak for themselves, check them out...

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*0013QeegwbHZeZpkgE4Yig.png)
<figcaption>See how it is implemented in the<a href="http://opensrc.axisgroup.com/emissions/">Boston Building Emissions By Axis Group</a></figcaption>

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*iT_tkVFOP7IDletZwXThcQ.png)
<figcaption><a href="http://playground.qlik.com/liveshowcase/hack-challenge-slalom/index.html">C40 cities building energy by Slalom</a></figcaption>

![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*h7zXqGZFq4YWnrY1-rcoQw.png)
<figcaption><a href="https://www.qlik.com/us/products/qlik-core">Qlik Core</a></figcaption>

Then there are some use cases that are difficult to define — they are certainly not mashups, some of them are not even web applications.

__For example, a business intelligence chatbot…__
![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*NdQmvB4llgNaC6YDa8NGFA.png)
<figcaption><a href="http://branch.qlik.com/#!/project/5a2fb8474666f1a641bc8e76">Qlik BotNet</a></figcaption>

__And a mirror…__
{% twitter 981633788244647937 %}

__And many people don’t know this —there is a Qlik application behind [branch.qlik.com](http://branch.qlik.com/).__ The application handles search and content management specifically. Qlik Branch is an open source project, you can find the code [here](http://branch.qlik.com/#!/project/5672a4ef2a6e57d03cd9b783).
![Alt text of image](https://cdn-images-1.medium.com/max/1600/1*glZM5DXXaqIZU6QZinSt7A.png)
<figcaption><a href="http://branch.qlik.com/#!/">Qlik Branch</a></figcaption>

Required skill level: ★★★★★

###So, how should you get started?
Just start experimenting! There are resources and examples on [Qlik Playground](http://playground.qlik.com/), open source examples on [Qlik Branch](http://branch.qlik.com/#!/) and plenty of community members on our [Qlik Branch Slack](http://bit.ly/BranchSlack). You can also find blogs and Youtube videos about Qlik’s APIs almost effortlessly online.
Let me know your thoughts.
Happy coding. And shout out to all of the amazing developers out there.
Cheers.
— Wu