---
title: "Update a peer registry"
method: PUT
path: "/admin/peers/{peerId}"
tags: ["Admin"]
---

# Update a peer registry

`PUT /admin/peers/{peerId}`

## Request

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

**Experimental.** Replaces the definition of a single peer registry. Optional fields that are omitted are cleared.

The peer `url` must use `https` unless `apicurio.federation.peer.insecure-http.enabled` is set. It must not contain userinfo, a query or a fragment, and must not point at a link-local, unspecified, multicast, reserved or cloud metadata address, or at a loopback address unless `apicurio.federation.peer.loopback.enabled` is set. `credentialSecretRef` names a key in the registry's peer credentials directory; it is never a credential value.

This endpoint is only available when federation is enabled (`apicurio.federation.enabled`). Returns HTTP 409 (Conflict) otherwise.

This operation can fail for the following reasons:

* The `peerId` or the peer definition is invalid (HTTP error `400`)
* No peer registry with the `peerId` exists (HTTP error `404`)
* The registry storage is read-only (HTTP error `409`)
* Federation is not enabled (HTTP error `409`)
* A server error occurred (HTTP error `500`)

## Request body

- UpdatePeer: The replacement definition of a peer registry. Optional fields that are omitted are cleared.
  - `url` string, required: Base URL of the peer registry, for example `https://registry.eu.example.com`.
  - `name` string: Display name of the peer registry.
  - `description` string: Description of the peer registry.
  - `enabled` boolean, required: Whether the peer registry is used for federation.
  - `credentialSecretRef` string: Name of the key in the registry's peer credentials directory that holds the credential for this peer. A reference only: the credential value is never stored or returned.

## Response `204`

Response when the update is successful.

## 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
- **2026-10-21** `627da2a138a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apicurio/apis/apicurio-registry-api-v3/changes/admin/peers/:peerId/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)
