---
title: "Create artifact rule"
method: POST
path: "/groups/{groupId}/artifacts/{artifactId}/rules"
tags: ["Artifact rules"]
---

# Create artifact rule

`POST /groups/{groupId}/artifacts/{artifactId}/rules`

## Request

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

Adds a rule to the list of rules that get applied to the artifact 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 artifact with this `artifactId` exists (HTTP error `404`)
* Rule (named in the request body) is unknown (HTTP error `400`)
* A server error occurred (HTTP error `500`)

## Request body

- Rule
  - `config` string, required
  - `type` '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.
- `500`: Common response for all operations that can fail with an unexpected server error.

## Changes

> 65 revisions in range; 1 not diffed.

- **2023-05-25** (v2) `675821e314e9`: 1 info
  - added the new `INTEGRITY` enum value to the request property `type`

[Operation history](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v2/changes/groups/:groupId/artifacts/:artifactId/rules/post.md)

---

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