---
title: "Changes to Create artifact"
method: POST
path: "/groups/{groupId}/artifacts"
---

# Changes to Create artifact

`POST /groups/{groupId}/artifacts`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 29 of 126 revisions.

- **2026-10-31** `ff9684af2aad`: 39 info
- **2026-10-29** `f17f5df4e79c`: 8 info
- **2026-06-05** `588c3956268c`: 2 breaking, 4 warning, 8 info
- **2026-05-19** `96ff089c4fd9`: 1 info
- **2026-05-18** `561c6d6c6989`: 1 warning
- **2026-04-16** `9547b63c5be8`: 1 info
- **2026-03-12** `c39e60991838`: 1 info
- **2025-12-16** `440db8997574`: 2 info
- **2025-09-22** `386d90cead61`: 1 info
- **2025-04-17** `b4574d6bc192`: 1 info
- **2024-10-22** `e6e71fdbedf5`: 2 info
- **2024-10-15** `95e926f2874a`: 1 warning, 1 info
- **2024-09-06** `948bffd5d083`: 4 warning, 10 info
- **2024-06-03** `b4f9a63429d9`: 2 breaking, 1 warning, 5 info
- **2024-05-31** `22cc07f7a1f7`: 1 info
- **2024-05-16** `a153ac5855ab`: 14 breaking, 17 warning, 20 info
- **2024-03-13** `b4b182eb7468`: 4 breaking, 1 warning, 1 info
- **2024-02-16** `8ec5f92da35d`: 1 breaking, 1 info
- **2024-02-07** `d761f09f101e`: 1 breaking, 1 warning
- **2024-01-25** `35e85f455b84`: 1 breaking, 3 info
- **2023-02-02** `5152639bee96`: 1 warning
- **2023-02-02** `e6eab48425c4`: 1 info
- **2023-02-02** `565fa69368e0`: 1 info
- **2023-02-02** `71202e0fe3eb`: 1 info
- **2022-11-24** `29b79a1c2c74`: 10 breaking, 10 info
- **2022-08-22** `c52ed14348ce`: 2 info
- **2022-04-25** `d1a3061ccc48`: 1 info
- **2022-04-01** `79156695de01`: 1 info
- **2022-03-21** `28ef359d858e`: 1 info

## Changes

- **2026-10-31** `ff9684af2aad`: 39 info
  - added the optional property `allOf[subschema #1]/causes/items/code` to the response with the `400` status
  - added the optional property `allOf[subschema #1]/causes/items/direction` to the response with the `400` status
  - added the optional property `allOf[subschema #1]/causes/items/existing` to the response with the `400` status
  - added the optional property `allOf[subschema #1]/causes/items/proposed` to the response with the `400` status
  - added the optional property `allOf[subschema #2: Root Type for Error]/ruleViolation/causes/items/code` to the response with the `400` status
  - added the optional property `allOf[subschema #2: Root Type for Error]/ruleViolation/causes/items/direction` to the response with the `400` status
  - added the optional property `allOf[subschema #2: Root Type for Error]/ruleViolation/causes/items/existing` to the response with the `400` status
  - added the optional property `allOf[subschema #2: Root Type for Error]/ruleViolation/causes/items/proposed` to the response with the `400` status
  - added the optional property `allOf[subschema #2: Root Type for Error]/ruleViolation/ruleType` 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
  - added the optional property `ruleViolation/causes/items/code` to the response with the `409` status
  - added the optional property `ruleViolation/causes/items/code` to the response with the `422` 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 `401` status
  - added the optional property `ruleViolation/causes/items/direction` to the response with the `403` status
  - added the optional property `ruleViolation/causes/items/direction` to the response with the `404` status
  - added the optional property `ruleViolation/causes/items/direction` to the response with the `409` status
  - added the optional property `ruleViolation/causes/items/direction` to the response with the `422` status
  - added the optional property `ruleViolation/causes/items/direction` to the response with the `500` status
  - added the optional property `ruleViolation/causes/items/existing` to the response with the `401` status
  - added the optional property `ruleViolation/causes/items/existing` to the response with the `403` status
  - added the optional property `ruleViolation/causes/items/existing` to the response with the `404` status
  - added the optional property `ruleViolation/causes/items/existing` to the response with the `409` status
  - added the optional property `ruleViolation/causes/items/existing` to the response with the `422` status
  - added the optional property `ruleViolation/causes/items/existing` to the response with the `500` status
  - added the optional property `ruleViolation/causes/items/proposed` to the response with the `401` status
  - added the optional property `ruleViolation/causes/items/proposed` to the response with the `403` status
  - added the optional property `ruleViolation/causes/items/proposed` to the response with the `404` status
  - added the optional property `ruleViolation/causes/items/proposed` to the response with the `409` status
  - added the optional property `ruleViolation/causes/items/proposed` to the response with the `422` status
  - added the optional property `ruleViolation/causes/items/proposed` to the response with the `500` status
  - added the optional property `ruleViolation/ruleType` to the response with the `401` status
  - added the optional property `ruleViolation/ruleType` to the response with the `403` status
  - added the optional property `ruleViolation/ruleType` to the response with the `404` status
  - added the optional property `ruleViolation/ruleType` to the response with the `409` status
  - added the optional property `ruleViolation/ruleType` to the response with the `422` status
  - added the optional property `ruleViolation/ruleType` to the response with the `500` status
- **2026-10-29** `f17f5df4e79c`: 8 info
  - added the optional property `allOf[subschema #2: Root Type for Error]/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
  - added the optional property `ruleViolation` to the response with the `409` status
  - added the optional property `ruleViolation` to the response with the `422` status
  - added the optional property `ruleViolation` to the response with the `500` status
  - response property `allOf[subschema #1]/causes` deprecated
- **2026-06-05** `588c3956268c`: 2 breaking, 4 warning, 8 info
  - removed the required property `status` from the response with the `400` status
  - removed the required property `title` from the response with the `400` status
  - removed the optional property `detail` from the response with the `400` status
  - removed the optional property `instance` from the response with the `400` status
  - removed the optional property `name` from the response with the `400` status
  - removed the optional property `type` from the response with the `400` status
  - added `#/components/schemas/ProblemDetails, subschema #1` to the response body `allOf` list for the response status `400`
  - removed `#/components/schemas/ProblemDetails, subschema #1` from the response body `allOf` list for the response status `409`
  - added the optional property `detail` to the response with the `409` status
  - added the optional property `instance` to the response with the `409` status
  - added the optional property `name` to the response with the `409` status
  - added the optional property `type` to the response with the `409` status
  - added the required property `status` to the response with the `409` status
  - added the required property `title` to the response with the `409` status
- **2026-05-19** `96ff089c4fd9`: 1 info
  - added the optional property `artifact/contractMetadata/compatibilityGroup` to the response with the `200` status
- **2026-05-18** `561c6d6c6989`: 1 warning
  - added the new `SUNSET` enum value to the `version/state` response property for the response status `200`
- **2026-04-16** `9547b63c5be8`: 1 info
  - added the optional property `artifact/contractMetadata` to the response with the `200` status
- **2026-03-12** `c39e60991838`: 1 info
  - added the new optional request property `firstVersion/content/encoding`
- **2025-12-16** `440db8997574`: 2 info
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
- **2025-09-22** `386d90cead61`: 1 info
  - added the non-success response with the status `404`
- **2025-04-17** `b4574d6bc192`: 1 info
  - added the non-success response with the status `422`
- **2024-10-22** `e6e71fdbedf5`: 2 info
  - added the optional property `version/modifiedBy` to the response with the `200` status
  - added the optional property `version/modifiedOn` to the response with the `200` status
- **2024-10-15** `95e926f2874a`: 1 warning, 1 info
  - added the new `DRAFT` enum value to the `version/state` response property for the response status `200`
  - added the new optional request property `firstVersion/isDraft`
- **2024-09-06** `948bffd5d083`: 4 warning, 10 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 `500` status
  - removed the optional property `message` from the response with the `400` status
  - removed the optional property `message` from the response with the `500` status
  - added `#/components/schemas/ProblemDetails` to the response body `allOf` list for the response status `409`
  - removed `#/components/schemas/Error` from the response body `allOf` list for the response status `409`
  - added the optional property `instance` to the response with the `400` status
  - added the optional property `instance` to the response with the `500` status
  - added the optional property `type` to the response with the `400` status
  - added the optional property `type` to the response with the `500` status
  - added the required property `status` to the response with the `400` status
  - added the required property `status` to the response with the `500` status
  - added the required property `title` to the response with the `400` status
  - added the required property `title` to the response with the `500` status
- **2024-06-03** `b4f9a63429d9`: 2 breaking, 1 warning, 5 info
  - removed the required property `artifact/type` from the response with the `200` status
  - removed the required property `version/type` from the response with the `200` status
  - removed the request property `type`
  - added the new optional request property `artifactType`
  - the response property `artifact/groupId` became required for the status `200`
  - the `version/version` response's property pattern `^[a-zA-Z0-9._\-+]{1,256}$` was added for the status `200`
  - added the required property `artifact/artifactType` to the response with the `200` status
  - added the required property `version/artifactType` to the response with the `200` status
- **2024-05-31** `22cc07f7a1f7`: 1 info
  - added the new optional `query` request parameter `dryRun`
- **2024-05-16** `a153ac5855ab`: 14 breaking, 17 warning, 20 info
  - added the new required request property `artifactId`
  - removed the media type `*/*` from the request body
  - removed the media type `application/vnd.create.extended+json` from the request body
  - removed the enum value `RETURN` from the `query` request parameter `ifExists`
  - removed the enum value `RETURN_OR_UPDATE` from the `query` request parameter `ifExists`
  - removed the enum value `UPDATE` from the `query` request parameter `ifExists`
  - the response property `version` became optional for the status `200`
  - the `version` response's property type changed from `string` to `object` for status `200`
  - removed the required property `artifactId` from the response with the `200` status
  - removed the required property `contentId` from the response with the `200` status
  - removed the required property `createdOn` from the response with the `200` status
  - removed the required property `globalId` from the response with the `200` status
  - removed the required property `owner` from the response with the `200` status
  - removed the required property `type` from the response with the `200` status
  - deleted the `header` request parameter `X-Registry-Artifact-Branches`
  - deleted the `header` request parameter `X-Registry-ArtifactId`
  - deleted the `header` request parameter `X-Registry-ArtifactType`
  - deleted the `header` request parameter `X-Registry-Content-Hash`
  - deleted the `header` request parameter `X-Registry-Description`
  - deleted the `header` request parameter `X-Registry-Description-Encoded`
  - deleted the `header` request parameter `X-Registry-Hash-Algorithm`
  - deleted the `header` request parameter `X-Registry-Name`
  - deleted the `header` request parameter `X-Registry-Name-Encoded`
  - deleted the `header` request parameter `X-Registry-Version`
  - removed the request property `content`
  - removed the request property `references`
  - removed the optional property `description` from the response with the `200` status
  - removed the optional property `groupId` from the response with the `200` status
  - removed the optional property `labels` from the response with the `200` status
  - removed the optional property `name` from the response with the `200` status
  - removed the optional property `state` from the response with the `200` status
  - added the new optional request property `description`
  - added the new optional request property `firstVersion`
  - added the new optional request property `labels`
  - added the new optional request property `name`
  - added the new optional request property `type`
  - added the new enum value `CREATE_VERSION` to the `query` request parameter `ifExists`
  - added the new enum value `FIND_OR_CREATE_VERSION` to the `query` request parameter `ifExists`
  - added the optional property `version/description` to the response with the `200` status
  - added the optional property `version/groupId` to the response with the `200` status
  - …11 more
- **2024-03-13** `b4b182eb7468`: 4 breaking, 1 warning, 1 info
  - the response property `state` became optional for the status `200`
  - removed the required property `id` from the response with the `200` status
  - removed the required property `modifiedBy` from the response with the `200` status
  - removed the required property `modifiedOn` from the response with the `200` status
  - removed the optional property `references` from the response with the `200` status
  - added the required property `artifactId` to the response with the `200` status
- **2024-02-16** `8ec5f92da35d`: 1 breaking, 1 info
  - removed the required property `createdBy` from the response with the `200` status
  - added the required property `owner` to the response with the `200` status
- **2024-02-07** `d761f09f101e`: 1 breaking, 1 warning
  - the `labels` response's property type changed from `array` to `object` for status `200`
  - removed the optional property `properties` from the response with the `200` status
- **2024-01-25** `35e85f455b84`: 1 breaking, 3 info
  - added the pattern `^[a-zA-Z0-9._\-+]{1,256}$` to the `header` request parameter `X-Registry-Version`
  - added the new optional `header` request parameter `X-Registry-Artifact-Branches`
  - the `groupId` response's property pattern `^.{1,512}$` was added for the status `200`
  - the `id` response's property pattern `^.{1,512}$` was added for the status `200`
- **2023-02-02** `5152639bee96`: 1 warning
  - deleted the `header` request parameter `Content-Type`
- **2023-02-02** `e6eab48425c4`: 1 info
  - the request's body type was generalized from no type to `string`, and format from no format to `binary`
- **2023-02-02** `565fa69368e0`: 1 info
  - added the media type `application/vnd.create.extended+json` to the request body
- **2023-02-02** `71202e0fe3eb`: 1 info
  - added the new optional `header` request parameter `Content-Type`
- **2022-11-24** `29b79a1c2c74`: 10 breaking, 10 info
  - removed the enum value `ASYNCAPI` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `AVRO` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `GRAPHQL` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `JSON` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `KCONNECT` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `OPENAPI` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `PROTOBUF` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `WSDL` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `XML` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the enum value `XSD` from the `header` request parameter `X-Registry-ArtifactType`
  - removed the `ASYNCAPI` enum value from the `type` response property for the response status `200`
  - removed the `AVRO` enum value from the `type` response property for the response status `200`
  - removed the `GRAPHQL` enum value from the `type` response property for the response status `200`
  - removed the `JSON` enum value from the `type` response property for the response status `200`
  - removed the `KCONNECT` enum value from the `type` response property for the response status `200`
  - removed the `OPENAPI` enum value from the `type` response property for the response status `200`
  - removed the `PROTOBUF` enum value from the `type` response property for the response status `200`
  - removed the `WSDL` enum value from the `type` response property for the response status `200`
  - removed the `XML` enum value from the `type` response property for the response status `200`
  - removed the `XSD` enum value from the `type` response property for the response status `200`
- **2022-08-22** `c52ed14348ce`: 2 info
  - added the new optional `header` request parameter `X-Registry-Content-Hash`
  - added the new optional `header` request parameter `X-Registry-Hash-Algorithm`
- **2022-04-25** `d1a3061ccc48`: 1 info
  - the request's body type was generalized from `string` to no type, and format from `binary` to no format
- **2022-04-01** `79156695de01`: 1 info
  - added the media type `application/create.extended+json` to the request body
- **2022-03-21** `28ef359d858e`: 1 info
  - added the optional property `references` to the response with the `200` status

---

[Operation](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/docs/groups/:groupId/artifacts/post.md) - [API](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3.md) - [Page](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/changes/groups/:groupId/artifacts/post)
