---
title: "Set global contract ruleset"
method: PUT
path: "/admin/contracts/ruleset"
tags: ["Admin", "Contracts"]
---

# Set global contract ruleset

`PUT /admin/contracts/ruleset`

Sets the global contract ruleset that applies to all artifacts.

## Request body

- ContractRuleSet — A set of contract rules, divided into domain and migration categories.
  - `domainRules` ContractRule[] — Rules for domain validation.
    - `name` string, required — The rule name.
    - `kind` 'CONDITION' | 'TRANSFORM', required — The rule kind.
    - `type` string, required — Rule executor type (CEL, CEL_FIELD, ENCRYPT, etc.).
    - `mode` 'WRITE' | 'READ' | 'WRITEREAD' | 'UPGRADE' | 'DOWNGRADE', required — When the rule is applied.
    - `expr` string — The rule expression.
    - `params` object — Rule parameters.
    - `tags` string[] — Tags for categorizing the rule.
    - `onSuccess` 'NONE' | 'ERROR' | 'DLQ' — Action on rule success.
    - `onFailure` 'NONE' | 'ERROR' | 'DLQ' — Action on rule failure.
    - `disabled` boolean — Whether the rule is disabled.
  - `migrationRules` ContractRule[] — Rules for version migration.
    - `name` string, required — The rule name.
    - `kind` 'CONDITION' | 'TRANSFORM', required — The rule kind.
    - `type` string, required — Rule executor type (CEL, CEL_FIELD, ENCRYPT, etc.).
    - `mode` 'WRITE' | 'READ' | 'WRITEREAD' | 'UPGRADE' | 'DOWNGRADE', required — When the rule is applied.
    - `expr` string — The rule expression.
    - `params` object — Rule parameters.
    - `tags` string[] — Tags for categorizing the rule.
    - `onSuccess` 'NONE' | 'ERROR' | 'DLQ' — Action on rule success.
    - `onFailure` 'NONE' | 'ERROR' | 'DLQ' — Action on rule failure.
    - `disabled` boolean — Whether the rule is disabled.

## Response `200`

The global contract ruleset was set.

- ContractRuleSet — A set of contract rules, divided into domain and migration categories.
  - `domainRules` ContractRule[] — Rules for domain validation.
    - `name` string, required — The rule name.
    - `kind` 'CONDITION' | 'TRANSFORM', required — The rule kind.
    - `type` string, required — Rule executor type (CEL, CEL_FIELD, ENCRYPT, etc.).
    - `mode` 'WRITE' | 'READ' | 'WRITEREAD' | 'UPGRADE' | 'DOWNGRADE', required — When the rule is applied.
    - `expr` string — The rule expression.
    - `params` object — Rule parameters.
    - `tags` string[] — Tags for categorizing the rule.
    - `onSuccess` 'NONE' | 'ERROR' | 'DLQ' — Action on rule success.
    - `onFailure` 'NONE' | 'ERROR' | 'DLQ' — Action on rule failure.
    - `disabled` boolean — Whether the rule is disabled.
  - `migrationRules` ContractRule[] — Rules for version migration.
    - `name` string, required — The rule name.
    - `kind` 'CONDITION' | 'TRANSFORM', required — The rule kind.
    - `type` string, required — Rule executor type (CEL, CEL_FIELD, ENCRYPT, etc.).
    - `mode` 'WRITE' | 'READ' | 'WRITEREAD' | 'UPGRADE' | 'DOWNGRADE', required — When the rule is applied.
    - `expr` string — The rule expression.
    - `params` object — Rule parameters.
    - `tags` string[] — Tags for categorizing the rule.
    - `onSuccess` 'NONE' | 'ERROR' | 'DLQ' — Action on rule success.
    - `onFailure` 'NONE' | 'ERROR' | 'DLQ' — Action on rule failure.
    - `disabled` boolean — Whether the rule is disabled.

## Other responses

- `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)
