API: Data Quality
Scans, column profiles, tests, issues, and quality scores. All endpoints require authentication unless noted. 25 endpoints.
GET /api/data-quality/freshness
Section titled “GET /api/data-quality/freshness”Get table freshness information
Responses: 200
GET /api/data-quality/issues
Section titled “GET /api/data-quality/issues”List quality issues
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
status |
"open" | "ignored" | "fixed" | "in_progress" |
no | |
severity |
"critical" | "high" | "medium" | "low" | "info" |
no | |
issueType |
string | no | |
tableName |
string | no | |
limit |
number | no |
Responses: 200
PUT /api/data-quality/issues/{id}/status
Section titled “PUT /api/data-quality/issues/{id}/status”Update issue status
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
status |
"open" | "ignored" | "fixed" | "in_progress" |
no | |
resolutionNote |
string | no |
Responses: 200
GET /api/data-quality/issues/summary
Section titled “GET /api/data-quality/issues/summary”Get issue summary by status/severity/type
Responses: 200
GET /api/data-quality/profiles/{tableName}
Section titled “GET /api/data-quality/profiles/{tableName}”Get latest column profiles for a table
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
tableName |
string | yes |
Responses: 200
GET /api/data-quality/report-status
Section titled “GET /api/data-quality/report-status”Get quality status for tables used in a report
Returns aggregated quality score, freshness status, and issues for the specified tables. Used by Report Builder to show data quality warnings.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
tableNames |
string | no | Comma-separated list of table names |
modelId |
string | no | |
reportId |
string | no |
Responses: 200
POST /api/data-quality/scan
Section titled “POST /api/data-quality/scan”Trigger a manual data quality scan
Responses: 200
GET /api/data-quality/scans
Section titled “GET /api/data-quality/scans”Get scan history
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
tableName |
string | no | |
limit |
number | no |
Responses: 200
POST /api/data-quality/scans
Section titled “POST /api/data-quality/scans”Start a new data quality scan for a table
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
modelId |
string | no | |
tableId |
string | no | |
sourceId |
string | no | |
schemaName |
string | no | |
tableName |
string | yes | |
config |
object | no |
Responses: 200
GET /api/data-quality/scans/{scanId}
Section titled “GET /api/data-quality/scans/{scanId}”Get scan by ID
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
scanId |
string | yes |
Responses: 200
GET /api/data-quality/scans/{scanId}/profiles
Section titled “GET /api/data-quality/scans/{scanId}/profiles”Get column profiles for a scan
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
scanId |
string | yes |
Responses: 200
GET /api/data-quality/score
Section titled “GET /api/data-quality/score”Get overall workspace quality score
Responses: 200
GET /api/data-quality/score/tables
Section titled “GET /api/data-quality/score/tables”Get quality scores for each table
Responses: 200
GET /api/data-quality/suggestions
Section titled “GET /api/data-quality/suggestions”List quality suggestions
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
status |
"pending" | "applied" | "dismissed" | "expired" |
no | |
limit |
number | no |
Responses: 200
POST /api/data-quality/suggestions/{id}/apply
Section titled “POST /api/data-quality/suggestions/{id}/apply”Apply a suggestion
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Responses: 200
POST /api/data-quality/suggestions/{id}/dismiss
Section titled “POST /api/data-quality/suggestions/{id}/dismiss”Dismiss a suggestion
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Responses: 200
GET /api/data-quality/summary
Section titled “GET /api/data-quality/summary”Get data quality anomaly summary
Responses: 200
GET /api/data-quality/tests
Section titled “GET /api/data-quality/tests”List data quality tests for workspace
Responses: 200
POST /api/data-quality/tests
Section titled “POST /api/data-quality/tests”Create a data quality test
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | yes | |
description |
string | no | |
testType |
"not_null" | "unique" | "value_range" | "row_count" | "email" | "phone" | "regex" | "allowed_values" | "date_range" | "no_future_date" | "no_negative" | "foreign_key" | "duplicate_detection" | "custom_sql" |
yes | |
targetType |
"source_table" | "model_field" |
yes | |
sourceId |
string | no | |
modelId |
string | no | |
tableId |
string | no | |
fieldId |
string | no | |
schemaName |
string | no | |
tableName |
string | no | |
columnName |
string | no | |
config |
object | no | |
scheduleEnabled |
boolean | no | |
scheduleCron |
string | no | |
runOnSync |
boolean | no | |
severity |
"critical" | "high" | "medium" | "low" | "info" |
no |
Responses: 201
GET /api/data-quality/tests/{id}
Section titled “GET /api/data-quality/tests/{id}”Get a data quality test by ID
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Responses: 200
PUT /api/data-quality/tests/{id}
Section titled “PUT /api/data-quality/tests/{id}”Update a data quality test
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | no | |
description |
string | no | |
testType |
"not_null" | "unique" | "value_range" | "row_count" | "email" | "phone" | "regex" | "allowed_values" | "date_range" | "no_future_date" | "no_negative" | "foreign_key" | "duplicate_detection" | "custom_sql" |
no | |
targetType |
"source_table" | "model_field" |
no | |
sourceId |
string | no | |
modelId |
string | no | |
tableId |
string | no | |
fieldId |
string | no | |
schemaName |
string | no | |
tableName |
string | no | |
columnName |
string | no | |
config |
object | no | |
scheduleEnabled |
boolean | no | |
scheduleCron |
string | no | |
runOnSync |
boolean | no | |
severity |
"critical" | "high" | "medium" | "low" | "info" |
no | |
isActive |
boolean | no |
Responses: 200
DELETE /api/data-quality/tests/{id}
Section titled “DELETE /api/data-quality/tests/{id}”Delete a data quality test
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Responses: 204
POST /api/data-quality/tests/{id}/run
Section titled “POST /api/data-quality/tests/{id}/run”Run a data quality test manually
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Responses: 200
GET /api/data-quality/tests/{id}/runs
Section titled “GET /api/data-quality/tests/{id}/runs”Get run history for a data quality test
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit |
number | no |
Responses: 200
POST /api/data-quality/tests/run-all
Section titled “POST /api/data-quality/tests/run-all”Run all active data quality tests
Responses: 200