---
title: "Create group rule"
method: POST
path: "/groups/{groupId}/rules"
tags: ["Group rules"]
---

# Create group rule

`POST /groups/{groupId}/rules`

## Request

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

Adds a rule to the list of rules that get applied to an artifact in the group when adding new
versions.  All configured rules must pass to successfully add a new artifact version.

This operation can fail for the following reasons:

* No group with this `groupId` exists (HTTP error `404`)
* Rule (named in the request body) is unknown (HTTP error `400`)
* Rule is already configured (HTTP error `409`)
* A server error occurred (HTTP error `500`)

## Request body

- CreateRule
  - `config` string, required
  - `ruleType` 'VALIDITY' | 'COMPATIBILITY' | 'INTEGRITY'

## Response `204`

The rule was added.

## Other responses

- `400`: Common response for all operations that can return a `400` error.
- `401`: Common response for all operations that can return a `401` error indicating authentication is required.
- `403`: Common response for all operations that can return a `403` error indicating the user is authenticated but not authorized.
- `404`: Common response for all operations that can return a `404` error.
- `409`: Common response used when an input conflicts with existing data.
- `500`: Common response for all operations that can fail with an unexpected server error.

## Changes

- **2026-10-31** `ff9684af2aad`: 30 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 `401` status
  - added the optional property `ruleViolation/causes/items/code` to the response with the `403` status
  - added the optional property `ruleViolation/causes/items/code` to the response with the `404` status
  - …26 more
- **2026-10-29** `f17f5df4e79c`: 6 info
  - added the optional property `ruleViolation` to the response with the `400` status
  - added the optional property `ruleViolation` to the response with the `401` status
  - added the optional property `ruleViolation` to the response with the `403` status
  - added the optional property `ruleViolation` to the response with the `404` status
  - …2 more
- **2025-12-16** `440db8997574`: 2 info
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
- **2024-09-06** `948bffd5d083`: 8 warning, 16 info
  - removed the optional property `error_code` from the response with the `400` status
  - removed the optional property `error_code` from the response with the `404` status
  - removed the optional property `error_code` from the response with the `409` status
  - removed the optional property `error_code` from the response with the `500` status
  - …20 more
- **2024-07-30** `53972ec88510`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/changes/groups/:groupId/rules/post.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)
