---
title: "Update artifact version content"
method: PUT
path: "/groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/content"
tags: ["Versions"]
---

# Update artifact version content

`PUT /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/content`

## Request

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

Updates the content of a single version of an artifact.

NOTE: the artifact must be in `DRAFT` status.

Both the `artifactId` and the unique `version` number must be provided to identify
the version to update.

This operation can fail for the following reasons:

* No artifact with this `artifactId` exists (HTTP error `404`)
* No version with this `version` exists (HTTP error `404`)
* Artifact version not in `DRAFT` status (HTTP error `409`)
* A server error occurred (HTTP error `500`)

## Request body

- VersionContent
  - `content` string, required: Raw content of the artifact version or a valid (and accessible) URL where the content can be found.
  - `references` ArtifactReference[]: Collection of references to other artifacts.
    - `groupId` string, required
    - `artifactId` string, required
    - `version` string
    - `name` string, required
  - `contentType` string, required: The content-type, such as `application/json` or `text/xml`.
  - `encoding` 'base64': Optional encoding for the content property. When set to 'base64', the content value will be base64-decoded by the server before processing.

## Response `204`

The artifact version content was successfully updated.

## Other responses

- `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.
- `405`: Common response for all operations that can fail due to method not allowed or disabled.
- `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 `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 `405` status
  - …26 more
- **2026-10-29** `f17f5df4e79c`: 6 info
  - 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 `405` status
  - …2 more
- **2026-03-12** `c39e60991838`: 1 info
  - added the new optional request property `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`
- **2024-10-15** `95e926f2874a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/changes/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/content/put.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)
