> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open-metadata.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Contracts

> Define schema, quality, and governance guarantees for data assets

# Data Contracts

Data contracts define the schema, quality expectations, SLA guarantees, and governance rules for data assets. Contracts can be attached directly to entities or inherited from data products.

## Supported Entity Types

Data contracts can be attached to the following entity types:

| Entity Type          | Schema Validation | Quality Validation | Semantics Validation |
| -------------------- | :---------------: | :----------------: | :------------------: |
| Table                |         ✓         |          ✓         |           ✓          |
| Topic                |         ✓         |          —         |           ✓          |
| API Endpoint         |         ✓         |          —         |           ✓          |
| Dashboard Data Model |         ✓         |          —         |           ✓          |
| Stored Procedure     |         —         |          —         |           ✓          |
| Database             |         —         |          —         |           ✓          |
| Database Schema      |         —         |          —         |           ✓          |
| Dashboard            |         —         |          —         |           ✓          |
| Chart                |         —         |          —         |           ✓          |
| Pipeline             |         —         |          —         |           ✓          |
| Search Index         |         —         |          —         |           ✓          |
| API Collection       |         —         |          —         |           ✓          |
| ML Model             |         —         |          —         |           ✓          |
| Container            |         —         |          —         |           ✓          |
| Data Product         |         —         |          —         |           ✓          |

## Contract Sections

A data contract consists of several optional sections:

| Section                  | Description                                                   |
| ------------------------ | ------------------------------------------------------------- |
| **Schema**               | Expected column definitions — names, types, constraints       |
| **Semantics**            | Business rules — required owners, descriptions, domains, tags |
| **Quality Expectations** | References to test cases that must pass                       |
| **SLA**                  | Refresh frequency, max latency, availability targets          |
| **Terms of Use**         | Allowed/disallowed use cases, compliance requirements         |
| **Security**             | Access policies and classification requirements               |

## Contract Status

| Status       | Description                             |
| ------------ | --------------------------------------- |
| `Draft`      | Contract is being defined, not enforced |
| `Active`     | Contract is active and enforced         |
| `Deprecated` | Contract is deprecated, will be retired |

## API Endpoints

| Method   | Endpoint                                    | Description                          |
| -------- | ------------------------------------------- | ------------------------------------ |
| `GET`    | `/v1/dataContracts`                         | List data contracts                  |
| `POST`   | `/v1/dataContracts`                         | Create a data contract               |
| `GET`    | `/v1/dataContracts/{id}`                    | Get by ID                            |
| `GET`    | `/v1/dataContracts/name/{fqn}`              | Get by FQN                           |
| `GET`    | `/v1/dataContracts/entity`                  | Get effective contract for an entity |
| `PATCH`  | `/v1/dataContracts/{id}`                    | Update a data contract               |
| `PUT`    | `/v1/dataContracts`                         | Create or update                     |
| `DELETE` | `/v1/dataContracts/{id}`                    | Delete by ID                         |
| `DELETE` | `/v1/dataContracts/name/{fqn}`              | Delete by FQN                        |
| `PUT`    | `/v1/dataContracts/restore`                 | Restore soft-deleted                 |
| `GET`    | `/v1/dataContracts/{id}/versions`           | List versions                        |
| `GET`    | `/v1/dataContracts/{id}/versions/{version}` | Get specific version                 |
| `POST`   | `/v1/dataContracts/{id}/validate`           | Validate contract                    |
| `GET`    | `/v1/dataContracts/{id}/results`            | List execution results               |
| `GET`    | `/v1/dataContracts/{id}/results/latest`     | Get latest result                    |
| `PUT`    | `/v1/dataContracts/{id}/results`            | Add execution result                 |
| `GET`    | `/v1/dataContracts/{id}/odcs`               | Export to ODCS JSON                  |
| `GET`    | `/v1/dataContracts/{id}/odcs/yaml`          | Export to ODCS YAML                  |
| `POST`   | `/v1/dataContracts/odcs`                    | Import from ODCS JSON                |
| `POST`   | `/v1/dataContracts/odcs/yaml`               | Import from ODCS YAML                |

## Inheritance

When an entity belongs to a **Data Product** that has a data contract, the entity inherits the contract's semantics, SLA, terms of use, and security rules. The entity can also have its own contract that takes precedence over inherited properties.

<CardGroup cols={2}>
  <Card title="Create Contract" icon="plus" href="/v1.12.x/api-reference/data-contracts/create">
    Create a new data contract for an entity.
  </Card>

  <Card title="List Contracts" icon="list" href="/v1.12.x/api-reference/data-contracts/list">
    List and filter data contracts.
  </Card>

  <Card title="Retrieve Contract" icon="eye" href="/v1.12.x/api-reference/data-contracts/retrieve">
    Get a contract by ID, FQN, or entity.
  </Card>

  <Card title="Validate" icon="check" href="/v1.12.x/api-reference/data-contracts/validate">
    Validate contracts and view execution results.
  </Card>

  <Card title="Import & Export" icon="arrows-rotate" href="/v1.12.x/api-reference/data-contracts/odcs">
    Import and export contracts using the Open Data Contract Standard (ODCS) format.
  </Card>
</CardGroup>
