AdminUserServer
| Field | Type | Description |
|---|
id | integer | Server ID |
uuid | string | Server UUID |
uuidShort | string | Short server UUID |
name | string | Server name |
description | string | Server description |
status | string | Server status |
created_at | string (date-time) | Creation timestamp |
Allocation
| Field | Type | Description |
|---|
id | integer | Allocation ID |
node_id | integer | Node ID |
ip | string | IP address |
ip_alias | string | IP alias |
port | integer | Port number |
server_id | integer | Assigned server ID |
notes | string | Allocation notes |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
ApiClientActivity
| Field | Type | Description |
|---|
id | integer | Activity ID |
user_uuid | string | User UUID |
name | string | Activity name |
context | string | Activity context |
ip_address | string | IP address |
created_at | string (date-time) | Creation timestamp |
ApiClientCreateRequest
| Field | Type | Description |
|---|
namerequired | string | API client name |
allowed_ips | string | Allowed IPs/CIDR (newline or comma); omit or empty for no restriction |
notify_foreign_ip | boolean | Email when the key is used from a non-allowed IP (requires allowed_ips) |
Used by POST /api/user/api-clients
ApiClientList
| Field | Type | Description |
|---|
id | integer | API client ID |
user_uuid | string | User UUID |
name | string | API client name |
public_key | string | Public API key (truncated) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
allowed_ips | string | Allowed client IPs/CIDR list |
notify_foreign_ip | string | |
ApiClientSearch
| Field | Type | Description |
|---|
query | string | Search query |
has_results | boolean | Whether search returned results |
ApiClientUpdateRequest
| Field | Type | Description |
|---|
name | string | API client name |
allowed_ips | string | Allowed IPs/CIDR; empty/null clears restriction |
notify_foreign_ip | boolean | Email when the key is used from a off-list IP |
Used by PUT /api/user/api-clients/{id}
Backup
| Field | Type | Description |
|---|
id | integer | Backup ID |
server_id | integer | Server ID |
uuid | string | Backup UUID |
name | string | Backup name |
ignored_files | string | JSON string of ignored files |
disk | string | Storage disk type |
is_successful | integer | Whether backup was successful (0 or 1) |
is_stale | boolean | Incomplete backup older than 24 hours; eligible for manual interruption recovery |
is_locked | integer | Whether backup is locked (0 or 1) |
created_at | string (date-time) | Backup creation timestamp |
updated_at | string (date-time) | Backup update timestamp |
Used by GET /api/user/servers/{uuidShort}/backups/{backupUuid}
BackupCompletion
| Field | Type | Description |
|---|
checksum | string | Backup file checksum, required on success |
checksum_type | string | Type of checksum algorithm, required on success |
size | integer | Backup file size in bytes, required on success |
successfulrequired | boolean | Whether backup was successful |
upload_id | string | Upload ID for multipart uploads |
Used by POST /api/remote/backups/{backupUuid}
BackupCreateRequest
| Field | Type | Description |
|---|
uuid | string | Custom backup UUID (optional) |
name | string | Backup name (optional) |
ignore | string | JSON string of files to ignore (optional) |
Used by POST /api/user/servers/{uuidShort}/backups
BlockedEmailDomainRow
| Field | Type | Description |
|---|
id | integer | |
domain | string | |
source | string | |
created_at | string | |
BlockedIpRow
| Field | Type | Description |
|---|
id | integer | |
ip | string | |
reason | string | |
expires_at | string | UTC datetime; null = permanent |
created_by_uuid | string | |
created_at | string | |
is_active | boolean | |
is_permanent | boolean | |
ChatbotResponse
| Field | Type | Description |
|---|
response | string | AI assistant response |
CompressRequest
| Field | Type | Description |
|---|
filesrequired | string[] | Array of file paths |
rootrequired | string | Root directory path |
name | string | Archive name (optional, auto-generated if not provided) |
extension | string | Archive type: zip, tar.gz, tgz, tar.bz2, tbz2, tar.xz, txz |
Used by POST /api/user/servers/{uuidShort}/compress-files
ConnectionTest
| Field | Type | Description |
|---|
database_typerequired | string | Database type |
database_portrequired | integer | Database port |
database_usernamerequired | string | Database username |
database_passwordrequired | string | Database password |
database_hostrequired | string | Database host |
Used by POST /api/admin/databases/test-connection
CopyRequest
| Field | Type | Description |
|---|
filesrequired | string[] | Array of file paths to copy |
locationrequired | string | Destination location |
name | string | Optional destination name (Calagopus) |
overwrite | boolean | Overwrite existing destination (Calagopus) |
Used by POST /api/user/servers/{uuidShort}/copy-files
CountryCode
| Field | Type | Description |
|---|
code | string | ISO 3166-1 alpha-2 country code |
name | string | Country name |
Database
| Field | Type | Description |
|---|
id | integer | Database ID |
name | string | Database name |
node_id | integer | Node ID (optional) |
database_type | string | Database type |
database_port | integer | Database port |
database_username | string | Database username |
database_host | string | Database host |
database_subdomain | string | Optional custom hostname shown to users for database access (e.g. db1.node.domain.de) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
DatabaseCreate
| Field | Type | Description |
|---|
namerequired | string | Database name |
node_id | integer | Node ID (optional) |
database_typerequired | string | Database type |
database_portrequired | integer | Database port |
database_usernamerequired | string | Database username |
database_passwordrequired | string | Database password |
database_hostrequired | string | Database host |
database_subdomain | string | Optional custom hostname shown to users for database access |
id | integer | Optional database ID (useful for migrations from other platforms) |
Used by PUT /api/admin/databases
DatabaseCreateRequest
| Field | Type | Description |
|---|
database_host_idrequired | integer | Database host ID |
database_namerequired | string | Database name (without server prefix) |
remote | string | Remote access pattern |
max_connections | integer | Maximum connections |
Used by POST /api/user/servers/{uuidShort}/databases
DatabaseCreateResponse
| Field | Type | Description |
|---|
id | integer | Created database ID |
database_name | string | Generated database name |
username | string | Generated username |
password | string | Generated password |
message | string | Success message |
Used by POST /api/user/servers/{uuidShort}/databases
DatabaseHost
| Field | Type | Description |
|---|
id | integer | Database host ID |
name | string | Database host name |
database_host | string | Database host address |
database_port | integer | Database host port |
database_type | string | Database type |
database_username | string | Database host username |
node_name | string | Associated node name |
healthy | boolean | Health status |
DatabaseUpdate
| Field | Type | Description |
|---|
name | string | Database name |
node_id | integer | Node ID |
database_type | string | Database type |
database_port | integer | Database port |
database_username | string | Database username |
database_password | string | Database password |
database_host | string | Database host |
database_subdomain | string | Optional custom hostname shown to users for database access |
Used by PATCH /api/admin/databases/{id}
DebugInfoResponse
| Field | Type | Description |
|---|
ip_info | object | IP detection debug information |
headers | object | All HTTP headers |
server_vars | object | Relevant $_SERVER variables |
Used by GET /api/debug/ip
DownloadProcess
| Field | Type | Description |
|---|
id | string | Download process ID |
url | string | Download URL |
status | string | Download status |
progress | number | Download progress percentage |
created_at | string (date-time) | Process creation time |
EmailLoginRequest
| Field | Type | Description |
|---|
emailrequired | string (email) | User email address |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by POST /api/user/auth/email-login/request
FastDlConfig
| Field | Type | Description |
|---|
enabled | boolean | Whether FastDL is enabled |
directory | string | Subdirectory within server data directory (e.g., "fastdl") |
url | string | Full FastDL URL when enabled |
command | string | Ready-to-use sv_downloadurl command |
FeatherCloudCredentialPair
| Field | Type | Description |
|---|
public_key | string | |
private_key | string | |
last_rotated_at | string (date-time) | Timestamp when the keypair was last rotated or updated |
FileContent
| Field | Type | Description |
|---|
path | string | File path |
content | string | File content (null for binary files) |
isBinary | boolean | Whether the file is binary |
mimeType | string | MIME type of the file |
extension | string | File extension |
size | integer | File size in bytes |
modified | integer | Last modification timestamp |
Used by GET /api/admin/file-manager/read
FileCreate
| Field | Type | Description |
|---|
pathrequired | string | Path for the new file or directory |
isDirectory | boolean | Whether to create a directory (default: false) |
Used by POST /api/admin/file-manager/create
FileItem
| Field | Type | Description |
|---|
name | string | File or directory name |
path | string | Relative path from project root |
isDirectory | boolean | Whether the item is a directory |
size | integer | File size in bytes (null for directories) |
modified | integer | Last modification timestamp |
permissions | string | File permissions in octal format |
FirewallRule
| Field | Type | Description |
|---|
id | integer | |
created_at | string (date-time) | |
updated_at | string (date-time) | |
server_uuid | string (uuid) | |
remote_ip | string | |
server_port | integer | |
priority | integer | |
type | string | |
protocol | string | |
FirewallRuleCreateRequest
| Field | Type | Description |
|---|
remote_iprequired | string | IP address or CIDR |
server_portrequired | integer | Allocated port (1-65535) |
priority | integer | Rule priority (0-10000) |
typerequired | string | |
protocol | string | |
Used by POST /api/user/servers/{uuidShort}/firewall
ForgotPasswordRequest
| Field | Type | Description |
|---|
emailrequired | string (email) | User email address |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PUT /api/user/auth/forgot-password
Image
| Field | Type | Description |
|---|
id | integer | Image ID |
name | string | Image name |
url | string | Image URL |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
ImageCreate
| Field | Type | Description |
|---|
namerequired | string | Image name |
urlrequired | string | Image URL |
Used by POST /api/admin/images
ImageUpload
| Field | Type | Description |
|---|
namerequired | string | Image name |
image | string (binary) | Image file (JPG, PNG, GIF, WebP, max 10MB) |
JwtResponse
| Field | Type | Description |
|---|
token | string | JWT token |
expires_at | integer | Token expiration timestamp |
server_uuid | string | Server UUID |
user_uuid | string | User UUID |
permissions | string[] | User permissions |
connection_string | string | WebSocket connection string |
Used by POST /api/user/servers/{uuidShort}/jwt
KnowledgebaseArticle
| Field | Type | Description |
|---|
id | integer | Article ID |
category_id | integer | Category ID |
title | string | Article title |
slug | string | Article slug |
icon | string | Article icon/logo URL |
content | string | Article content |
author_id | integer | Author user ID |
status | string | Article status |
pinned | string | Whether article is pinned |
sort_order | integer | Article sort order for positioning |
published_at | string (date-time) | Publication timestamp |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
KnowledgebaseArticleCreate
| Field | Type | Description |
|---|
category_idrequired | integer | Category ID |
titlerequired | string | Article title |
slug | string | Article slug |
icon | string | Article icon/logo URL |
contentrequired | string | Article content |
author_idrequired | integer | Author user ID |
status | string | Article status |
pinned | boolean | Whether article is pinned |
sort_order | integer | Article sort order for positioning |
published_at | string (date-time) | Publication timestamp |
Used by PUT /api/admin/knowledgebase/articles
KnowledgebaseArticleReorder
| Field | Type | Description |
|---|
articlesrequired | object[] | Array of articles with their new sort orders |
Used by POST /api/admin/knowledgebase/articles/reorder
KnowledgebaseArticleUpdate
| Field | Type | Description |
|---|
category_id | integer | Category ID |
title | string | Article title |
slug | string | Article slug |
icon | string | Article icon/logo URL |
content | string | Article content |
author_id | integer | Author user ID |
status | string | Article status |
pinned | boolean | Whether article is pinned |
sort_order | integer | Article sort order for positioning |
published_at | string (date-time) | Publication timestamp |
Used by PATCH /api/admin/knowledgebase/articles/{id}
KnowledgebaseCategory
| Field | Type | Description |
|---|
id | integer | Category ID |
name | string | Category name |
slug | string | Category slug |
icon | string | Category icon URL |
description | string | Category description |
position | integer | Category position for sorting |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
KnowledgebaseCategoryCreate
| Field | Type | Description |
|---|
namerequired | string | Category name |
slug | string | Category slug |
iconrequired | string | Category icon URL |
description | string | Category description |
position | integer | Category position for sorting |
Used by PUT /api/admin/knowledgebase/categories
KnowledgebaseCategoryUpdate
| Field | Type | Description |
|---|
name | string | Category name |
slug | string | Category slug |
icon | string | Category icon URL |
description | string | Category description |
position | integer | Category position for sorting |
Used by PATCH /api/admin/knowledgebase/categories/{id}
LanguageStat
| Field | Type | Description |
|---|
locale | string | Locale code |
name | string | Language name |
user_count | integer | Number of users |
percentage | number (float) | Percentage of total users |
LanguageTrend
| Field | Type | Description |
|---|
locale | string | Locale code |
month | string | Month (YYYY-MM) |
count | integer | Number of new users |
LdapLoginRequest
| Field | Type | Description |
|---|
provider_uuidrequired | string | LDAP provider UUID |
usernamerequired | string | LDAP username |
passwordrequired | string | LDAP password |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PUT /api/user/auth/ldap/login
Location
| Field | Type | Description |
|---|
id | integer | Location ID |
name | string | Location name |
description | string | Location description |
flag_code | string | ISO 3166-1 alpha-2 country code for flag display |
type | string | Location purpose type (immutable after creation) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
LocationCreate
| Field | Type | Description |
|---|
namerequired | string | Location name |
description | string | Location description |
flag_code | string | ISO 3166-1 alpha-2 country code (e.g., "us", "ua") for flag display |
typerequired | string | Location purpose: game hosting, VPS/VDS, or web hosting (immutable after creation) |
webhosting_alpha_accepted | boolean | Required to be true when creating a Web Hosting location |
id | integer | Optional location ID (useful for migrations from other platforms) |
Used by PUT /api/admin/locations
LocationUpdate
| Field | Type | Description |
|---|
name | string | Location name |
description | string | Location description |
flag_code | string | ISO 3166-1 alpha-2 country code (e.g., "us", "ua") for flag display. Set to null to remove the flag. |
type | string | Location purpose: game hosting, VPS/VDS, or web hosting (immutable after creation) |
Used by PATCH /api/admin/locations/{id}
LogContent
| Field | Type | Description |
|---|
logs | string | Log content as string |
file | string | Log file name |
type | string | Log type |
lines_count | integer | Number of lines in the log content |
Used by GET /api/admin/log-viewer/get
LogFile
| Field | Type | Description |
|---|
name | string | Log file name |
size | integer | File size in bytes |
modified | integer | Last modification timestamp |
type | string | Log type (web, app, mail, runner, unknown) |
LoginRequest
| Field | Type | Description |
|---|
username_or_emailrequired | string | User email address or username |
passwordrequired | string | User password |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PUT /api/user/auth/login
MailTemplate
| Field | Type | Description |
|---|
id | integer | Mail template ID |
name | string | Template name |
subject | string | Email subject |
body | string | Email body content |
deleted | string | Soft delete status |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
MailTemplateCreate
| Field | Type | Description |
|---|
namerequired | string | Template name |
subjectrequired | string | Email subject |
bodyrequired | string | Email body content |
Used by POST /api/admin/mail-templates
MassEmailResult
| Field | Type | Description |
|---|
queued_count | integer | Number of emails successfully queued |
failed_count | integer | Number of emails that failed to queue |
total_users | integer | Total number of valid users found |
Used by POST /api/admin/mail-templates/mass-email
Node
| Field | Type | Description |
|---|
id | integer | Node ID |
uuid | string | Node UUID |
name | string | Node name |
fqdn | string | Fully qualified domain name |
location_id | integer | Location ID |
daemon_token_id | string | Daemon token ID |
daemon_token | string | Daemon authentication token |
daemon_type | string | Node daemon implementation (FeatherWings or Calagopus wings-rs) |
capabilities | object | Feature capability flags for this daemon type |
public_ip_v4 | string | Public IPv4 address reachable by clients. Required when using the subdomain manager. |
public_ip_v6 | string | Public IPv6 address reachable by clients. |
sftp_subdomain | string | Custom subdomain for SFTP access (e.g., sftp.node.domain.de). DNS must be configured externally. |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
NodeCreate
| Field | Type | Description |
|---|
namerequired | string | Node name |
fqdnrequired | string | Fully qualified domain name |
location_idrequired | integer | Location ID |
daemon_type | string | Daemon implementation for this node |
public_ip_v4 | string | Public IPv4 address reachable by clients. Set this if you plan to use the subdomain manager. |
public_ip_v6 | string | Public IPv6 address reachable by clients. |
sftp_subdomain | string | Optional custom hostname for SFTP connections shown to users. |
id | integer | Optional node ID (useful for migrations from other platforms) |
Used by PUT /api/admin/nodes
NodeUpdate
| Field | Type | Description |
|---|
name | string | Node name |
fqdn | string | Fully qualified domain name |
location_id | integer | Location ID |
uuid | string | Node UUID (must be valid UUID format) |
daemon_type | string | Daemon implementation for this node |
public_ip_v4 | string | Public IPv4 address reachable by clients. Set this if you plan to use the subdomain manager. |
public_ip_v6 | string | Public IPv6 address reachable by clients. |
sftp_subdomain | string | Optional custom hostname for SFTP connections shown to users. |
Used by PATCH /api/admin/nodes/{id}
Notification
| Field | Type | Description |
|---|
id | integer | Notification ID |
user_id | integer | Target user ID (null = global) |
server_id | integer | Target server ID (null = account/global) |
title | string | Notification title |
message_markdown | string | Notification message in Markdown format |
type | string | Notification type |
is_dismissible | boolean | Whether the notification can be dismissed |
is_sticky | boolean | Whether the notification stays until explicitly closed |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
NotificationCreate
| Field | Type | Description |
|---|
titlerequired | string | Notification title |
message_markdownrequired | string | Notification message in Markdown format |
typerequired | string | Notification type |
user_id | integer | Target user ID (null = all users) |
server_id | integer | Target server ID (optional; implies owner) |
send_email | boolean | Also email the target user (requires user or server target) |
is_dismissible | boolean | Whether the notification can be dismissed (default: true) |
is_sticky | boolean | Whether the notification stays until explicitly closed (default: false) |
Used by PUT /api/admin/notifications
NotificationUpdate
| Field | Type | Description |
|---|
title | string | Notification title |
message_markdown | string | Notification message in Markdown format |
type | string | Notification type |
user_id | integer | Target user ID (null = all users) |
server_id | integer | Target server ID |
is_dismissible | boolean | Whether the notification can be dismissed |
is_sticky | boolean | Whether the notification stays until explicitly closed |
Used by PATCH /api/admin/notifications/{id}
OidcLoginState
| Field | Type | Description |
|---|
state | string | CSRF state parameter |
nonce | string | OIDC nonce for ID token |
OidcProvider
| Field | Type | Description |
|---|
uuid | string (uuid) | Provider UUID |
name | string | Display name |
issuer_url | string | OIDC issuer URL |
client_id | string | OIDC client ID |
scopes | string | Space-separated scopes |
email_claim | string | Email claim name |
subject_claim | string | Subject claim name |
group_claim | string | Group/role claim name |
group_value | string | Required group/role value |
auto_provision | string | Auto provision users |
require_email_verified | string | Require email_verified |
enabled | string | Whether this provider is enabled |
Used by PUT /api/admin/oidc/providers, PATCH /api/admin/oidc/providers/{uuid}
OnlineAddon
| Field | Type | Description |
|---|
id | integer | Addon ID |
identifier | string | Addon identifier |
name | string | Addon display name |
description | string | Addon description |
icon | string | Addon icon URL |
website | string | Addon website URL |
author | string | Addon author |
author_email | string | Author email |
maintainers | string[] | Addon maintainers |
tags | string[] | Addon tags |
verified | boolean | Whether addon is verified |
premium | integer | Whether addon is premium (0 = free, 1 = premium) |
premium_link | string | Purchase link for premium addon |
premium_price | string | Price for premium addon in EUR |
downloads | integer | Download count |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
latest_version | object | Latest published version metadata when available |
OnlineInstall
| Field | Type | Description |
|---|
identifierrequired | string | Addon identifier to install |
queued_identifiers | string[] | Identifiers selected for the same install session; plugin= dependencies in this list are installed automatically before this addon when missing. |
Used by POST /api/admin/plugins/online/install
OnlineSpell
| Field | Type | Description |
|---|
id | integer | Spell ID |
identifier | string | Spell identifier |
name | string | Spell display name |
description | string | Spell description |
icon | string | Spell icon URL |
website | string | Spell website |
author | string | Spell author |
author_email | string | Author email |
maintainers | string[] | Maintainers |
tags | string[] | Spell tags |
verified | boolean | Verified status |
downloads | integer | Download count |
created_at | string | Creation timestamp |
updated_at | string | Last update timestamp |
latest_version | object | Latest version information |
Permission
| Field | Type | Description |
|---|
id | integer | Permission ID |
role_id | integer | Role ID |
permission | string | Permission name |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
PermissionCreate
| Field | Type | Description |
|---|
role_idrequired | integer | Role ID |
permissionrequired | string | Permission name |
Used by PUT /api/admin/permissions
Plugin
| Field | Type | Description |
|---|
name | string | Plugin name |
identifier | string | Plugin identifier |
description | string | Plugin description |
version | string | Plugin version |
target | string | Target FeatherPanel version |
author | string[] | Plugin authors |
icon | string | Plugin icon URL |
flags | string[] | Plugin flags |
dependencies | string[] | Plugin dependencies |
requiredConfigs | string[] | Required configuration keys |
status | string | Plugin status |
dependencies_met | boolean | Whether dependencies are met |
required_configs_set | boolean | Whether required configs are set |
settings | object | Plugin settings |
config | object[] | Plugin configuration schema |
Used by GET /api/admin/plugin-manager/{identifier}
PluginCreate
| Field | Type | Description |
|---|
identifierrequired | string | Plugin identifier |
namerequired | string | Plugin name |
description | string | Plugin description |
version | string | Plugin version |
author | string[] | Plugin authors |
flags | string[] | Plugin flags |
dependencies | string[] | Plugin dependencies |
requiredConfigs | string[] | Required configuration keys |
configSchema | object[] | Configuration schema |
Used by POST /api/admin/plugin-manager
PluginFileCreate
| Field | Type | Description |
|---|
plugin_idrequired | string | Plugin identifier |
file_typerequired | string | File type to create |
name | string | File name (required for migration, cron, command) |
description | string | File description |
schedule | string | Schedule for cron jobs |
file | string (binary) | File to upload (for public_file type) |
Used by POST /api/admin/plugin-tools/create-file
PluginInfo
| Field | Type | Description |
|---|
plugin | object | |
configSchema | object[] | Plugin configuration schema |
PluginUpdate
| Field | Type | Description |
|---|
name | string | Plugin name |
description | string | Plugin description |
version | string | Plugin version |
target | string | Target FeatherPanel version |
author | string[] | Plugin authors |
flags | string[] | Plugin flags |
dependencies | string[] | Plugin dependencies |
requiredConfigs | string[] | Required configuration keys |
configSchema | object[] | Configuration schema |
Used by PUT /api/admin/plugin-manager/{identifier}, PATCH /api/admin/plugin-manager/{identifier}
PluginValidation
| Field | Type | Description |
|---|
config_valid | boolean | Whether plugin configuration is valid |
dependencies_met | boolean | Whether dependencies are met |
required_configs_set | boolean | Whether required configs are set |
identifier_valid | boolean | Whether identifier is valid |
flags_valid | boolean | Whether flags are valid |
files_exist | boolean | Whether required files exist |
overall_valid | boolean | Overall validation status |
Used by GET /api/admin/plugin-manager/{identifier}/validate
ProxyCreateRequest
| Field | Type | Description |
|---|
domainrequired | string | The domain name for the proxy |
iprequired | string | The target IP address to proxy to |
portrequired | string | The target port to proxy to |
sslrequired | boolean | Whether to enable SSL/TLS |
use_lets_encrypt | boolean | Whether to use Let's Encrypt for SSL |
client_email | string | Email for Let's Encrypt registration |
ssl_cert | string | SSL certificate content |
ssl_key | string | SSL private key content |
Used by POST /api/user/servers/{uuidShort}/proxy/create
PublicSettings
| Field | Type | Description |
|---|
settings | object | Public application settings with default values |
Used by GET /api/system/settings
PullFileRequest
| Field | Type | Description |
|---|
urlrequired | string (uri) | URL to download from |
rootrequired | string | Destination directory path |
fileName | string | Custom filename |
foreground | boolean | Run in foreground |
useHeader | boolean | Use headers |
Used by POST /api/user/servers/{uuidShort}/pull-file
RateLimitRoute
| Field | Type | Description |
|---|
route_name | string | The route name |
per_second | integer | Rate limit per second |
per_minute | integer | Rate limit per minute |
per_hour | integer | Rate limit per hour |
per_day | integer | Rate limit per day |
namespace | string | Namespace for rate limiting |
Used by GET /api/admin/rate-limits/{routeName}
Realm
| Field | Type | Description |
|---|
id | integer | Realm ID |
name | string | Realm name |
description | string | Realm description |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
RealmCreate
| Field | Type | Description |
|---|
namerequired | string | Realm name |
description | string | Realm description |
id | integer | Optional realm ID (useful for migrations from other platforms) |
Used by PUT /api/admin/realms
RegisterRequest
| Field | Type | Description |
|---|
usernamerequired | string | Username (alphanumeric and underscores only) |
emailrequired | string (email) | User email address |
passwordrequired | string | User password |
first_namerequired | string | User first name |
last_namerequired | string | User last name |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PUT /api/user/auth/register
RegisterResponse
| Field | Type | Description |
|---|
user | object | User information |
preferences | object | User preferences |
message | string | Success message |
Used by PUT /api/user/auth/register
RegistrationTrend
| Field | Type | Description |
|---|
date | string (date) | Date |
count | integer | Number of registrations |
ResetPasswordRequest
| Field | Type | Description |
|---|
tokenrequired | string | Password reset token from email |
passwordrequired | string | New password |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PUT /api/user/auth/reset-password
Role
| Field | Type | Description |
|---|
id | integer | Role ID |
name | string | Role name |
display_name | string | Role display name |
color | string | Role color |
custom_badge | string | Optional short label shown on user badges instead of the display name |
badge_icon | string | Optional icon or image URL shown on role badges |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
RoleCreate
| Field | Type | Description |
|---|
namerequired | string | Role name |
display_namerequired | string | Role display name |
colorrequired | string | Role color |
custom_badge | string | Optional short label shown on user badges |
badge_icon | string | Optional icon or image URL shown on role badges |
Used by PUT /api/admin/roles
RoleDistribution
| Field | Type | Description |
|---|
role_id | integer | Role ID |
role_name | string | Role name |
role_display_name | string | Role display name |
role_color | string | Role color |
user_count | integer | Number of users with this role |
percentage | number (float) | Percentage of total users |
RoleUpdate
| Field | Type | Description |
|---|
name | string | Role name |
display_name | string | Role display name |
color | string | Role color |
custom_badge | string | Optional short label shown on user badges |
badge_icon | string | Optional icon or image URL shown on role badges |
Used by PATCH /api/admin/roles/{id}
ScheduleCreateRequest
| Field | Type | Description |
|---|
namerequired | string | Schedule name |
cron_day_of_weekrequired | string | Cron day of week expression |
cron_monthrequired | string | Cron month expression |
cron_day_of_monthrequired | string | Cron day of month expression |
cron_hourrequired | string | Cron hour expression |
cron_minuterequired | string | Cron minute expression |
timezone | string | IANA timezone the cron expression is authored in (default: "UTC") |
is_active | boolean | Whether schedule is active |
only_when_online | boolean | Whether to run only when server is online |
Used by POST /api/user/servers/{uuidShort}/schedules
ScheduleUpdateRequest
| Field | Type | Description |
|---|
name | string | Schedule name |
cron_day_of_week | string | Cron day of week expression |
cron_month | string | Cron month expression |
cron_day_of_month | string | Cron day of month expression |
cron_hour | string | Cron hour expression |
cron_minute | string | Cron minute expression |
timezone | string | IANA timezone the cron expression is authored in |
is_active | boolean | Whether schedule is active |
only_when_online | boolean | Whether to run only when server is online |
Used by PUT /api/user/servers/{uuidShort}/schedules/{scheduleId}
SelftestResponse
| Field | Type | Description |
|---|
status | string | Overall system status |
checks | object | Individual check results |
timestamp | integer | This check timestamp |
cached | boolean | If the response is cached |
Used by GET /api/selftest
Server
| Field | Type | Description |
|---|
id | integer | Server ID |
uuid | string | Server UUID |
uuidShort | string | Short server UUID |
name | string | Server name |
description | string | Server description |
startup | string | Server startup command |
image | string | Server Docker image |
status | string | Server status |
node_id | integer | Node ID |
owner_id | integer | Owner user ID |
memory | integer | Memory limit in MB |
swap | integer | Swap limit in MB |
disk | integer | Disk limit in MB |
io | integer | IO limit |
cpu | integer | CPU limit percentage |
allocation_id | integer | Allocation ID |
realms_id | integer | Realm ID |
spell_id | integer | Spell ID |
allocation_limit | integer | Allocation limit |
database_limit | integer | Database limit |
backup_limit | integer | Backup limit |
external_id | string | External ID |
threads | string | Specific CPU threads this process can run on. Single number, comma list, or ranges like 0,1,3 or 0-1,3 |
skip_scripts | boolean | Skip scripts flag |
show_on_status | boolean | Whether this server appears on the public status page |
auto_start | boolean | Automatically start this server after the node reconnects (default off) |
auto_start_delay | integer | Extra seconds to wait before auto-starting this server after reconnect |
manually_stopped | boolean | Whether the server was intentionally stopped (auto-start skips these) |
oom_killer | boolean | Whether the OOM killer is enabled (true) or disabled (false) |
suspended | boolean | Suspended flag |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
ServerActivity
| Field | Type | Description |
|---|
id | integer | Activity ID |
server_id | integer | Server ID |
node_id | integer | Node ID |
user_id | integer | User ID |
activity_type | string | Type of activity |
activity_description | string | Activity description |
metadata | object | Activity metadata |
ip_address | string | IP address |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
ServerAllocation
| Field | Type | Description |
|---|
id | integer | Allocation ID |
server_id | integer | Server ID |
node_id | integer | Node ID |
ip | string | IP address |
port | integer | Port number |
notes | string | Allocation notes |
is_primary | boolean | Whether this is the primary allocation |
created_at | string (date-time) | Allocation creation timestamp |
updated_at | string (date-time) | Allocation update timestamp |
ServerAllocationInfo
| Field | Type | Description |
|---|
id | integer | Server ID |
name | string | Server name |
uuid | string | Server UUID |
allocation_limit | integer | Maximum number of allocations allowed |
current_allocations | integer | Current number of allocations |
can_add_more | boolean | Whether more allocations can be added |
primary_allocation_id | integer | ID of the primary allocation |
ServerCreate
| Field | Type | Description |
|---|
node_idrequired | integer | Node ID |
namerequired | string | Server name |
description | string | Server description (optional) |
owner_idrequired | integer | Owner user ID |
memoryrequired | integer | Memory limit in MB |
swaprequired | integer | Swap limit in MB (-1 = unlimited, 0 = disabled) |
diskrequired | integer | Disk limit in MB |
iorequired | integer | IO limit |
cpurequired | integer | CPU limit percentage |
allocation_idrequired | integer | Allocation ID |
realms_idrequired | integer | Realm ID |
spell_idrequired | integer | Spell ID |
startuprequired | string | Server startup command |
imagerequired | string | Server Docker image |
status | string | Server status |
allocation_limit | integer | Allocation limit |
database_limit | integer | Database limit |
backup_limit | integer | Backup limit |
external_id | string | External ID |
threads | string | Specific CPU threads this process can run on. Single number, comma list, or ranges like 0,1,3 or 0-1,3 |
skip_scripts | boolean | Skip scripts flag |
show_on_status | boolean | Whether this server appears on the public status page |
auto_start | boolean | Automatically start this server after the node reconnects (default off) |
auto_start_delay | integer | Extra seconds to wait before auto-starting this server after reconnect |
oom_disabled | boolean | OOM disabled flag |
variables | object | Server variables as key-value pairs |
mount_ids | integer[] | Optional: Wings bind mounts to attach (validated against node/spell rules) |
Used by PUT /api/admin/servers
ServerDatabase
| Field | Type | Description |
|---|
id | integer | Database ID |
server_id | integer | Server ID |
database_host_id | integer | Database host ID |
database | string | Database name |
username | string | Database username |
password | string | Database password |
remote | string | Remote access pattern |
max_connections | integer | Maximum connections |
database_host_name | string | Database host name |
database_host | string | Database host address |
database_port | integer | Database host port |
database_type | string | Database type |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
Used by GET /api/user/servers/{uuidShort}/databases/{databaseId}
ServerDetail
| Field | Type | Description |
|---|
id | integer | Server ID |
uuid | string | Server UUID |
uuidShort | string | Server short UUID |
name | string | Server name |
description | string | Server description |
status | string | Server status |
memory | integer | Memory limit in MB |
disk | integer | Disk limit in MB |
cpu | integer | CPU limit percentage |
swap | integer | Swap limit in MB |
io | integer | IO limit |
node | object | Node information |
realm | object | Realm information |
spell | object | Spell information |
allocation | object | Allocation information |
location | object | Location information |
sftp | object | |
variables | object[] | Server variables |
Used by GET /api/user/servers/{uuidShort}
ServerFileItem
| Field | Type | Description |
|---|
name | string | File or directory name |
type | string | Item type |
size | integer | File size in bytes (directory entry size for folders) |
directory_size | integer | Recursive size of folder contents in bytes (only when requested from Wings) |
permissions | string | File permissions |
modified_at | string (date-time) | Last modified timestamp |
path | string | Full file path |
ServerImportRequest
| Field | Type | Description |
|---|
userrequired | string | Username for SFTP/FTP authentication |
passwordrequired | string | Password for SFTP/FTP authentication |
hoterequired | string | Hostname or IP address of the remote server |
portrequired | integer | Port number (1-65535). Typically 22 for SFTP, 21 for FTP |
srclocationrequired | string | Source path on the remote server (absolute path) |
dstlocationrequired | string | Destination path on the local server (relative to server root) |
wipe | boolean | If true, clears the destination directory before importing |
typerequired | string | Connection type |
Used by POST /api/user/servers/{uuidShort}/import
ServerInstallConfig
| Field | Type | Description |
|---|
container_image | string | Docker container image |
entrypoint | string | Container entrypoint |
script | string | Installation script |
Used by GET /api/remote/servers/{uuid}/install
ServerSchedule
| Field | Type | Description |
|---|
id | integer | Schedule ID |
server_id | integer | Server ID |
name | string | Schedule name |
cron_day_of_week | string | Cron day of week expression |
cron_month | string | Cron month expression |
cron_day_of_month | string | Cron day of month expression |
cron_hour | string | Cron hour expression |
cron_minute | string | Cron minute expression |
timezone | string | IANA timezone the cron expression is authored in (e.g. "Europe/Paris", "UTC") |
is_active | boolean | Whether schedule is active |
is_processing | boolean | Whether schedule is currently processing |
only_when_online | boolean | Whether to run only when server is online |
next_run_at | string (date-time) | Next scheduled run time |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
Used by GET /api/user/servers/{uuidShort}/schedules/{scheduleId}
ServerSearch
| Field | Type | Description |
|---|
query | string | Search query |
has_results | boolean | Whether search returned results |
ServerSFTP
| Field | Type | Description |
|---|
host | string | SFTP host |
port | integer | SFTP port |
username | string | SFTP username |
password | string | SFTP password placeholder |
url | string | SFTP connection URL |
ServersResetResponse
| Field | Type | Description |
|---|
success | boolean | Whether the reset was successful |
message | string | Success message |
Used by POST /api/remote/servers/reset
ServerStatusResponse
| Field | Type | Description |
|---|
state | string | Current server state |
server_uuid | string | Server UUID |
node_id | integer | Node ID |
ServerSubdomainAvailableDomain
| Field | Type | Description |
|---|
uuid | string | |
domain | string | |
protocol_service | string | |
protocol_type | string | |
priority | integer | |
weight | integer | |
ttl | integer | |
ServerSubdomainEntry
| Field | Type | Description |
|---|
uuid | string | |
domain | string | |
subdomain | string | |
record_type | string | |
port | integer | |
created_at | string | |
ServerUpdate
| Field | Type | Description |
|---|
node_id | integer | Node ID |
name | string | Server name |
description | string | Server description |
owner_id | integer | Owner user ID |
memory | integer | Memory limit in MB |
swap | integer | Swap limit in MB (-1 = unlimited, 0 = disabled) |
disk | integer | Disk limit in MB |
io | integer | IO limit |
cpu | integer | CPU limit percentage |
allocation_id | integer | Allocation ID |
realms_id | integer | Realm ID |
spell_id | integer | Spell ID |
startup | string | Server startup command |
image | string | Server Docker image |
status | string | Server status |
allocation_limit | integer | Allocation limit |
database_limit | integer | Database limit |
backup_limit | integer | Backup limit |
external_id | string | External ID |
threads | string | Specific CPU threads this process can run on. Single number, comma list, or ranges like 0,1,3 or 0-1,3 |
skip_scripts | boolean | Skip scripts flag |
show_on_status | boolean | Whether this server appears on the public status page |
auto_start | boolean | Automatically start this server after the node reconnects (default off) |
auto_start_delay | integer | Extra seconds to wait before auto-starting this server after reconnect |
oom_disabled | boolean | OOM disabled flag |
variables | object | Server variables as key-value pairs |
mount_ids | integer[] | Optional: replace Wings bind mounts for this server |
Used by PATCH /api/admin/servers/{id}
ServerUpdateRequest
| Field | Type | Description |
|---|
name | string | Server name |
description | string | Server description |
startup | string | Startup command |
image | string | Docker image |
spell_id | integer | Spell ID to change server spell |
wipe_files | boolean | Whether to delete all server files before reinstalling (only applies when changing spell_id) |
auto_start | boolean | Start automatically after node reboot/reconnect |
auto_start_delay | integer | Extra delay in seconds before auto-start |
variables | object[] | Server variables |
Used by PUT /api/user/servers/{uuidShort}
ServerVariable
| Field | Type | Description |
|---|
id | integer | Variable ID |
server_id | integer | Server ID |
variable_id | integer | Spell variable ID |
variable_value | string | Variable value |
name | string | Variable name |
description | string | Variable description |
env_variable | string | Environment variable name |
default_value | string | Default value |
user_viewable | boolean | User viewable flag |
user_editable | boolean | User editable flag |
rules | string | Validation rules |
field_type | string | Field type |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
SessionUpdateRequest
| Field | Type | Description |
|---|
username | string | Username (alphanumeric and underscores only) |
email | string (email) | User email address |
first_name | string | User first name |
last_name | string | User last name |
password | string | User password |
avatar | string (uri) | Avatar URL (must start with https://) |
ticket_signature | string | Ticket signature (supports Markdown) |
two_fa_enabled | boolean | Two-factor authentication enabled status |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PATCH /api/user/session
Setting
| Field | Type | Description |
|---|
name | string | Setting name/key |
value | string | Current setting value |
description | string | Setting description |
type | string | Setting input type |
required | boolean | Whether the setting is required |
placeholder | string | Placeholder text for the input |
validation | string | Validation rules |
options | string[] | Available options for select fields |
category | string | Setting category |
SettingCategory
| Field | Type | Description |
|---|
id | string | Category ID |
name | string | Category name |
description | string | Category description |
icon | string | Category icon |
settings_count | integer | Number of settings in this category |
SftpAuthErrorResponse
| Field | Type | Description |
|---|
error | string | Error message |
SftpAuthRequest
| Field | Type | Description |
|---|
typerequired | string | Authentication type |
usernamerequired | string | Username in format username.serverid |
passwordrequired | string | Password or public key content |
iprequired | string | Client IP address |
session_id | string | Session ID |
client_version | string | SFTP client version |
Used by POST /api/remote/sftp/auth
SftpAuthSuccessResponse
| Field | Type | Description |
|---|
server | string | Server UUID |
user | string | User UUID |
permissions | string[] | File permissions |
Used by POST /api/remote/sftp/auth
Spell
| Field | Type | Description |
|---|
id | integer | Spell ID |
uuid | string | Spell UUID |
realm_id | integer | Realm ID |
author | string | Spell author |
name | string | Spell name |
description | string | Spell description |
features | string | Spell features (JSON) |
docker_images | string | Docker images (JSON) |
default_docker_image | string | Default Docker image used on new server installs |
file_denylist | string | File denylist (JSON) |
update_url | string | Update URL |
config_files | string | Config files |
config_startup | string | Config startup |
config_logs | string | Config logs |
config_stop | string | Config stop |
startup | string | Startup command |
script_container | string | Script container |
script_entry | string | Script entry point |
script_is_privileged | boolean | Script is privileged |
script_install | string | Installation script |
force_outgoing_ip | boolean | Force outgoing IP |
config_from | integer | Config from spell ID |
copy_script_from | integer | Copy script from spell ID |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
SpellCreate
| Field | Type | Description |
|---|
realm_idrequired | integer | Realm ID |
authorrequired | string | Spell author |
namerequired | string | Spell name |
description | string | Spell description |
features | string | Spell features (JSON) |
docker_images | string | Docker images (JSON) |
default_docker_image | string | Default Docker image used on new server installs |
file_denylist | string | File denylist (JSON) |
update_url | string | Update URL |
config_files | string | Config files |
config_startup | string | Config startup |
config_logs | string | Config logs |
config_stop | string | Config stop |
startup | string | Startup command |
script_container | string | Script container |
script_entry | string | Script entry point |
script_is_privileged | boolean | Script is privileged |
script_install | string | Installation script |
force_outgoing_ip | boolean | Force outgoing IP |
config_from | integer | Config from spell ID |
copy_script_from | integer | Copy script from spell ID |
uuid | string | Spell UUID (auto-generated if not provided) |
id | integer | Optional spell ID (useful for migrations from other platforms) |
Used by PUT /api/admin/spells
SpellUpdate
| Field | Type | Description |
|---|
realm_id | integer | Realm ID |
author | string | Spell author |
name | string | Spell name |
description | string | Spell description |
features | string | Spell features (JSON) |
docker_images | string | Docker images (JSON) |
default_docker_image | string | Default Docker image used on new server installs |
file_denylist | string | File denylist (JSON) |
update_url | string | Update URL |
config_files | string | Config files |
config_startup | string | Config startup |
config_logs | string | Config logs |
config_stop | string | Config stop |
startup | string | Startup command |
script_container | string | Script container |
script_entry | string | Script entry point |
script_is_privileged | boolean | Script is privileged |
script_install | string | Installation script |
force_outgoing_ip | boolean | Force outgoing IP |
config_from | integer | Config from spell ID |
copy_script_from | integer | Copy script from spell ID |
uuid | string | Spell UUID |
Used by PATCH /api/admin/spells/{id}
SpellVariable
| Field | Type | Description |
|---|
id | integer | Variable ID |
spell_id | integer | Spell ID |
name | string | Variable name |
description | string | Variable description |
env_variable | string | Environment variable name |
default_value | string | Default value |
user_viewable | boolean | User viewable flag |
user_editable | boolean | User editable flag |
rules | string | Validation rules |
field_type | string | Field type |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
SpellVariableCreate
| Field | Type | Description |
|---|
namerequired | string | Variable name |
env_variablerequired | string | Environment variable name |
descriptionrequired | string | Variable description |
default_valuerequired | string | Default value |
user_viewable | boolean | User viewable flag |
user_editable | boolean | User editable flag |
rules | string | Validation rules |
field_type | string | Field type |
Used by POST /api/admin/spells/{spellId}/variables
SpellVariableUpdate
| Field | Type | Description |
|---|
name | string | Variable name |
env_variable | string | Environment variable name |
description | string | Variable description |
default_value | string | Default value |
user_viewable | boolean | User viewable flag |
user_editable | boolean | User editable flag |
rules | string | Validation rules |
field_type | string | Field type |
Used by PATCH /api/admin/spell-variables/{id}
SshKeyActivity
| Field | Type | Description |
|---|
id | integer | Activity ID |
user_uuid | string | User UUID |
name | string | Activity name |
context | string | Activity context |
ip_address | string | IP address |
created_at | string (date-time) | Creation timestamp |
SshKeyCreateRequest
| Field | Type | Description |
|---|
namerequired | string | SSH key name |
public_keyrequired | string | SSH public key |
Used by POST /api/user/ssh-keys
SshKeySearch
| Field | Type | Description |
|---|
query | string | Search query |
has_results | boolean | Whether search returned results |
SubdomainManagerDomain
| Field | Type | Description |
|---|
uuid | string | |
domain | string | |
description | string | |
is_active | integer | |
cloudflare_zone_id | string | |
cloudflare_account_id | string | |
subdomain_count | integer | |
spells | SubdomainManagerSpellMapping[] | |
created_at | string | |
updated_at | string | |
SubdomainManagerSpellMapping
| Field | Type | Description |
|---|
spell_id | integer | |
protocol_service | string | |
protocol_type | string | |
priority | integer | |
weight | integer | |
ttl | integer | |
spell | object | |
SubdomainManagerSubdomain
| Field | Type | Description |
|---|
uuid | string | |
subdomain | string | |
record_type | string | |
port | integer | |
server_id | integer | |
spell_id | integer | |
cloudflare_record_id | string | |
created_at | string | |
Subuser
| Field | Type | Description |
|---|
id | integer | Subuser ID |
user_id | integer | User ID |
server_id | integer | Server ID |
permissions | string[] | Array of permission strings |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
Used by GET /api/user/servers/{uuidShort}/subusers/{subuserId}
SubuserUpdateRequest
| Field | Type | Description |
|---|
permissions | string[] | Array of permission strings |
Task
| Field | Type | Description |
|---|
id | integer | Task ID |
schedule_id | integer | Schedule ID |
sequence_id | integer | Task sequence order |
action | string | Task action type |
payload | string | Task payload data |
time_offset | integer | Time offset in seconds |
is_queued | boolean | Whether task is queued |
continue_on_failure | boolean | Whether to continue on failure |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
Used by GET /api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/{taskId}
Ticket
| Field | Type | Description |
|---|
id | integer | Ticket ID |
uuid | string (uuid) | Ticket UUID |
user_uuid | string (uuid) | User UUID who created the ticket |
server_id | integer | Server ID if ticket is related to a server |
category_id | integer | Category ID |
priority_id | integer | Priority ID |
status_id | integer | Status ID |
title | string | Ticket title |
description | string | Ticket description |
closed_at | string (date-time) | Ticket closed timestamp |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
TicketAttachment
| Field | Type | Description |
|---|
id | integer | Attachment ID |
ticket_id | integer | Ticket ID |
message_id | integer | Message ID |
file_name | string | Stored file name |
file_path | string | Relative file path |
file_size | integer | File size in bytes |
file_type | string | MIME type |
user_downloadable | boolean | Whether users can download this file |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
TicketCategory
| Field | Type | Description |
|---|
id | integer | Category ID |
name | string | Category name |
icon | string | Category icon |
color | string | Category color |
support_email | string | Support email for this category |
open_hours | string | Open hours |
description | string | Category description |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
TicketCategoryCreate
| Field | Type | Description |
|---|
namerequired | string | Category name |
icon | string | Category icon |
color | string | Category color |
support_email | string | Support email for this category |
open_hours | string | Open hours |
description | string | Category description |
Used by PUT /api/admin/tickets/categories
TicketCategoryUpdate
| Field | Type | Description |
|---|
name | string | Category name |
icon | string | Category icon |
color | string | Category color |
support_email | string | Support email for this category |
open_hours | string | Open hours |
description | string | Category description |
Used by PATCH /api/admin/tickets/categories/{id}
TicketCreate
| Field | Type | Description |
|---|
user_uuidrequired | string (uuid) | User UUID who is creating the ticket |
server_id | integer | Server ID if ticket is related to a server |
category_idrequired | integer | Category ID |
priority_idrequired | integer | Priority ID |
status_idrequired | integer | Status ID |
titlerequired | string | Ticket title |
descriptionrequired | string | Ticket description |
Used by PUT /api/admin/tickets
TicketMessage
| Field | Type | Description |
|---|
id | integer | Message ID |
ticket_id | integer | Ticket ID |
user_uuid | string (uuid) | User UUID who sent the message |
message | string | Message content |
is_internal | boolean | Whether this is an internal note (staff only) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
TicketPriority
| Field | Type | Description |
|---|
id | integer | Priority ID |
name | string | Priority name |
color | string | Priority color |
sort_order | integer | Display order (lower appears first) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
TicketPriorityCreate
| Field | Type | Description |
|---|
namerequired | string | Priority name |
color | string | Priority color |
sort_order | integer | Display order (lower appears first) |
Used by PUT /api/admin/tickets/priorities
TicketStatus
| Field | Type | Description |
|---|
id | integer | Status ID |
name | string | Status name |
color | string | Status color |
sort_order | integer | Display order (lower appears first) |
is_default | integer | Whether new tickets use this status (0 or 1) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
TicketStatusCreate
| Field | Type | Description |
|---|
namerequired | string | Status name |
color | string | Status color |
sort_order | integer | Display order (lower appears first) |
is_default | boolean | Assign this status to newly created tickets |
Used by PUT /api/admin/tickets/statuses
TicketStatusUpdate
| Field | Type | Description |
|---|
name | string | Status name |
color | string | Status color |
sort_order | integer | Display order (lower appears first) |
is_default | boolean | Assign this status to newly created tickets |
Used by PATCH /api/admin/tickets/statuses/{id}
TicketUpdate
| Field | Type | Description |
|---|
server_id | integer | Server ID if ticket is related to a server |
category_id | integer | Category ID |
priority_id | integer | Priority ID |
status_id | integer | Status ID |
title | string | Ticket title |
description | string | Ticket description |
closed_at | string (date-time) | Ticket closed timestamp |
Used by PATCH /api/admin/tickets/{uuid}
TopUser
| Field | Type | Description |
|---|
id | integer | User ID |
uuid | string | User UUID |
username | string | Username |
email | string | Email address |
first_name | string | First name |
last_name | string | Last name |
server_count | integer | Number of servers owned |
TranslationFile
| Field | Type | Description |
|---|
code | string | |
name | string | |
file | string | |
size | integer | |
modified | string | |
TwoFactorEnableRequest
| Field | Type | Description |
|---|
coderequired | string | 6-digit TOTP code |
secretrequired | string | 16-character secret key |
turnstile_token | string | CloudFlare Turnstile token (required if Turnstile is enabled) |
Used by PUT /api/user/auth/two-factor
TwoFactorRequiredResponse
| Field | Type | Description |
|---|
email | string | User email address |
challenge | string | Short-lived token proving password auth succeeded; required for /two-factor |
message | string | 2FA required message |
TwoFactorSetupResponse
| Field | Type | Description |
|---|
qr_code_url | string | QR code URL for authenticator app |
secret | string | Secret key for manual entry |
message | string | Success message |
Used by GET /api/user/auth/two-factor
TwoFactorVerifyRequest
| Field | Type | Description |
|---|
emailrequired | string (email) | User email address |
coderequired | string | 6-digit TOTP code |
challengerequired | string | Challenge token from the password authentication step (TWO_FACTOR_REQUIRED) |
Used by POST /api/user/auth/two-factor
User
| Field | Type | Description |
|---|
id | integer | User ID |
uuid | string | User UUID |
username | string | Username |
first_name | string | First name |
last_name | string | Last name |
email | string (email) | Email address |
email_verified | boolean | Whether the user email is verified |
avatar | string (uri) | Avatar URL |
last_seen | string (date-time) | Last seen timestamp |
banned | boolean | Banned status |
two_fa_enabled | boolean | Two-factor authentication enabled |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
role | object | User role information |
activities | object[] | User activities |
mails | object[] | User mail history |
UserActivity
| Field | Type | Description |
|---|
name | string | Activity name |
context | string | Activity context |
ip_address | string | IP address |
created_at | string (date-time) | Activity timestamp |
UserAnalyticsOverview
| Field | Type | Description |
|---|
total | integer | Total user count |
active | integer | Active users (not banned) |
banned | integer | Banned users |
verified | integer | Email verified users |
two_fa_enabled | integer | Users with 2FA enabled |
unverified | integer | Unverified users |
percentage_verified | number (float) | Percentage of verified users |
percentage_banned | number (float) | Percentage of banned users |
percentage_two_fa | number (float) | Percentage of users with 2FA |
Used by GET /api/admin/analytics/users/overview
UserCreate
| Field | Type | Description |
|---|
usernamerequired | string | Username |
first_namerequired | string | First name |
last_namerequired | string | Last name |
emailrequired | string (email) | Email address |
passwordrequired | string | Password |
avatar | string (uri) | Avatar URL |
role_id | integer | Role ID (defaults to 1) |
Used by PUT /api/admin/users
UserMail
| Field | Type | Description |
|---|
subject | string | Mail subject |
template | string | Mail template |
data | object | Mail data |
status | string | Mail status |
created_at | string (date-time) | Mail timestamp |
UserNotification
| Field | Type | Description |
|---|
id | integer | Notification ID |
user_id | integer | Target user ID (null = global) |
server_id | integer | Target server ID (null = account/global) |
title | string | Notification title |
message_markdown | string | Notification message in Markdown format |
type | string | Notification type |
is_dismissible | boolean | Whether the notification can be dismissed |
is_sticky | boolean | Whether the notification stays until explicitly closed |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
UserPreferences
User preferences stored as localStorage key-value pairs
| Field | Type | Description |
|---|
timezone | string | IANA timezone identifier used for date rendering; null means browser default |
favorite_server_uuids | string (uuid)[] | Pinned server UUIDs (max 50) |
hide_server_ips | boolean | Mask server IP addresses in the panel UI for this account only |
Used by PATCH /api/user/preferences
UserSearchResult
| Field | Type | Description |
|---|
id | integer | User ID |
username | string | Username |
email | string (email) | Email address |
uuid | string | User UUID |
first_name | string | First name |
last_name | string | Last name |
UserServer
| Field | Type | Description |
|---|
id | integer | Server ID |
uuid | string | Server UUID |
uuidShort | string | Server short UUID |
name | string | Server name |
description | string | Server description |
status | string | Server status |
memory | integer | Memory limit in MB |
disk | integer | Disk limit in MB |
cpu | integer | CPU limit percentage |
swap | integer | Swap limit in MB |
io | integer | IO limit |
is_subuser | boolean | Whether user is a subuser |
subuser_permissions | string[] | Subuser permissions |
subuser_id | integer | Subuser ID if applicable |
node | object | |
location | object | |
realm | object | |
spell | object | |
allocation | object | |
UserServerActivity
| Field | Type | Description |
|---|
id | integer | Activity ID |
server_id | integer | Server ID |
node_id | integer | Node ID |
user_id | integer | User ID (null for daemon events) |
event | string | Activity event name |
metadata | object | Activity metadata (parsed from JSON) |
ip | string | IP address |
timestamp | string (date-time) | Activity timestamp |
created_at | string (date-time) | Created timestamp |
updated_at | string (date-time) | Updated timestamp |
user | object | User information (null for daemon events) |
UserUpdate
| Field | Type | Description |
|---|
username | string | Username |
first_name | string | First name |
last_name | string | Last name |
email | string (email) | Email address |
password | string | Password |
avatar | string (uri) | Avatar URL |
role_id | integer | Role ID |
banned | boolean | Banned status |
Used by PATCH /api/admin/users/{uuid}
UserVmInstanceActivity
| Field | Type | Description |
|---|
id | integer | User-facing VM instance activity log (separate table, like ServerActivityController for servers). |
vm_instance_id | integer | |
vm_node_id | integer | |
user_id | integer | |
event | string | |
metadata | object | |
ip | string | |
timestamp | string (date-time) | |
user | object | |
VdsChatbotResponse
| Field | Type | Description |
|---|
response | string | VDS AI assistant response |
VmInstance
| Field | Type | Description |
|---|
id | integer | VM Instance ID |
vmid | integer | Proxmox VMID |
vm_node_id | integer | VM Node ID |
user_uuid | string | User UUID |
pve_node | string | Proxmox node name |
plan_id | integer | Plan ID |
template_id | integer | Template ID |
vm_type | string | VM Type |
hostname | string | Hostname |
status | string | VM Status |
ip_address | string | IP Address |
subnet_mask | string | Subnet Mask |
gateway | string | Gateway |
vm_ip_id | integer | VM IP ID |
notes | string | Notes |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
VmInstanceCreate
| Field | Type | Description |
|---|
vm_node_idrequired | integer | VM Node ID |
template_idrequired | integer | Template ID |
pve_node | string | Explicit Proxmox cluster node to place the VM on |
memory | integer | Memory in MB |
cpus | integer | Number of CPU sockets |
cores | integer | Number of CPU cores per socket |
disk | integer | Disk size in GB |
storage | string | Storage name |
bridge | string | Network bridge |
on_boot | integer | Start on boot |
hostname | string | Hostname |
vm_ip_id | integer | Specific IP ID to assign |
networks | object[] | List of network IP assignments for this VM |
user_uuid | string | User UUID |
notes | string | Notes |
ci_user | string | Cloud-init user (required for KVM/QEMU) |
ci_password | string | Cloud-init password (required for KVM/QEMU). Not used for LXC. |
Used by PUT /api/admin/vm-instances
VmInstanceUpdate
| Field | Type | Description |
|---|
hostname | string | Hostname |
notes | string | Notes |
user_uuid | string | User UUID |
vm_ip_id | integer | VM IP ID |
memory | integer | Memory in MB |
cpus | integer | Number of CPUs |
cores | integer | Number of Cores |
on_boot | boolean | Start on boot |
networks | object[] | List of networks (LXC) |
nameserver | string | Nameserver (LXC) |
searchdomain | string | Search domain (LXC) |
bios | string | QEMU BIOS mode: seabios or ovmf (EFI) |
efi_enabled | boolean | Enable EFI disk (QEMU only) |
efi_storage | string | Storage for EFI disk (QEMU only) |
tpm_enabled | boolean | Enable TPM state disk (QEMU only) |
tpm_storage | string | Storage for TPM state disk (QEMU only) |
Used by PATCH /api/admin/vm-instances/{id}
VmNode
| Field | Type | Description |
|---|
id | integer | VM Node ID |
name | string | VM Node name |
description | string | VM Node description |
location_id | integer | Location ID (must be type=vps) |
fqdn | string | Proxmox host FQDN or IP |
scheme | string | Connection scheme |
port | integer | Proxmox API port |
user | string | Proxmox API user (e.g. root@pam) |
token_id | string | Proxmox API token ID |
secret | string | Proxmox API token secret |
tls_no_verify | string | Skip TLS verification |
timeout | integer | Timeout in seconds |
addional_headers | string | Additional HTTP headers (JSON encoded, optional) |
additional_params | string | Additional query parameters (JSON encoded, optional) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
VmNodeCreate
| Field | Type | Description |
|---|
namerequired | string | VM Node name |
description | string | VM Node description |
location_idrequired | integer | Location ID (must be type=vps) |
fqdnrequired | string | Proxmox host FQDN or IP |
scheme | string | Connection scheme |
port | integer | Proxmox API port |
userrequired | string | Proxmox API user (e.g. root@pam) |
token_idrequired | string | Proxmox API token ID |
secretrequired | string | Proxmox API token secret |
tls_no_verify | string | Skip TLS verification |
timeout | integer | Timeout in seconds |
addional_headers | string | Additional HTTP headers (JSON encoded, optional) |
additional_params | string | Additional query parameters (JSON encoded, optional) |
id | integer | Optional VM node ID (useful for migrations) |
Used by PUT /api/admin/vm-nodes
VmNodeUpdate
| Field | Type | Description |
|---|
name | string | VM Node name |
description | string | VM Node description |
location_id | integer | Location ID (must be type=vps) |
fqdn | string | Proxmox host FQDN or IP |
scheme | string | Connection scheme |
port | integer | Proxmox API port |
user | string | Proxmox API user (e.g. root@pam) |
token_id | string | Proxmox API token ID |
secret | string | Proxmox API token secret |
tls_no_verify | string | Skip TLS verification |
timeout | integer | Timeout in seconds |
addional_headers | string | Additional HTTP headers (JSON encoded, optional) |
additional_params | string | Additional query parameters (JSON encoded, optional) |
Used by PATCH /api/admin/vm-nodes/{id}
WebAppManifest
| Field | Type | Description |
|---|
name | string | Webapp name |
short_name | string | Webapp short name |
description | string | Webapp description |
icons | object[] | |
start_url | string | |
scope | string | |
display | string | |
theme_color | string | |
background_color | string | |
WebNode
| Field | Type | Description |
|---|
id | integer | Web Node ID |
uuid | string (uuid) | Web Node UUID |
name | string | Web Node name |
description | string | Web Node description |
location_id | integer | Location ID (must be type=web) |
fqdn | string | FeatherQuilld host FQDN or IP |
scheme | string | Connection scheme |
public | integer | Whether the node is publicly visible |
behind_proxy | integer | Whether the node is behind a reverse proxy |
maintenance_mode | integer | Whether the node is in maintenance mode |
memory | integer | Memory allocation in MB |
memory_overallocate | integer | Memory overallocation percentage |
disk | integer | Disk allocation in MB |
disk_overallocate | integer | Disk overallocation percentage |
upload_size | integer | Max upload size in MB |
daemon_token_id | string | FeatherQuilld daemon token ID |
daemon_token | string | FeatherQuilld daemon authentication token |
daemonListen | integer | FeatherQuilld daemon listen port |
daemonBase | string | FeatherQuilld daemon base path |
websitesPath | string | Volumes path (system.data); defaults to {daemonBase}/volumes |
backupsPath | string | Backup path (system.backup_directory); defaults to {daemonBase}/backups |
backupsProvider | string | Backup storage provider: local or s3 |
backupsS3Endpoint | string | S3-compatible endpoint URL (empty = AWS default) |
backupsS3Region | string | S3 region |
backupsS3Bucket | string | S3 bucket name |
backupsS3AccessKey | string | S3 access key |
backupsS3SecretKey | string | S3 secret key |
backupsS3Prefix | string | S3 object key prefix |
backupsS3ForcePathStyle | boolean | Force path-style S3 addressing (MinIO, etc.) |
addonsPath | string | Plugins path (plugins.directory); only emitted in config when explicitly set |
quilldConfigOverrides | string | Optional JSON object merged into generated FeatherQuilld config (docker, api.ssl, etc.) |
remoteTimeout | integer | Panel API request timeout in seconds |
remoteRetryLimit | integer | Panel API retry limit |
remoteCustomHeaders | string | Optional JSON object of custom HTTP headers sent to the panel (remote.custom_headers) |
sftpEnabled | integer | Whether SFTP is enabled on the daemon |
sftpKeyAlgorithm | string | SSH key algorithm for SFTP host keys |
sftpPort | integer | SFTP listen port |
sftpDisablePasswordAuth | integer | Whether SFTP password authentication is disabled |
proxyEnabled | boolean | Whether FeatherQuilld terminates HTTP(S) for WebSpaces |
proxyProvider | string | Reverse proxy provider: caddy, nginx, or traefik |
acmeEmail | string | Optional ACME fallback email (site owner account email is preferred) |
acmeStaging | boolean | Use Let’s Encrypt staging ACME directory |
backendPortMin | integer | Loopback backend port range start (system.proxy.backend_port_min) |
backendPortMax | integer | Loopback backend port range end (system.proxy.backend_port_max) |
created_at | string (date-time) | Creation timestamp |
updated_at | string (date-time) | Last update timestamp |
WebNodeCreate
| Field | Type | Description |
|---|
namerequired | string | Web Node name |
description | string | Web Node description |
location_idrequired | integer | Location ID (must be type=web) |
fqdnrequired | string | FeatherQuilld host FQDN or IP |
scheme | string | Connection scheme |
public | boolean | Whether the node is publicly visible |
behind_proxy | boolean | Whether the node is behind a reverse proxy |
maintenance_mode | boolean | Whether the node is in maintenance mode |
memory | integer | Memory allocation in MB |
memory_overallocate | integer | Memory overallocation percentage |
disk | integer | Disk allocation in MB |
disk_overallocate | integer | Disk overallocation percentage |
upload_size | integer | Max upload size in MB |
daemonListen | integer | FeatherQuilld daemon listen port |
daemonBase | string | FeatherQuilld daemon base path |
websitesPath | string | Path where hosted websites are stored (defaults to {daemonBase}/websites) |
backupsPath | string | Path where website backups are stored (defaults to {daemonBase}/backups) |
backupsProvider | string | Backup storage provider: local or s3 |
backupsS3Endpoint | string | S3-compatible endpoint URL (empty = AWS default) |
backupsS3Region | string | S3 region |
backupsS3Bucket | string | S3 bucket name |
backupsS3AccessKey | string | S3 access key |
backupsS3SecretKey | string | S3 secret key |
backupsS3Prefix | string | S3 object key prefix |
backupsS3ForcePathStyle | boolean | Force path-style S3 addressing (MinIO, etc.) |
addonsPath | string | Plugins path; only emitted in config when explicitly set |
quilldConfigOverrides | string | Optional JSON merged into generated FeatherQuilld config |
remoteTimeout | integer | Panel API request timeout in seconds |
remoteRetryLimit | integer | Panel API retry limit |
remoteCustomHeaders | string | Optional JSON object of custom HTTP headers (remote.custom_headers) |
sftpEnabled | boolean | Whether SFTP is enabled |
sftpKeyAlgorithm | string | SSH key algorithm for SFTP |
sftpPort | integer | SFTP listen port |
sftpDisablePasswordAuth | boolean | Disable SFTP password authentication |
proxyEnabled | boolean | Whether FeatherQuilld terminates HTTP(S) for WebSpaces |
proxyProvider | string | Reverse proxy provider: caddy, nginx, or traefik |
acmeEmail | string | Optional ACME fallback email (site owner account email is preferred) |
acmeStaging | boolean | Use Let’s Encrypt staging ACME directory |
backendPortMin | integer | Loopback backend port range start (system.proxy.backend_port_min) |
backendPortMax | integer | Loopback backend port range end (system.proxy.backend_port_max) |
id | integer | Optional web node ID (useful for migrations) |
Used by PUT /api/admin/web-nodes
WebNodeUpdate
| Field | Type | Description |
|---|
name | string | Web Node name |
description | string | Web Node description |
location_id | integer | Location ID (must be type=web) |
fqdn | string | FeatherQuilld host FQDN or IP |
scheme | string | Connection scheme |
public | boolean | Whether the node is publicly visible |
behind_proxy | boolean | Whether the node is behind a reverse proxy |
maintenance_mode | boolean | Whether the node is in maintenance mode |
memory | integer | Memory allocation in MB |
memory_overallocate | integer | Memory overallocation percentage |
disk | integer | Disk allocation in MB |
disk_overallocate | integer | Disk overallocation percentage |
upload_size | integer | Max upload size in MB |
daemonListen | integer | FeatherQuilld daemon listen port |
daemonBase | string | FeatherQuilld daemon base path |
websitesPath | string | Volumes path (system.data); defaults to {daemonBase}/volumes |
backupsPath | string | Backup path (system.backup_directory); defaults to {daemonBase}/backups |
backupsProvider | string | Backup storage provider: local or s3 |
backupsS3Endpoint | string | S3-compatible endpoint URL (empty = AWS default) |
backupsS3Region | string | S3 region |
backupsS3Bucket | string | S3 bucket name |
backupsS3AccessKey | string | S3 access key |
backupsS3SecretKey | string | S3 secret key |
backupsS3Prefix | string | S3 object key prefix |
backupsS3ForcePathStyle | boolean | Force path-style S3 addressing (MinIO, etc.) |
addonsPath | string | Plugins path; only emitted in config when explicitly set |
quilldConfigOverrides | string | Optional JSON merged into generated FeatherQuilld config |
remoteTimeout | integer | Panel API request timeout in seconds |
remoteRetryLimit | integer | Panel API retry limit |
remoteCustomHeaders | string | Optional JSON object of custom HTTP headers (remote.custom_headers) |
sftpEnabled | boolean | Whether SFTP is enabled |
sftpKeyAlgorithm | string | SSH key algorithm for SFTP |
sftpPort | integer | SFTP listen port |
sftpDisablePasswordAuth | boolean | Disable SFTP password authentication |
proxyEnabled | boolean | Whether FeatherQuilld terminates HTTP(S) for WebSpaces |
proxyProvider | string | Reverse proxy provider: caddy, nginx, or traefik |
acmeEmail | string | Optional ACME fallback email (site owner account email is preferred) |
acmeStaging | boolean | Use Let’s Encrypt staging ACME directory |
backendPortMin | integer | Loopback backend port range start (system.proxy.backend_port_min) |
backendPortMax | integer | Loopback backend port range end (system.proxy.backend_port_max) |
Used by PATCH /api/admin/web-nodes/{id}
WingsActivityErrorResponse
| Field | Type | Description |
|---|
message | string | Error message |
processed_count | integer | Number of activities processed successfully |
error_count | integer | Number of activities that failed |
errors | string[] | Array of error messages |
WingsActivityLog
| Field | Type | Description |
|---|
user | string (uuid) | User UUID (nullable) |
serverrequired | string (uuid) | Server UUID |
eventrequired | string | Activity event name |
metadata | object | Additional activity metadata |
ip | string | IP address of the user |
timestamp | string (date-time) | Activity timestamp |
WingsActivityResponse
| Field | Type | Description |
|---|
message | string | Success message |
processed_count | integer | Number of activities processed successfully |
Used by POST /api/remote/activity