Domains & Subdomains
Domains & Subdomains API
Manage domains, subdomains, vhost configuration, redirects, and domain settings.
Roles: All authenticated users manage their own domains. Admin sees all.
Domains
List Domains
GET /api/v1/domains
Admin sees all domains; users see their own.
Response:
[
{
"name": "example.com",
"owner": "john",
"web_server": "nginx",
"document_root": "/home/john/domains/example.com/public_html",
"custom_doc_root": "",
"php_version": "8.2",
"ssl_enabled": true,
"force_ssl": true,
"www_redirect": "add_www",
"status": "active",
"created_at": "2026-01-15T10:00:00Z",
"updated_at": "2026-04-01T08:30:00Z"
}
]
Create Domain
POST /api/v1/domains
{
"name": "newsite.com",
"custom_doc_root": "public",
"php_version": "8.2",
"web_server": "nginx",
"force_ssl": false,
"www_redirect": "add_www"
}
www_redirect options: "none", "add_www", "remove_www"
Get Domain
GET /api/v1/domains/{name}
Update Domain
PUT /api/v1/domains/{name}
{
"php_version": "8.3",
"force_ssl": true,
"www_redirect": "add_www"
}
Delete Domain
DELETE /api/v1/domains/{name}
Regenerate Vhost
POST /api/v1/domains/{name}/regenerate-vhost
Apply Config
POST /api/v1/domains/{domain}/apply-config
Vhost Configuration
GET /api/v1/domains/{name}/vhost
PUT /api/v1/domains/{name}/vhost
POST /api/v1/domains/{name}/vhost/reset
PUT body: {"custom_config": "# nginx custom config here"}
Domain Pointers (Aliases)
GET /api/v1/domains/{domain}/pointers
POST /api/v1/domains/{domain}/pointers
DELETE /api/v1/domains/{domain}/pointers/{pointer}
Create: {"pointer": "alias.com"}
URL Redirects
GET /api/v1/domains/{domain}/redirects
POST /api/v1/domains/{domain}/redirects
PUT /api/v1/domains/{domain}/redirects/{source}
DELETE /api/v1/domains/{domain}/redirects/{source}
Create:
{
"source": "/old-path",
"destination": "https://example.com/new-path",
"type": "301"
}
Hotlink Protection
GET /api/v1/domains/{domain}/hotlink
PUT /api/v1/domains/{domain}/hotlink
{
"enabled": true,
"allow_direct": false,
"redirect_to": "https://example.com/hotlink-denied.png",
"extensions": ["jpg", "png", "gif", "mp4"]
}
Directory Password Protection
GET /api/v1/domains/{domain}/protected-dirs
POST /api/v1/domains/{domain}/protected-dirs
PUT /api/v1/domains/{domain}/protected-dirs/{dir_id}
DELETE /api/v1/domains/{domain}/protected-dirs/{dir_id}
POST /api/v1/domains/{domain}/protected-dirs/{dir_id}/users
DELETE /api/v1/domains/{domain}/protected-dirs/{dir_id}/users/{username}
Create:
{
"path": "/home/john/domains/example.com/public_html/admin",
"realm": "Admin Area"
}
Custom Error Pages
GET /api/v1/domains/{domain}/error-pages
PUT /api/v1/domains/{domain}/error-pages
{
"404": "<h1>Page Not Found</h1>",
"500": "<h1>Server Error</h1>"
}
HSTS
GET /api/v1/domains/{domain}/hsts
PUT /api/v1/domains/{domain}/hsts
{
"enabled": true,
"max_age": 31536000,
"include_subdomains": true,
"preload": false
}
Custom MIME Types
GET /api/v1/domains/{domain}/mime-types
POST /api/v1/domains/{domain}/mime-types
PUT /api/v1/domains/{domain}/mime-types/{extension}
DELETE /api/v1/domains/{domain}/mime-types/{extension}
Create: {"extension": ".wasm", "mime_type": "application/wasm"}
Apache Handlers
GET /api/v1/domains/{domain}/handlers
POST /api/v1/domains/{domain}/handlers
PUT /api/v1/domains/{domain}/handlers/{extension}
DELETE /api/v1/domains/{domain}/handlers/{extension}
Domain Statistics
GET /api/v1/domains/{name}/stats
Subdomains
List Subdomains
GET /api/v1/domains/{domain}/subdomains
Create Subdomain
POST /api/v1/domains/{domain}/subdomains
{
"subdomain": "api",
"php_version": "8.2",
"custom_doc_root": ""
}
Document root will be: /home/{user}/domains/{domain}/subdomains/api
Subdomain operations
GET /api/v1/domains/{domain}/subdomains/{subdomain}
PUT /api/v1/domains/{domain}/subdomains/{subdomain}
DELETE /api/v1/domains/{domain}/subdomains/{subdomain}
POST /api/v1/domains/{domain}/subdomains/{subdomain}/php
POST /api/v1/domains/{domain}/subdomains/{subdomain}/regenerate-vhost
Subdomain Vhost
GET /api/v1/domains/{domain}/subdomains/{subdomain}/vhost
PUT /api/v1/domains/{domain}/subdomains/{subdomain}/vhost
POST /api/v1/domains/{domain}/subdomains/{subdomain}/vhost/reset
Subdomain SSL
GET /api/v1/domains/{domain}/subdomains/{subdomain}/ssl
POST /api/v1/domains/{domain}/subdomains/{subdomain}/ssl/issue
POST /api/v1/domains/{domain}/subdomains/{subdomain}/ssl/renew
DELETE /api/v1/domains/{domain}/subdomains/{subdomain}/ssl
PUT /api/v1/domains/{domain}/subdomains/{subdomain}/ssl/auto-renew
Admin: Webserver Operations
POST /api/v1/admin/webserver/reload # Admin only
POST /api/v1/admin/webserver/test # Admin only