Skip to main content Skip to complementary content

QlikView Management Service API

Introduction

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:

X-Service-Key: rPnBL6zlbvNr5k2nowI919EJkkOeHsi8

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.

The available QMS API operations are listed under the IQMS, IQMS2, IQMS3, IQMS4, IQMS5, IQMS6, IQMS7, IQMS8, and IQMS9 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, PIX.Services.V12.Api8, and PIX.Services.V12.Api9 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)
  • IQMS9: QlikView 12.90 (May 2024)

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");

See Also

Reference

PIX.QMSAPI.DataObjects
PIX.QMSAPI.DataObjects.CALs
PIX.QMSAPI.DataObjects.Triggers

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!

Join the Analytics Modernization Program

Remove banner from view

Modernize without compromising your valuable QlikView apps with the Analytics Modernization Program. Click here for more information or reach out: ampquestions@qlik.com