---
title: "Update contract metadata"
method: PUT
path: "/groups/{groupId}/artifacts/{artifactId}/contract/metadata"
tags: ["Contracts"]
---

# Update contract metadata

`PUT /groups/{groupId}/artifacts/{artifactId}/contract/metadata`

## Request

- The document declares no server URL.
- Auth: none declared

Creates or updates the contract metadata for an artifact.

## Request body

- EditableContractMetadata: Editable contract metadata fields.
  - `status` 'DRAFT' | 'STABLE' | 'DEPRECATED': The contract lifecycle status.
  - `ownerTeam` string: The team that owns the contract.
  - `ownerDomain` string: The domain the contract belongs to.
  - `supportContact` string: Support contact email.
  - `classification` 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL' | 'RESTRICTED': Data classification level.
  - `stage` 'DEV' | 'STAGE' | 'PROD': Promotion stage.
  - `compatibilityGroup` string: Compatibility group for schema evolution scoping.

## Response `200`

The updated contract metadata.

- ContractMetadata: Contract metadata for an artifact.
  - `status` 'DRAFT' | 'STABLE' | 'DEPRECATED': The contract lifecycle status.
  - `ownerTeam` string: The team that owns the contract.
  - `ownerDomain` string: The domain the contract belongs to.
  - `supportContact` string: Support contact email.
  - `classification` 'PUBLIC' | 'INTERNAL' | 'CONFIDENTIAL' | 'RESTRICTED': Data classification level.
  - `stage` 'DEV' | 'STAGE' | 'PROD': Promotion stage.
  - `stableDate` string: ISO-8601 date when contract became stable.
  - `deprecatedDate` string: ISO-8601 date when contract was deprecated.
  - `deprecationReason` string: Reason for deprecation.
  - `compatibilityGroup` string: Compatibility group for schema evolution scoping.

## Other responses

- `400`: Common response for all operations that can return a `400` error.
- `404`: Common response for all operations that can return a `404` error.
- `500`: Common response for all operations that can fail with an unexpected server error.

## Changes

- **2026-10-31** `ff9684af2aad`: 15 info
  - added the optional property `ruleViolation/causes/items/code` to the response with the `400` status
  - added the optional property `ruleViolation/causes/items/code` to the response with the `404` status
  - added the optional property `ruleViolation/causes/items/code` to the response with the `500` status
  - added the optional property `ruleViolation/causes/items/direction` to the response with the `400` status
  - …11 more
- **2026-10-29** `f17f5df4e79c`: 3 info
  - added the optional property `ruleViolation` to the response with the `400` status
  - added the optional property `ruleViolation` to the response with the `404` status
  - added the optional property `ruleViolation` to the response with the `500` status
- **2026-05-19** `96ff089c4fd9`: 2 info
  - added the new optional request property `compatibilityGroup`
  - added the optional property `compatibilityGroup` to the response with the `200` status
- **2026-04-16** `9547b63c5be8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/changes/groups/:groupId/artifacts/:artifactId/contract/metadata/put.md)

---

[API](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3.md) - [All operations](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/revisions/ff9684af2aad?raw)
