Nodes
List all server nodes
Authorizations
Responses
200
List of nodes
application/json
403
Forbidden
application/json
500
Server error
application/json
get
GET /api/nodes HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": "[Circular Reference]",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
]
Create a new server node
Authorizations
Body
namestring · min: 1 · max: 100Required
fqdnstringRequiredPattern:
^(localhost|[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}|(\d{1,3}\.){3}\d{1,3})$
portinteger · min: 1 · max: 65535Required
Responses
201
Node created successfully
application/json
400
Invalid request
application/json
403
Forbidden
application/json
500
Server error
application/json
post
POST /api/nodes HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"name": "text",
"fqdn": "text",
"port": 1
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
"[Circular Reference]"
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
Get node details by ID
Authorizations
Path parameters
idstring · uuidRequired
Responses
200
Node details
application/json
403
Forbidden
application/json
404
Node not found
application/json
500
Server error
application/json
get
GET /api/nodes/{id} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
"[Circular Reference]"
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
Delete a server node
Authorizations
Path parameters
idstring · uuidRequired
Responses
204
Node deleted successfully
400
Cannot delete node with active servers
application/json
403
Forbidden
application/json
404
Node not found
application/json
500
Server error
application/json
delete
DELETE /api/nodes/{id} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
No content
Update node details
Authorizations
Path parameters
idstring · uuidRequired
Body
namestring · min: 1 · max: 100Optional
fqdnstringOptionalPattern:
^(localhost|[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}|(\d{1,3}\.){3}\d{1,3})$
portinteger · min: 1 · max: 65535Optional
Responses
200
Node updated successfully
application/json
400
Invalid request
application/json
403
Forbidden
application/json
404
Node not found
application/json
500
Server error
application/json
patch
PATCH /api/nodes/{id} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"name": "text",
"fqdn": "text",
"port": 1
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
"[Circular Reference]"
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
Assign a node to a region
Authorizations
Path parameters
idstring · uuidRequired
Body
regionIdstring · uuid | nullableOptional
Responses
200
Node region updated successfully
application/json
400
Invalid request
application/json
403
Forbidden
application/json
404
Node or region not found
application/json
500
Server error
application/json
patch
PATCH /api/nodes/{id}/region HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 51
{
"regionId": "123e4567-e89b-12d3-a456-426614174000"
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
"[Circular Reference]"
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
List all nodes in a specific region
Authorizations
Path parameters
regionIdstring · uuidRequired
Responses
200
List of nodes in region
application/json
403
Forbidden
application/json
404
Region not found
application/json
500
Server error
application/json
get
GET /api/nodes/region/{regionId} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-07-05T15:41:22.347Z",
"allocations": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"bindAddress": "text",
"port": 1,
"alias": "text",
"notes": "text",
"assigned": true,
"serverId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"region": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"identifier": "text",
"countryId": "text",
"fallbackRegionId": "123e4567-e89b-12d3-a456-426614174000",
"serverLimit": 1,
"stats": {
"serverCount": 1,
"nodeCount": 1,
"onlineNodeCount": 1,
"atCapacity": true
},
"nodes": "[Circular Reference]",
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
],
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
},
"createdAt": "2025-07-05T15:41:22.347Z",
"updatedAt": "2025-07-05T15:41:22.347Z"
}
]
Was this helpful?