Skip to main content
POST
POST /v1/dataContracts

Create a Data Contract

Create a new data contract and attach it to a data asset. Only the name and entity reference are required — all other sections (schema, semantics, quality, SLA, security, terms of use) are optional.

Body Parameters

string
required
Name of the data contract, 1 to 256 characters. The contract’s fully qualified name is <entityFQN>.dataContract_<name>.
object
required
Reference to the data asset this contract applies to. An entity can have only one contract.
string
Human-readable display name.
string
Description in Markdown format.
string
default:"Draft"
Contract status: Draft, In Review, Approved, Rejected, Deprecated, or Archived.
array
Expected columns or fields. Supported for table, topic, apiEndpoint, and dashboardDataModel only. Each item follows the Column schema. Every name must exist on the entity, and no name can repeat.
array
Semantics rules evaluated against the entity’s metadata when the contract is validated.
array
References to test cases that must pass. Supported for table only.
object
Service level agreement expectations. Stored and shown on the contract, but not checked by validation runs.
string
Terms of use in Markdown format. Describes allowed and disallowed uses and compliance requirements. Returned as termsOfUse.content on the contract.
object
Security and access expectations. Stored and shown on the contract, but not enforced.
array
Owner references (users or teams).
array
Reviewer references (users or teams). When set, only a reviewer can move the contract from In Review to Approved or Rejected.
string
Date and time from which this contract is effective. Informational only.
string
Date and time until which this contract is effective. Informational only.
string
Link to where the contract is maintained.
POST /v1/dataContracts

Upsert (Create or Update)

Use PUT /v1/dataContracts with the same body to create a new contract or update an existing one.

Error Handling