---
title: "Create node"
method: POST
path: "/v1/nodes"
tags: ["Nodes"]
---

# Create node

`POST /v1/nodes`

This endpoint allows nodes to register or update their public address in the system.
When a node comes online or changes its address, it can use this endpoint to ensure
the system has its current address for routing requests.

## Errors

Returns various `AtomaProxyError` variants:
* `MissingHeader` - If the signature header is missing
* `InvalidHeader` - If the signature header is malformed
* `InvalidBody` - If:
  - The request body cannot be read
  - The signature is invalid
  - The body cannot be parsed
  - The sui address doesn't match the signature
* `InternalError` - If:
  - The state manager channel is closed
  - The registration event cannot be sent
  - Node Sui address lookup fails

## Request body

- NodesCreateRequest — Represents the payload for the node public address registration request.
  - `data` NodePublicAddressAssignment, required — Represents the payload for the node public address registration request. This struct represents the payload for the node public address registration request.
    - `country` string, required — The country of the node
    - `node_small_id` integer, required — Unique small integer identifier for the node
    - `public_address` string, required — The public address of the node
  - `signature` string, required — The signature of the data base 64 encoded

## Response `200`

Node public address registered successfully

- NodesCreateResponse
  - `message` string, required — The message of the response

## Other responses

- `500` — Failed to register node public address

---

[API](https://skmtc.net/atomaai/apis/atoma-proxy.md) · [All operations](https://skmtc.net/atomaai/apis/atoma-proxy/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atomaai/atoma-proxy/versions/07694b7228b0/schema)
