Projects
Was this helpful?
Was this helpful?
Get project details by ID
GET /api/projects/{id} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"serverCount": 1,
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
Delete a project
DELETE /api/projects/{id} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
No content
List all servers in a project
GET /api/projects/{id}/servers HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"internalId": "text",
"name": "text",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"unitId": "123e4567-e89b-12d3-a456-426614174000",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"allocationId": "123e4567-e89b-12d3-a456-426614174000",
"memoryMiB": 1,
"diskMiB": 1,
"cpuPercent": 1,
"state": "text",
"status": {
"state": "text"
},
"node": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-05-20T01:53:17.208Z",
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
],
"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-05-20T01:53:17.208Z",
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
],
"region": "[Circular Reference]",
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
],
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"unit": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"shortName": "text",
"description": "text",
"dockerImages": [
{
"image": "text",
"displayName": "text"
}
],
"defaultDockerImage": "text",
"dockerImage": "text",
"defaultStartupCommand": "text",
"configFiles": [
{
"path": "text",
"content": "text"
}
],
"environmentVariables": [
{
"name": "text",
"description": "text",
"defaultValue": "text",
"required": true,
"userViewable": true,
"userEditable": true,
"rules": "text"
}
],
"installScript": {
"dockerImage": "text",
"entrypoint": "text",
"script": "text"
},
"startup": {
"userEditable": true,
"readyRegex": "text",
"stopCommand": "text"
},
"features": [
{
"name": "text",
"description": "text",
"iconPath": "text",
"type": "required",
"uiData": {
"component": "text",
"props": {}
}
}
],
"meta": {
"version": "text",
"author": "text",
"website": "text",
"supportUrl": "text"
},
"recommendedRequirements": {
"memoryMiB": 1,
"diskMiB": 1,
"cpuPercent": 1
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"allocation": {
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"user": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"username": "text",
"permissions": [
"text"
],
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"validationToken": "text",
"projectId": "123e4567-e89b-12d3-a456-426614174000",
"project": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"serverCount": 1,
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
]
Move a server to a different project
POST /api/projects/{projectId}/servers/{serverId} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"internalId": "text",
"name": "text",
"nodeId": "123e4567-e89b-12d3-a456-426614174000",
"unitId": "123e4567-e89b-12d3-a456-426614174000",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"allocationId": "123e4567-e89b-12d3-a456-426614174000",
"memoryMiB": 1,
"diskMiB": 1,
"cpuPercent": 1,
"state": "text",
"status": {
"state": "text"
},
"node": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"fqdn": "text",
"port": 1,
"regionId": "123e4567-e89b-12d3-a456-426614174000",
"isOnline": true,
"lastChecked": "2025-05-20T01:53:17.208Z",
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
],
"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-05-20T01:53:17.208Z",
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
],
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
],
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"unit": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"shortName": "text",
"description": "text",
"dockerImages": [
{
"image": "text",
"displayName": "text"
}
],
"defaultDockerImage": "text",
"dockerImage": "text",
"defaultStartupCommand": "text",
"configFiles": [
{
"path": "text",
"content": "text"
}
],
"environmentVariables": [
{
"name": "text",
"description": "text",
"defaultValue": "text",
"required": true,
"userViewable": true,
"userEditable": true,
"rules": "text"
}
],
"installScript": {
"dockerImage": "text",
"entrypoint": "text",
"script": "text"
},
"startup": {
"userEditable": true,
"readyRegex": "text",
"stopCommand": "text"
},
"features": [
{
"name": "text",
"description": "text",
"iconPath": "text",
"type": "required",
"uiData": {
"component": "text",
"props": {}
}
}
],
"meta": {
"version": "text",
"author": "text",
"website": "text",
"supportUrl": "text"
},
"recommendedRequirements": {
"memoryMiB": 1,
"diskMiB": 1,
"cpuPercent": 1
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"allocation": {
"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-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"user": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"username": "text",
"permissions": [
"text"
],
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"validationToken": "text",
"projectId": "123e4567-e89b-12d3-a456-426614174000",
"project": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"serverCount": 1,
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
},
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
List all projects for the current user or specified user (admin)
Filter projects by user ID (admin only)
GET /api/projects HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"serverCount": 1,
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
]
Create a new project
POST /api/projects HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 36
{
"name": "text",
"description": "text"
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"serverCount": 1,
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}
Update project details
PATCH /api/projects/{id} HTTP/1.1
Host: localhost:3000
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 36
{
"name": "text",
"description": "text"
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"description": "text",
"userId": "123e4567-e89b-12d3-a456-426614174000",
"serverCount": 1,
"createdAt": "2025-05-20T01:53:17.208Z",
"updatedAt": "2025-05-20T01:53:17.208Z"
}