---
title: "Update an ODCS contract"
method: PUT
path: "/groups/{groupId}/contracts/{contractId}"
tags: ["Contracts"]
---

# Update an ODCS contract

`PUT /groups/{groupId}/contracts/{contractId}`

Updates an ODCS contract (creates a new version) and re-projects onto the referenced schema artifact.

## Response `200`

The contract was updated and re-projected.

- OdcsContractResult — Result of submitting or updating an ODCS contract.
  - `contractId` string — The contract artifact ID.
  - `version` string — The ODCS contract version.
  - `projection` OdcsProjectionSummary — Summary of the projection performed when an ODCS contract is applied.
    - `rulesApplied` integer — Number of CEL quality rules projected onto the schema artifact.
    - `labelsApplied` integer — Number of contract.* labels set on the schema artifact.
    - `tagsApplied` integer — Number of field-tag.* labels set on the schema artifact version.
    - `warnings` string[] — Any warnings encountered during projection.

## 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.

---

[API](https://skmtc.net/apicurio/apis/apicurio-registry-api-v3.md) · [All operations](https://skmtc.net/apicurio/apis/apicurio-registry-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apicurio/apicurio-registry-api-v3/revisions/c39cb56d7dbc/schema)
