Data products
Data products are packages that group related datasets within a single, curated offering. They enable organizations to organize and govern data by business domain, making it easier for business users to discover and consume trusted, well-documented datasets.
These products can represent subject areas, business functions, or data domains, and are created within spaces.
Overview
The Data products API allows you to automate the complete data product lifecycle:
- Creation: Define and create new data products within spaces.
- Management: Add datasets, configure product metadata, move products between spaces, and manage ownership.
- Activation: Publish data products to make them discoverable and consumable by other services and users.
- Governance: Track changes through changelogs, export documentation, and monitor product activation status.
For a step-by-step guide to using the Data products API, see the Create and activate a data product.
Workflows and key use cases
The API supports three phases of data product management:
Phase 1: Create an empty data product
Initialize a new data product as a container for datasets:
-
Create a data product:
POST /data-governance/data-productsThis endpoint creates an empty data product in the specified space. The data product serves as a package to group and organize related datasets.
NoteAn empty data product is created as a starting point. You must add datasets to it in the next phase.
Product details like name, description, and tags can be specified at creation time.
Phase 2: Manage datasets and data product metadata
Configure the data product and organize its contents:
-
Get a data product:
GET /data-governance/data-products/{dataProductId}Retrieve full data product details, including associated datasets, metadata, and activation status.
-
Update a data product:
PATCH /data-governance/data-products/{dataProductId}Modify data product metadata such as name, description, tags, and key contacts. Use this endpoint to add datasets to your data product.
-
Move a data product:
POST /data-governance/data-products/{dataProductId}/actions/moveReorganize data products by moving them between spaces.
-
List data products:
GET /data-governance/data-productsRetrieve all data products in your tenant to discover available offerings.
Phase 3: Activate and publish the data product
Make the data product available for consumption:
-
Activate a data product:
POST /data-governance/data-products/{dataProductId}/actions/activatePublish the data product, making it discoverable and consumable by other services and users.
-
Deactivate a data product:
POST /data-governance/data-products/{dataProductId}/actions/deactivateRemove a data product from being consumable, stopping it from appearing in marketplace searches.
Activation is required for data product consumers to discover your data product.
Users must have the “Consume data products” permission and at least a “Can view” role in the managed space containing
the data product to see it listed. Using the data product requires additional permissions in the associated spaces.
For more details on permissions and roles, see Data products roles and permissions on Qlik Help.
Common patterns and best practices
Organizing by domain: Group related datasets by business domain (Sales, Finance, Operations) to make data discovery intuitive for business users.
Metadata completeness: Include detailed descriptions and documentation for all data products. Use changelogs to track governance updates and maintain data lineage transparency.
Lifecycle management: Test data products in development spaces before activating them in production. Use deactivation to archive outdated products rather than deleting them.
Access control: Assign key contacts to each product to clarify ownership and support responsibilities for business users.
Endpoints
Creates a new data product with specified metadata, datasets, and governance information. Use this endpoint to package related datasets into a governed, discoverable asset. Requires create permissions in the target space.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Request Body
Required- application/jsonobject
Request payload for creating a data product.
application/json properties
- namestringRequired
Display name of the data product.
- tagsarray of strings
List of tags for the data product.
- readMestring
A readme of the Data Product.
- spaceIdstring
Unique identifier of the space.
- descriptionstring
A description of the Data Product.
- keyContactsarray of objects
List of key contacts for the data product.
keyContacts properties
- rolestring
Role of the key contact in the Data Product.
- userIdstringRequired
Unique identifier of the user.
-
-
Responses
201
Data product created successfully.
- application/jsonobject
application/json properties
- idstringRequired
- qristring
Qlik Resource Identifier (QRI) uniquely identifying the data product across the platform.
- namestringRequired
- tagsarray of strings
- mainIdstring
Primary identifier used for main data product reference.
- readMestring
Documentation in Markdown format providing detailed information about the data product.
- ownerIdstring
Identifier of the user who owns the data product and is responsible for governance.
- qualityobject
quality properties
- validitynumberRequired
- completenessnumberRequired
-
- spaceIdstring
- tenantIdstringRequired
- activatedboolean
Indicates whether the data product is currently activated for consumption.
- createdAtstring
Timestamp when the data product was created in ISO 8601 format.
- createdBystring
Identifier of the user who created the data product.
- updatedAtstring
Timestamp of the most recent update in ISO 8601 format.
- updatedBystring
Identifier of the user who last updated the data product.
- datasetIdsarray of strings
- trustScoreobject
trustScore properties
- scorenumberRequired
- dimensionsarray of objects
dimensions properties
- idstringRequired
- scorenumber
- previousScorenumber
- applicableDatasetsnumberRequired
-
- previousScorenumber
- applicableDatasetsnumberRequired
-
- activatedAtstring
Timestamp when the data product was most recently activated in ISO 8601 format.
- activatedOnarray of strings
List of target environments or platforms where the data product is activated.
- descriptionstring
- glossaryIdsarray of strings
- keyContactsarray of objects
Represents a designated contact person for a data product, optionally with their role.
keyContacts properties
- rolestring
Role of the key contact in the Data Product.
- userIdstringRequired
Unique identifier of the user.
-
- apiConsumableDatasetIdsarray of strings
List of dataset IDs for which API consumption is enabled
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `POST /api/data-governance/data-products` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'ExampleDataProductName', tags: ['exampleTag1', 'exampleTag2'], readMe: 'This is an example readme for the Data Product.', spaceId: 'ExampleSpaceId', description: 'This is an example Data Product.', keyContacts: [ { role: 'Data Steward', userId: 'exampleUserId', }, ], }), },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"name":"ExampleDataProductName","tags":["exampleTag1","exampleTag2"],"readMe":"This is an example readme for the Data Product.","spaceId":"ExampleSpaceId","description":"This is an example Data Product.","keyContacts":[{"role":"Data Steward","userId":"exampleUserId"}]}'Example Response
{ "id": "string", "qri": "string", "name": "string", "tags": [ "string" ], "mainId": "string", "readMe": "string", "ownerId": "string", "quality": { "validity": 42, "completeness": 42 }, "spaceId": "string", "tenantId": "string", "activated": true, "createdAt": "2018-03-20T09:12:28Z", "createdBy": "string", "updatedAt": "2018-03-20T09:12:28Z", "updatedBy": "string", "datasetIds": [ "string" ], "trustScore": { "score": 42, "dimensions": [ { "id": "string", "score": 42, "previousScore": 42, "applicableDatasets": 42 } ], "previousScore": 42, "applicableDatasets": 42 }, "activatedAt": "2018-03-20T09:12:28Z", "activatedOn": [ "string" ], "description": "string", "glossaryIds": [ "string" ], "keyContacts": [ { "role": "Data Steward", "userId": "exampleUserId" } ], "apiConsumableDatasetIds": [ "string" ]}Retrieves the details of the specified data product, including name, description, associated datasets, key contacts, and activation status. Requires read access to the Data Product.
Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Responses
200
Data product details retrieved successfully.
- application/jsonobject
application/json properties
- idstringRequired
- qristring
Qlik Resource Identifier (QRI) uniquely identifying the data product across the platform.
- namestringRequired
- tagsarray of strings
- mainIdstring
Primary identifier used for main data product reference.
- readMestring
Documentation in Markdown format providing detailed information about the data product.
- ownerIdstring
Identifier of the user who owns the data product and is responsible for governance.
- qualityobject
quality properties
- validitynumberRequired
- completenessnumberRequired
-
- spaceIdstring
- tenantIdstringRequired
- activatedboolean
Indicates whether the data product is currently activated for consumption.
- createdAtstring
Timestamp when the data product was created in ISO 8601 format.
- createdBystring
Identifier of the user who created the data product.
- updatedAtstring
Timestamp of the most recent update in ISO 8601 format.
- updatedBystring
Identifier of the user who last updated the data product.
- datasetIdsarray of strings
- trustScoreobject
trustScore properties
- scorenumberRequired
- dimensionsarray of objects
dimensions properties
- idstringRequired
- scorenumber
- previousScorenumber
- applicableDatasetsnumberRequired
-
- previousScorenumber
- applicableDatasetsnumberRequired
-
- activatedAtstring
Timestamp when the data product was most recently activated in ISO 8601 format.
- activatedOnarray of strings
List of target environments or platforms where the data product is activated.
- descriptionstring
- glossaryIdsarray of strings
- keyContactsarray of objects
Represents a designated contact person for a data product, optionally with their role.
keyContacts properties
- rolestring
Role of the key contact in the Data Product.
- userIdstringRequired
Unique identifier of the user.
-
- apiConsumableDatasetIdsarray of strings
List of dataset IDs for which API consumption is enabled
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `GET /api/data-governance/data-products/{dataProductId}` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}', { method: 'GET', headers: { 'Content-Type': 'application/json', }, },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}" \-H "Authorization: Bearer <access_token>"Example Response
{ "id": "string", "qri": "string", "name": "string", "tags": [ "string" ], "mainId": "string", "readMe": "string", "ownerId": "string", "quality": { "validity": 42, "completeness": 42 }, "spaceId": "string", "tenantId": "string", "activated": true, "createdAt": "2018-03-20T09:12:28Z", "createdBy": "string", "updatedAt": "2018-03-20T09:12:28Z", "updatedBy": "string", "datasetIds": [ "string" ], "trustScore": { "score": 42, "dimensions": [ { "id": "string", "score": 42, "previousScore": 42, "applicableDatasets": 42 } ], "previousScore": 42, "applicableDatasets": 42 }, "activatedAt": "2018-03-20T09:12:28Z", "activatedOn": [ "string" ], "description": "string", "glossaryIds": [ "string" ], "keyContacts": [ { "role": "Data Steward", "userId": "exampleUserId" } ], "apiConsumableDatasetIds": [ "string" ]}Partially updates an existing data product using JSON Patch operations. Use this endpoint to modify properties such as name, description, datasets, tags, or key contacts. Changes are tracked in the data product changelog.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Request Body
Required- application/jsonarray of objects
application/json properties
- opstringRequired
Can be one of: "replace"
- pathstringRequired
Can be one of: "/name""/description""/datasetIds""/glossaryIds""/readMe""/keyContacts""/tags""/apiConsumableDatasetIds"
- valuestring|arrayOne of:
- string
Value is expected to be null or a string if the path is either /name, /description, or /readMe
- ArrayOfUniqueStringsarray of strings
- array of objects
Value is expected to be null or an array of object if the path is /keyContacts
-
-
Responses
204
Data product updated successfully.
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `PATCH /api/data-governance/data-products/{dataProductId}` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}', { method: 'PATCH', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify([ { op: 'replace', path: '/name', value: 'string', }, ]), },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}" \-X PATCH \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '[{"op":"replace","path":"/name","value":"string"}]'Permanently removes a data product from the tenant. This action cannot be undone and does not affect the underlying datasets. Requires delete permissions for the data product.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Responses
204
Data product deleted successfully.
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `DELETE /api/data-governance/data-products/{dataProductId}` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}', { method: 'DELETE', headers: { 'Content-Type': 'application/json', }, },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}" \-X DELETE \-H "Authorization: Bearer <access_token>"Activates a data product for publishing and consumption. Once activated, the data product becomes discoverable and accessible to authorized users. Requires publish permissions and valid data product configuration.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Request Body
Required- application/jsonobject
application/json properties
- namestringRequired
Name of the data product to activate.
- tagsarray of strings
List of tags for the data product.
- spaceIdstring
Unique identifier of the space.
- descriptionstring
A description of the data product.
-
Responses
201
Created
- application/jsonobject
application/json properties
- idstringRequired
- qristring
Qlik Resource Identifier (QRI) uniquely identifying the data product across the platform.
- namestringRequired
- tagsarray of strings
- mainIdstring
Primary identifier used for main data product reference.
- readMestring
Documentation in Markdown format providing detailed information about the data product.
- ownerIdstring
Identifier of the user who owns the data product and is responsible for governance.
- qualityobject
quality properties
- validitynumberRequired
- completenessnumberRequired
-
- spaceIdstring
- tenantIdstringRequired
- activatedboolean
Indicates whether the data product is currently activated for consumption.
- createdAtstring
Timestamp when the data product was created in ISO 8601 format.
- createdBystring
Identifier of the user who created the data product.
- updatedAtstring
Timestamp of the most recent update in ISO 8601 format.
- updatedBystring
Identifier of the user who last updated the data product.
- datasetIdsarray of strings
- trustScoreobject
trustScore properties
- scorenumberRequired
- dimensionsarray of objects
dimensions properties
- idstringRequired
- scorenumber
- previousScorenumber
- applicableDatasetsnumberRequired
-
- previousScorenumber
- applicableDatasetsnumberRequired
-
- activatedAtstring
Timestamp when the data product was most recently activated in ISO 8601 format.
- activatedOnarray of strings
List of target environments or platforms where the data product is activated.
- descriptionstring
- glossaryIdsarray of strings
- keyContactsarray of objects
Represents a designated contact person for a data product, optionally with their role.
keyContacts properties
- rolestring
Role of the key contact in the Data Product.
- userIdstringRequired
Unique identifier of the user.
-
- apiConsumableDatasetIdsarray of strings
List of dataset IDs for which API consumption is enabled
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `POST /api/data-governance/data-products/{dataProductId}/actions/activate` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}/actions/activate', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'ExampleDataProductName', tags: ['example'], spaceId: 'ExampleSpaceId', description: 'This is an example data product.', }), },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}/actions/activate" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"name":"ExampleDataProductName","tags":["example"],"spaceId":"ExampleSpaceId","description":"This is an example data product."}'Example Response
{ "id": "string", "qri": "string", "name": "string", "tags": [ "string" ], "mainId": "string", "readMe": "string", "ownerId": "string", "quality": { "validity": 42, "completeness": 42 }, "spaceId": "string", "tenantId": "string", "activated": true, "createdAt": "2018-03-20T09:12:28Z", "createdBy": "string", "updatedAt": "2018-03-20T09:12:28Z", "updatedBy": "string", "datasetIds": [ "string" ], "trustScore": { "score": 42, "dimensions": [ { "id": "string", "score": 42, "previousScore": 42, "applicableDatasets": 42 } ], "previousScore": 42, "applicableDatasets": 42 }, "activatedAt": "2018-03-20T09:12:28Z", "activatedOn": [ "string" ], "description": "string", "glossaryIds": [ "string" ], "keyContacts": [ { "role": "Data Steward", "userId": "exampleUserId" } ], "apiConsumableDatasetIds": [ "string" ]}Deactivates a data product, preventing it from being consumed by other services or users.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Responses
204
No content
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `POST /api/data-governance/data-products/{dataProductId}/actions/deactivate` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}/actions/deactivate', { method: 'POST', headers: { 'Content-Type': 'application/json', }, },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}/actions/deactivate" \-X POST \-H "Authorization: Bearer <access_token>"Exports data product documentation in Markdown format. Use this endpoint to generate documentation for sharing or archiving. Requires read access to the data product.
Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Responses
200
Documentation exported successfully in Markdown format.
- text/markdownstring
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
406
MIME type isn't supported.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
415
Unsupported output format requested.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `GET /api/data-governance/data-products/{dataProductId}/actions/export-documentation` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}/actions/export-documentation', { method: 'GET', headers: { 'Content-Type': 'application/json', }, },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}/actions/export-documentation" \-H "Authorization: Bearer <access_token>"Example Response
"string"Moves a data product from its current space to a different space. Use this endpoint to reorganize data products across workspaces or governance domains. Requires delete permissions in the source space and create permissions in the target space.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Request Body
Required- application/jsonobject
application/json properties
- spaceIdstringRequired
Unique identifier of the space.
-
Responses
204
No content
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `POST /api/data-governance/data-products/{dataProductId}/actions/move` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}/actions/move', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ spaceId: 'exampleSpaceId', }), },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}/actions/move" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"spaceId":"exampleSpaceId"}'Retrieves a paginated history of all notable changes made to a data product. Each changelog entry captures the operation type, affected property, and timestamp. Use this endpoint to track the history of changes or data product evolution over time.
Facts
| Rate limit | Tier 1 (1000 requests per minute) |
Query Parameters
- pageinteger
Page number.
- limitinteger
Maximum number of items to return per page.
- sortstring
Sort order for changelog entries. Use
+createdAtfor oldest first or-createdAtfor newest first. Prefix with+for ascending or-for descending order. Default: -createdAt.Can be one of: "+createdAt""-createdAt"
Path Parameters
- dataProductIdstringRequired
Unique identifier of the data product. Must be a valid GUID assigned when the data product was created.
Responses
200
OK response
- application/jsonobject
application/json properties
- dataarray of objects
data properties
- idstring
- changesarray of objects
changes properties
- pathstring
Can be one of: "/name""/description""/spaceId""/datasetIds""/glossaryIds""/readMe""/keyContacts""/tags""/activatedOn""/apiConsumableDatasetIds"
- valuestring|arrayOne of:
- string
Value is expected to be null or a string if the path is either /name, /description, /readMe or /spaceId.
- ArrayOfUniqueStringsarray of strings
- array of objects
value is expected to be null or an array of object if the path is /keyContacts.
-
- operatorstring
Can be one of: "replace""add""remove"
-
- createdAtstring
Timestamp when this changelog entry was created in ISO 8601 format.
- createdBystring
Identifier of the user who made these changes.
-
- pageinteger
- limitinteger
- linksobject
links properties
- lastobject
last properties
- hrefstring
-
- nextobject
next properties
- hrefstring
-
- prevobject
prev properties
- hrefstring
-
- selfobject
self properties
- hrefstring
-
- firstobject
first properties
- hrefstring
-
-
- pagesinteger
- totalinteger
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
409
The input request conflicts with the current state of the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `GET /api/data-governance/data-products/{dataProductId}/changelogs` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/{dataProductId}/changelogs', { method: 'GET', headers: { 'Content-Type': 'application/json', }, },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/{dataProductId}/changelogs" \-H "Authorization: Bearer <access_token>"Example Response
{ "data": [ { "id": "string", "changes": [ { "path": "/name", "value": "string", "operator": "replace" } ], "createdAt": "2018-03-20T09:12:28Z", "createdBy": "string" } ], "page": 42, "limit": 42, "links": { "last": { "href": "string" }, "next": { "href": "string" }, "prev": { "href": "string" }, "self": { "href": "string" }, "first": { "href": "string" } }, "pages": 42, "total": 42}Generates a URL to access a third-party provider's user interface. Use this endpoint to integrate external services with your data product.
Facts
| Rate limit | Tier 2 (100 requests per minute) |
Query Parameters
- dataSetIdstringRequired
Unique identifier of the dataset.
Responses
200
OK response
- application/jsonobject
application/json properties
- urlstringRequired
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
404
Resource does not exist.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
500
Internal server error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
503
Service temporarily unavailable. Retry the request.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
- statusstring
-
- traceIdstring
-
// qlik-api has not implemented support for `POST /api/data-governance/data-products/actions/generate-provider-url` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-products/actions/generate-provider-url', { method: 'POST', headers: { 'Content-Type': 'application/json', }, },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-products/actions/generate-provider-url" \-X POST \-H "Authorization: Bearer <access_token>"Example Response
{ "url": "string"}