Licenses
Licenses define tenant and user entitlements, and can be used in conjunction with the consumption API to get a picture of entitlement usage.
Endpoints
Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Header Parameters
- authorization string
Authentication token
Query Parameters
- filter string
The filter for finding entries.
- limit integer
The preferred number of entries to return.
- orphans boolean
Only return assignments which are 'orphans' in the current tenant.
- page string
The requested page.
- sort string
The field to sort on; can be prefixed with +/- for ascending/descending sort order.
Responses
200
List of assignments.
- application/json object
application/json properties
- data array of objectsRequired
data properties
- type stringRequired
Allotment type
- excess booleanRequired
Assignment excess status.
- created stringRequired
Assignment created date.
- subject stringRequired
Subject
-
- links objectRequired
links properties
- next object
next properties
- href string
link
-
- prev object
prev properties
- href string
link
-
-
-
400
Bad request, invalid query.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.getLicenseAssignments({})qlik license assignment lscurl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/assignments" \-H "Authorization: Bearer <access_token>"Example Response
{ "data": [ { "type": "analyzer", "excess": false, "created": "2020-12-03T09:24:48.114Z", "subject": "qlik\\kalle" }, { "type": false, "created": "2020-12-03T09:24:48.114Z", "subject": "qlik\\nalle" } ], "links": { "next": { "href": "http://license/v1/licenses/assignments?limit=4&page=bmV4dDpGZ0FBQUFkZmFXUUFYOHBUcTlpM1U4UU1YWHZrQUE%3D" }, "prev": { "href": "http://license/v1/licenses/assignments?limit=4&page=cHJldjpGZ0FBQUFkZmFXUUFYOHBUcTlpM1U4UU1YWHZ0QUE%3D" } }}Facts
| Rate limit | Tier 2 (100 requests per minute) |
Header Parameters
- authorization string
Authentication token
Request Body
RequiredList of subjects to allocate assignments for.
- application/json object
application/json properties
- add array of objectsRequired
add properties
- name string Deprecated
User name
- type stringRequired
Allotment type
- userId string Deprecated
User ID
- subject stringRequired
User subject
-
-
Responses
207
Processed. (The status of the individual assignments is found in the response body)
- application/json object
application/json properties
- data array of objectsRequired
data properties
- code string
Error code
- type string
Allotment type
- title string
Error title
- status integerRequired
Response status
- subject stringRequired
Subject
-
-
400
Body is invalid or missing.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.addLicenseAssignments({ add: [ { subject: 'qlik\kalle', type: 'professional', },
{ subject: 'qlik\nalle', type: 'analyzer' }, ],})qlik license assignment add \ --add-name '' \ --add-subject '' \ --add-type '' \ --add-userId ''curl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/assignments/actions/add" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"add":[{"type":"professional","subject":"qlik\\kalle"},{"type":"analyzer","subject":"qlik\\nalle"}]}'Example Response
{ "data": [ { "type": "professional", "status": 201, "subject": "qlik\\kalle" }, { "code": "LICENSES-011", "type": "analyzer", "title": "No available allotment error, No available allotment.", "status": 403, "subject": "qlik\\nalle" } ]}Facts
| Rate limit | Tier 2 (100 requests per minute) |
Header Parameters
- authorization string
Authentication token
Request Body
RequiredList of assignments to delete.
- application/json object
application/json properties
- delete array of objectsRequired
delete properties
- type stringRequired
Allotment type
- subject stringRequired
User subject
-
-
Responses
207
Processed. (The status of the individual assignments is found in the response body)
- application/json object
application/json properties
- data array of objectsRequired
data properties
- code string
Error code
- type string
Allotment type
- title string
Error title
- status integerRequired
Response status
- subject string
Subject
-
-
400
Body is invalid or missing.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.deleteLicenseAssignments({ delete: [ { subject: 'qlik\malik', type: 'analyzer' }, ],})qlik license assignment delete \ --delete-subject '' \ --delete-type ''curl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/assignments/actions/delete" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"delete":[{"type":"analyzer","subject":"qlik\\malik"}]}'Example Response
{ "data": [ { "type": "professional", "status": 200, "subject": "qlik\\malik" }, { "code": "LICENSES-016", "type": "analyzer", "title": "Assignment not found.", "status": 404, "subject": "qlik\\no" } ]}Facts
| Rate limit | Tier 2 (100 requests per minute) |
Header Parameters
- authorization string
Authentication token
Request Body
RequiredList of assignments to update.
- application/json object
application/json properties
- update array of objectsRequired
update properties
- type string
Target assignment type.
- subject stringRequired
User subject, the current or the desired after the patch.
- sourceType string
Current assignment type.
- sourceSubject string
The current user subject, in case that should be patched.
-
-
Responses
207
Processed. (The status of the individual assignments is found in the response body)
- application/json object
application/json properties
- data array of objectsRequired
data properties
- code string
Error code
- type string
Target allotment type.
- title string
Error title
- status integerRequired
HTTP status code indicating the result of the individual assignment operation. A value of 200 represents a successful update, while 201 indicates a new resource was created due to a subject update. Any 400-level status codes indicate an error.
- subject string
Target subject.
- sourceType string
Current allotment type.
- sourceSubject string
Current subject.
-
-
400
Body is invalid or missing.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.updateLicenseAssignments({ update: [ { sourceType: 'analyzer', subject: 'qlik\malik', type: 'professional', }, ],})qlik license assignment update \ --update-sourceSubject '' \ --update-sourceType '' \ --update-subject '' \ --update-type ''curl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/assignments/actions/update" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"update":[{"type":"professional","subject":"qlik\\malik","sourceType":"analyzer"}]}'Example Response
{ "data": [ { "type": "professional", "status": 200, "subject": "qlik\\malik", "sourceType": "analyzer" }, { "code": "LICENSES-016", "title": "Assignment not found.", "status": 404, "subject": "qlik/sara", "sourceType": "analyzer" } ]}Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Header Parameters
- authorization string
Authentication token
Query Parameters
- filter string
The SCIM filter for the query. Filterable property is "endTime".
- limit integer
The preferred number of entries to return.
- page string
The requested page.
- sort string
The field to sort on; can be prefixed with +/- for ascending/descending sort order.
Responses
200
Successful
- application/json object
application/json properties
- data array of objectsRequired
data properties
- id string
ID
- appId string
App ID
- userId string
User ID
- endTime string
Engine session end time.
- duration string
Engine session duration.
- sessionId string
Engine session ID.
- allotmentId string
Allotment ID
- minutesUsed integer
Analyzer capacity minutes consumed.
- capacityUsed integer
Analyzer capacity chunks consumed.
- licenseUsage string
License usage
-
- links objectRequired
links properties
- next object
next properties
- href string
link
-
- prev object
prev properties
- href string
link
-
-
-
400
Bad request, malformed query.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.getLicenseConsumption({})qlik license consumption lscurl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/consumption" \-H "Authorization: Bearer <access_token>"Example Response
{ "data": [ { "id": "string", "appId": "string", "userId": "string", "endTime": "string", "duration": "string", "sessionId": "string", "allotmentId": "string", "minutesUsed": 42, "capacityUsed": 42, "licenseUsage": "string" } ], "links": { "next": { "href": "string" }, "prev": { "href": "string" } }}Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Header Parameters
- authorization string
Authentication token.
Responses
200
Licenses overview info.
- application/json object
application/json properties
- trial booleanRequired
Boolean indicating if it is a trial license.
- valid stringRequired
Period that the license is currently set to be active. Represented as an ISO 8601 time interval with start and end.
- origin stringRequired
Origin of license key.
Can be one of: "Internal""External"
- status stringRequired
Enum with status of license. Only status Ok grants license. access.
Can be one of: "Ok""Blacklisted""Expired"
- product stringRequired
The product the license is valid for.
- updated stringRequired
An ISO 8601 timestamp for when the license was last updated.
- version stringRequired
The version of the license definition, used to track whether changes have propagated. Typically a content hash; its exact form depends on the origin.
- validTime string
An ISO 8601 timestamp interval representing the same validity period as "valid", but with second precision instead of day precision.
- allotments array of objectsRequired
allotments properties
- name stringRequired
Can be one of: "professional""analyzer""analyzer_time"
- units integerRequired
- overage integer
Overage value; -1 means unbounded overage.
- unitsUsed integerRequired
- usageClass stringRequired
-
- changeTime string
An ISO 8601 timestamp for when the license was last changed.
- customerId string
Customer ID
- licenseKey stringRequired
- parameters array of objectsRequired
The license parameters.
parameters properties
- name stringRequired
Parameter set (provision) name.
- valid stringRequired
Time interval for parameter validity.
- access object
Parameters for licenses to control access to the parameters.
access properties
- allotment string
Name of an allotment that the user must have access to. to
-
- values object
Parameter values
-
- licenseType string
- licenseNumber stringRequired
- latestValidTime string
An ISO 8601 timestamp for when the latest time the license has been known to be valid, a missing value indicates the indefinite future.
- secondaryNumber stringRequired
The secondary number of a definition.
- capabilityBankId string
the capability bank id
- payingCustomerId string
Customer ID of the license's parent, when this license is part of a parent-child license relationship. Omitted when there is no parent
- parentLicenseNumber string
the parent number of the license. can be shared by multiple license numbers
-
400
invalid tenant
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
404
License not found.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.getLicenseOverview()qlik license overviewcurl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/overview" \-H "Authorization: Bearer <access_token>"Example Response
{ "trial": false, "valid": "2018-01-01/2018-12-31", "origin": "Internal", "status": "Ok", "product": "Qlik Sense Enterprise SaaS", "version": "A1B2-C3D4-E5F6-G7H8-J9K0", "allotments": [ { "name": "analyzer_time", "units": 300, "overage": 100, "unitsUsed": 242, "usageClass": "time" }, { "name": "professional", "units": 200, "unitsUsed": 15, "usageClass": "assigned" } ], "licenseKey": "hejhbGciOiJSUzUxMiIsInR5cCI6IkpXVCIsImtpZCI6IktFWTEifQ.eyJqdGkiOiIxZjZkZTc0Zi04MDcyLTRjMTQtYjc1OS02ZjlkYmJmYWM5MjAiLCJsaWNlbnNlIjoiOTk5OTAwMDAwMDAwMTIzNCJ9.fwa6l6gY1MR_Ja2OMnV65V68fbzQYW5OAKUFnLfG9oZjNAbjhdDkZvS2S2zHaBnSrSva1ARh5iq_S0KTBOKKcJJDTb7jRVURyaAvbCuBDk_0ITrUudHaT9U_Mc9EKkfT8mR6vthhZxVzEhyYPFS7gDw7M6bav2ntpDsoJFPgous", "parameters": [ { "name": "qlikAlerting", "valid": "./.", "values": { "saas_alerting": "FULL" } } ], "licenseNumber": "9999000000001204", "secondaryNumber": "12345"}Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Header Parameters
- authorization string
Authentication token
Responses
200
Auto assign settings.
- application/json object
application/json properties
- autoAssignAnalyzer boolean
If analyzer users are available, they will be automatically assigned. Otherwise, analyzer capacity will be assigned, if available.
- autoAssignProfessional boolean
If professional users are available, they will be automatically assigned. Otherwise, analyzer capacity will be assigned, if available.
-
400
Missing or invalid tenant.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Not allowed
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.getLicenseSettings()qlik license settings lscurl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/settings" \-H "Authorization: Bearer <access_token>"Example Response
{ "autoAssignAnalyzer": true, "autoAssignProfessional": false}Facts
| Rate limit | Tier 2 (100 requests per minute) |
Header Parameters
- authorization string
Authentication token
Request Body
Dynamic assignment settings for professional and analyzer users. If professional users and analyzer users are both set, professional users will be automatically assigned, if available. Otherwise, analyzer users will be assigned. If neither of those users are available, analyzer capacity will be assigned, if available.
- application/json object
application/json properties
- autoAssignAnalyzer boolean
If analyzer users are available, they will be automatically assigned. Otherwise, analyzer capacity will be assigned, if available.
- autoAssignProfessional boolean
If professional users are available, they will be automatically assigned. Otherwise, analyzer capacity will be assigned, if available.
-
Responses
200
Auto assign settings.
- application/json object
application/json properties
- autoAssignAnalyzer boolean
If analyzer users are available, they will be automatically assigned. Otherwise, analyzer capacity will be assigned, if available.
- autoAssignProfessional boolean
If professional users are available, they will be automatically assigned. Otherwise, analyzer capacity will be assigned, if available.
-
400
Missing or invalid tenant.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Action not allowed.
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
403
Insufficient access
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.updateLicenseSettings({ autoAssignAnalyzer: true,})qlik license settings updatecurl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/settings" \-X PUT \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"autoAssignAnalyzer":true,"autoAssignProfessional":false}'Example Response
{ "autoAssignAnalyzer": true, "autoAssignProfessional": false}Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Header Parameters
- authorization string
Authentication token
Responses
200
License status info.
- application/json object
application/json properties
- type stringRequired
Type of license key.
Can be one of: "Signed""Plain""2.0"
- trial booleanRequired
Boolean indicating if it is a trial license.
- valid stringRequired
Period that the license is currently set to be active. Represented as an ISO 8601 time interval with start and end.
- origin stringRequired
Origin of license key.
Can be one of: "Internal""External"
- status stringRequired
Enum with status of license. Only status Ok grants license. access.
Can be one of: "Ok""Blacklisted""Expired""Missing"
- product stringRequired
The product the license is valid for.
- deactivated booleanRequired
Boolean indicating if the license is deactivated.
- extensionStatus stringRequired
Enum with extension status of license. access.
Can be one of: "Unavailable""Pending""Available"
-
400
invalid tenant
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
401
Unauthorized (invalid token).
- application/json object
application/json properties
- error string DeprecatedRequired
Error type
- errors array of objectsRequired
errors properties
- code stringRequired
Error code
- title stringRequired
Error title
- detail string
Additional error detail.
-
- message string DeprecatedRequired
Error message
-
import { createQlikApi } from '@qlik/api'
const qlik = createQlikApi({ hostConfig: { host: 'https://{tenant}.{region}.qlikcloud.com', apiKey: '<access-token>', },})
await qlik.licenses.getLicenseStatus()qlik license statuscurl "https://{tenant}.{region}.qlikcloud.com/api/v1/licenses/status" \-H "Authorization: Bearer <access_token>"Example Response
{ "type": "Signed", "trial": false, "valid": "2018-01-01/2018-12-31", "origin": "Internal", "status": "Ok", "product": "Qlik Sense Business", "extensionStatus": "Unavailable"}