Data qualities
The Data qualities API enables you to assess the quality of your datasets through asynchronous computations. Computations run in two phases: profiling (analyzing column statistics) and assessment (evaluating quality rules) to produce aggregated quality metrics.
Endpoints
Triggers a full data quality computation for a dataset, running profile calculation followed by data quality
assessment. Returns a computationId that can be used to track progress via the computation status endpoint
(GET /data-governance/data-qualities/computations/{computationId}). The computation runs asynchronously.
Poll the status endpoint until status is SUCCEEDED or FAILED.
Facts
| Rate limit | Tier 2 (100 requests per minute) | |
| Replaces |
Request Body
Required- application/jsonobject
Request payload for triggering a data quality computation. The
connectionIdis optional for file-based datasets. If none of the sampling parameters are provided, the following defaults apply:executionMode: PULLUPsampleMode: ABSOLUTEsampleSize: 1000
application/json properties
- datasetIdstringRequired
The ID of the dataset
- connectionIdstring
The ID of the connection
- sampleModestring
Specifies how the dataset is sampled.
ABSOLUTErepresents a fixed number of rows, whileRELATIVErefers to a percentage of the total dataset rows.Can be one of: "ABSOLUTE""RELATIVE"
- sampleSizeinteger
The actual value of the selected sampling method size (either a fixed number for
ABSOLUTEmode or a percentage forRELATIVEmode). Maximum allowed value forABSOLUTEmode is100000. - executionModestring
Specifies where the data quality computation takes place. In
PUSHDOWNmode, it runs within the Cloud Data Warehouse (e.g., Snowflake, Databricks), whereas inPULLUPmode, it runs in Qlik Cloud.Can be one of: "PUSHDOWN""PULLUP"
Responses
202
Computation triggered. The response body contains the computationId for tracking progress.
- application/jsonobject
Response returned when a data quality computation is successfully triggered.
application/json properties
- computationIdstringRequired
The unique identifier of the triggered computation. Use this value to poll for status.
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
500
Internal Server Error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
503
Requested service is not available.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
// qlik-api has not implemented support for `POST /api/data-governance/data-qualities/computations` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-qualities/computations', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ datasetId: '669144f5aa2d642638ef1dd0', sampleMode: 'ABSOLUTE', sampleSize: 10000, connectionId: '2b855c3d-426c-4aac-90cf-0edf9fc294d3', executionMode: 'PULLUP', }), },)This API is not included yet in qlik-clicurl "https://{tenant}.{region}.qlikcloud.com/api/data-governance/data-qualities/computations" \-X POST \-H "Content-type: application/json" \-H "Authorization: Bearer <access_token>" \-d '{"datasetId":"669144f5aa2d642638ef1dd0","sampleMode":"ABSOLUTE","sampleSize":10000,"connectionId":"2b855c3d-426c-4aac-90cf-0edf9fc294d3","executionMode":"PULLUP"}'Example Response
{ "computationId": "string"}Retrieves the current execution status of a data quality computation. Poll this endpoint after triggering a
computation to determine when results are available. The status field returns one of REQUESTED,
SUBMITTED, PROFILE_REQUESTED, SUCCEEDED, FAILED, or PROFILE_FAILED.
Facts
| Rate limit | Tier 1 (1000 requests per minute) | |
| Replaces |
Path Parameters
- computationIdstringRequired
The unique identifier of the computation, as returned by
POST /data-governance/data-qualities/computations.
Responses
200
Current execution status of the computation.
- application/jsonobject
application/json properties
- statusstringRequired
Can be one of: "PROFILE_REQUESTED""PROFILE_FAILED""REQUESTED""SUBMITTED""SUCCEEDED""FAILED"
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
404
No computation found with the specified computationId.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
500
Internal Server Error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
503
Requested service is not available.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
// qlik-api has not implemented support for `GET /api/data-governance/data-qualities/computations/{computationId}` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-qualities/computations/{computationId}', { 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-qualities/computations/{computationId}" \-H "Authorization: Bearer <access_token>"Example Response
{ "status": "SUCCEEDED"}Retrieves the global quality results for a dataset, showing counts of valid, invalid, empty, and total sample cells.
Facts
| Rate limit | Tier 1 (1000 requests per minute) | |
| Replaces |
Query Parameters
- datasetIdstringRequired
The unique identifier of the dataset.
- connectionIdstring
The unique identifier of the connection.
Responses
200
Global quality results for the dataset, including counts of valid, invalid, empty, and total sample cells per connection.
- application/jsonobject
application/json properties
- datasetIdstringRequired
The unique identifier of the dataset.
- qualitiesarray of objectsRequired
qualities properties
- qualityobjectRequired
quality properties
- emptyintegerRequired
Number of empty sample cells.
- totalintegerRequired
Total number of cells in the sample.
- validintegerRequired
Number of valid sample cells.
- invalidintegerRequired
Number of invalid sample cells.
- updatedAtstringRequired
Timestamp of the most recent data quality computation for this dataset and connection.
-
- connectionIdstringRequired
The unique identifier of the connection.
-
-
400
The request is in incorrect format.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
401
User does not have valid authentication credentials.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
403
User does not have access to the resource.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
404
No quality results found for the specified dataset.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
500
Internal Server Error.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
503
Requested service is not available.
- application/jsonobject
application/json properties
- errorsarray of objects
errors properties
- codestring
- titlestring
- detailstring
-
- traceIdstring
-
// qlik-api has not implemented support for `GET /api/data-governance/data-qualities/global-results` yet.// In the meantime, you can use fetch like this:
const response = await fetch( '/api/data-governance/data-qualities/global-results', { 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-qualities/global-results" \-H "Authorization: Bearer <access_token>"Example Response
{ "datasetId": "string", "qualities": [ { "quality": { "empty": 42, "total": 42, "valid": 42, "invalid": 42, "updatedAt": "2023-10-01T12:00:00Z" }, "connectionId": "string" } ]}