---
title: "Add or replace a node in the registry"
method: PUT
path: "/registry/nodes/{identity}"
tags: ["Splinter Registry"]
---

# Add or replace a node in the registry

`PUT /registry/nodes/{identity}`

This endpoint can be used to add a new node to the registry, or replace
an existing node. When replacing an existing node, the node identity
cannot be changed. This action is idempotent.

This endpoint requires the permission "registry.write".

## Path parameters

- `identity` string, required

## Headers

- `Authorization` string, required
- `SplinterProtocolVersion` integer

## Request body

- RegisteredNode
  - `identity` string
  - `endpoints` string[]
  - `display_name` string
  - `keys` string[]
  - `metadata` object

## Response `200`

The node has been added or replaced

## Other responses

- `400` — The request was malformed or the node was invalid
- `401` — The client is unauthorized
- `500` — An internal server error occurred

---

[API](https://skmtc.dev/cargill/apis/splinterd-api.md) · [All operations](https://skmtc.dev/cargill/apis/splinterd-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cargill/splinterd-api/revisions/38a272c24bd9/schema)
