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(s)://<server-name>: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.
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.See Also: Samples
The available QMS API operations are listed under the IQMS, IQMS 2, IQMS3 and IQMS4 interfaces under the PIX.Services.V12, PIX.Services.V12.Api2, PIX.Services.V12.Api3 and PIX.Services.V12.Api4 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.
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.
The interfaces listed above are cumulative, meaning that for QlikView 12.40 IQMS4 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");