curl --request POST \
--url https://api.example.com/api/dq/rules/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rule_name": "<string>",
"rule_description": "<string>",
"sql": "<string>",
"table": "<string>",
"success_value": "<string>"
}
'import requests
url = "https://api.example.com/api/dq/rules/create"
payload = {
"rule_name": "<string>",
"rule_description": "<string>",
"sql": "<string>",
"table": "<string>",
"success_value": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rule_name: '<string>',
rule_description: '<string>',
sql: '<string>',
table: '<string>',
success_value: '<string>'
})
};
fetch('https://api.example.com/api/dq/rules/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/dq/rules/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rule_name' => '<string>',
'rule_description' => '<string>',
'sql' => '<string>',
'table' => '<string>',
'success_value' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/dq/rules/create"
payload := strings.NewReader("{\n \"rule_name\": \"<string>\",\n \"rule_description\": \"<string>\",\n \"sql\": \"<string>\",\n \"table\": \"<string>\",\n \"success_value\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/dq/rules/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rule_name\": \"<string>\",\n \"rule_description\": \"<string>\",\n \"sql\": \"<string>\",\n \"table\": \"<string>\",\n \"success_value\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/dq/rules/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rule_name\": \"<string>\",\n \"rule_description\": \"<string>\",\n \"sql\": \"<string>\",\n \"table\": \"<string>\",\n \"success_value\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rule_name": "<string>",
"rule_description": "<string>",
"sql": "<string>",
"accepted": true,
"table": "<string>",
"external_id": "<string>",
"spark_sql": "<string>",
"success_value": "<string>",
"created_by": "<string>",
"approved_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"approved_at": "2023-11-07T05:31:56Z",
"is_created": false
}{
"error": "<string>",
"code": 500
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Create a custom data quality rule
Create a custom data quality rule with user-provided SQL and success value.
Required Role: nx1_quality
curl --request POST \
--url https://api.example.com/api/dq/rules/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rule_name": "<string>",
"rule_description": "<string>",
"sql": "<string>",
"table": "<string>",
"success_value": "<string>"
}
'import requests
url = "https://api.example.com/api/dq/rules/create"
payload = {
"rule_name": "<string>",
"rule_description": "<string>",
"sql": "<string>",
"table": "<string>",
"success_value": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
rule_name: '<string>',
rule_description: '<string>',
sql: '<string>',
table: '<string>',
success_value: '<string>'
})
};
fetch('https://api.example.com/api/dq/rules/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/dq/rules/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rule_name' => '<string>',
'rule_description' => '<string>',
'sql' => '<string>',
'table' => '<string>',
'success_value' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/dq/rules/create"
payload := strings.NewReader("{\n \"rule_name\": \"<string>\",\n \"rule_description\": \"<string>\",\n \"sql\": \"<string>\",\n \"table\": \"<string>\",\n \"success_value\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/dq/rules/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rule_name\": \"<string>\",\n \"rule_description\": \"<string>\",\n \"sql\": \"<string>\",\n \"table\": \"<string>\",\n \"success_value\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/dq/rules/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rule_name\": \"<string>\",\n \"rule_description\": \"<string>\",\n \"sql\": \"<string>\",\n \"table\": \"<string>\",\n \"success_value\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rule_name": "<string>",
"rule_description": "<string>",
"sql": "<string>",
"accepted": true,
"table": "<string>",
"external_id": "<string>",
"spark_sql": "<string>",
"success_value": "<string>",
"created_by": "<string>",
"approved_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"approved_at": "2023-11-07T05:31:56Z",
"is_created": false
}{
"error": "<string>",
"code": 500
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Request to create a custom data quality rule.
Name of the data quality rule.
Description of what the rule checks.
Trino SQL query for validation.
Fully qualified table name this rule applies to.
Expected success condition. For example, count = 0 or value > 95.
Response
Rule created.
Unique ID of the data quality rule.
Name of the data quality rule.
Brief explanation of what the rule checks.
Trino SQL query used to validate the rule.
Whether you have accepted this rule.
The database table this rule applies to.
Uniform Resource Name (URN) of the assertion in DataHub.
Spark SQL query of the rule, if applicable.
Expected success condition for this rule.
Username or identifier of who created this rule.
Username of who approved this rule.
Timestamp when the rule was created.
Timestamp when the rule was approved.
True once the rule has been explicitly created (not just a suggestion).
Was this page helpful?

