Skip to main content
POST
POST /v1/dataQuality/testDefinitions

Create a Test Definition

Create a custom test definition to define organization-specific data quality validation logic.

Body Parameters

string
required
Name of the test definition. Must be unique across all test definitions.
string
Human-readable display name for the test definition.
string
Description of what this test validates, in Markdown format.
string
required
The entity type this test targets: TABLE or COLUMN.
array
required
Array of supported test platforms. Typically ["OpenMetadata"].
array
Array of data types this test can be applied to (e.g., STRING, INT, DOUBLE, VARCHAR, CHAR, TEXT, NUMBER, FLOAT, BOOLEAN). Only applicable when entityType is COLUMN.
array
Array of parameter definitions that this test accepts.
array
Array of owner references (users or teams) to assign.
POST /v1/dataQuality/testDefinitions

Returns

Returns the created test definition object with all specified properties and system-generated fields.

Response

string
Unique identifier for the test definition (UUID format).
string
Test definition name.
string
Fully qualified name (same as name for test definitions).
string
Human-readable display name.
string
Description of what the test validates.
string
Target entity type: TABLE or COLUMN.
array
Supported test platforms.
array
Data types this test can be applied to.
array
Parameters accepted by this test definition.
string
Always user for custom test definitions.
number
Version number for the entity (starts at 0.1).

Create or Update (PUT)

Use PUT /v1/dataQuality/testDefinitions instead of POST to perform an upsert. If a test definition with the same name already exists, it will be updated; otherwise, a new test definition is created. The request body is the same as POST.
PUT will not return a 409 conflict error if the entity already exists — it will update the existing entity instead. However, for certain fields (such as description, tags, owners, and custom properties), PUT preserves an already-populated value instead of overwriting it with an empty or omitted one — the exact behavior depends on the field and the calling user or bot’s permissions, not a blanket rule. See Entity Update Behavior for the full preserve/merge rules. Use PATCH to intentionally replace an existing value.

Error Handling