QlikView Management Service API
QlikView Management Service API
The QlikView Management Service (QMS) API is exposed as a web service and provides a description of its operations and data objects in WSDL available at http://localhost:4799/QMS/Service by default. All communication uses SOAP over HTTP or HTTPS.
To be able to interact with the QMS API web service, a key referred to as the "service key" must be supplied as a header of the HTTP/HTTPS request of each operation call, except for the
GetTimeLimitedServiceKey operation, which is used to retrieve such a key. This aims to prevent cross-site request forgery (CSRF), see the CSRF article at OWASP.org for more information. The HTTP/HTTPS header containing the service key is called
X-Service-Key. For example, the header with a value can look like this:
Different security layers control access to the different operations. Most operations require membership of a local
group named QlikView Management API which aims to control overall API access. The exceptions to this are the
GetTimeLimitedServiceKey operation and EDX-related operations. The second layer of security aims to control access at an operation level and involves the local groups QlikView Administrator and QlikView EDX as well as the Document Folder Administrator role. These roles are inclusive, where QlikView Administrator provides the highest access level and QlikView EDX the lowest access level, for example, a Document Folder Administrator have access to operations that require QlikView EDX membership, and a QlikView Administrator has access to operations that require Document Folder Administrator membership. The documentation for each operation specifies which exact roles are required to access it.
Using the QlikView Management Service API sample code
The QlikView Server 12 installation contains a couple of examples on how to use the QMS API. It also contains a code example on how to inject the service key into the HTTP headers of the API web service call. This example is written in C# .NET 4.5 and assumes that the application is using WCF to communicate with the API.
Navigating this API reference
The available QMS API operations are listed under the IQMS, IQMS2, IQMS3, IQMS4, IQMS5, IQMS6, IQMS7, and IQMS8 interfaces under the PIX.Services.V12, PIX.Services.V12.Api2, PIX.Services.V12.Api3, PIX.Services.V12.Api4, PIX.Services.V12.Api5, PIX.Services.V12.Api6, PIX.Services.V12.Api7, and PIX.Services.V12.Api8 namespaces. All data objects used by these operations are listed under the three PIX.QMSAPI.DataObjects namespaces. These namespaces are internal QlikView Management Service namespaces and will be used mainly as references in the SOAP XML.
Differences between the IQMS interfaces
There are some differences in the intended use between each released version of the QMS API, where each new version comes with additional methods that were not previously available. You are recommended to use the latest QMS API released for the QlikView version you are running on according to the list below.
- IQMS: QlikView 11.20 and 12.00
- IQMS2: QlikView 12.10
- IQMS3: QlikView 12.30 (November 2018)
- IQMS4: QlikView 12.40 (April 2019)
- IQMS5: QlikView 12.50 (April 2020)
- IQMS6: QlikView 12.60 (May 2021)
- IQMS7: QlikView 12.70 (May 2022)
- IQMS8: QlikView 12.80 (May 2023)
The interfaces listed above are cumulative, meaning that for QlikView 12.60 IQMS6 and all other interfaces are available.
If you downgrade to QlikView 11.20 while your API client is utilizing the IQMS2 namespace, you must change to the IQMS interface and remove all references to IQMS2 methods that are not available in IQMS. If you upgrade to a newer version of QlikView, you can still use your API client with no modifications.
It is recommended to upgrade to the latest QMS API according to the list above.
IQMS.FindEDX returns template tasks but IQMS2.FindEDX does not. If using the IQMS2 interface, use IQMS2.FindTask instead:
apiclient.FindTask(qdsID, TaskType.TemplateTask, "templateTaskName");
Did this page help you?
If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!