View .md

WebSpaces endpoints (Admin API)

46 FeatherPanel Admin API endpoints from admin/webspaces.php: methods, paths, auth, permissions, rate limits, parameters and responses.

Last synced from FeatherPanel 15b94e9 on .

On this page

Defined in backend/app/routes/admin/webspaces.php. Authentication used here: Admin. Read Authentication for how to send credentials and Rate limits and errors for the response envelope.

Paths, methods, permissions and rate limits come from the route file. Summaries, parameters and response codes come from the OpenAPI annotations on the controllers; endpoints without annotations show only what the route file declares.

Endpoints

GET/api/admin/webspaces

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspacesController: WebSpacesController::indexroute source

List WebSpaces

curl -X GET "$PANEL_URL/api/admin/webspaces" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/hosting-maturity

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-hosting-maturityController: WebSpacesController::hostingMaturityroute source

Web hosting platform maturity

curl -X GET "$PANEL_URL/api/admin/webspaces/hosting-maturity" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/hosting-setup/wizard

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-hosting-setup-wizardController: WebSpacesController::hostingSetupWizardroute source

Admin first-node setup wizard steps

curl -X GET "$PANEL_URL/api/admin/webspaces/hosting-setup/wizard" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/panel-webmail/install

Auth: AdminPermission: admin.webspaces.editRoute name: admin-panel-webmail-installController: WebSpacesController::installPanelWebmailroute source
curl -X POST "$PANEL_URL/api/admin/webspaces/panel-webmail/install" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/infrastructure-readiness

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-infrastructure-readinessController: WebSpacesController::infrastructureReadinessroute source

WebSpace infrastructure readiness

curl -X GET "$PANEL_URL/api/admin/webspaces/infrastructure-readiness" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-showController: WebSpacesController::showroute source

Get WebSpace

ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

PATCH/api/admin/webspaces/{uuid}

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-updateController: WebSpacesController::updateroute source

Update WebSpace settings

ParameterInTypeRequiredDescription
uuidpath-yes
curl -X PATCH "$PANEL_URL/api/admin/webspaces/$UUID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:updated

PUT/api/admin/webspaces

Auth: AdminPermission: admin.webspaces.createRoute name: admin-webspaces-createController: WebSpacesController::createroute source

Create WebSpace on panel + daemon

curl -X PUT "$PANEL_URL/api/admin/webspaces" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:created

DELETE/api/admin/webspaces/{uuid}

Auth: AdminPermission: admin.webspaces.deleteRoute name: admin-webspaces-deleteController: WebSpacesController::deleteroute source

Delete WebSpace

ParameterInTypeRequiredDescription
uuidpath-yes
curl -X DELETE "$PANEL_URL/api/admin/webspaces/$UUID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:deleted

POST/api/admin/webspaces/{uuid}/power

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-powerController: WebSpacesController::powerroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/power" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/status

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-statusController: WebSpacesController::statusroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/status" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/logs

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-logsController: WebSpacesController::logsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/logs" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/logs/install

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-install-logsController: WebSpacesController::installLogsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/logs/install" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/bandwidth/reset

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-bandwidth-resetController: WebSpacesController::resetBandwidthroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/bandwidth/reset" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/reinstall

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-reinstallController: WebSpacesController::reinstallroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/reinstall" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/install/abort

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-install-abortController: WebSpacesController::abortInstallroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/install/abort" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/sync

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-syncController: WebSpacesController::syncroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/sync" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/recreate-runtime

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-recreate-runtimeController: WebSpacesController::recreateRuntimeroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/recreate-runtime" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/ssl

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-sslController: WebSpacesController::sslroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/ssl" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/ssl/renew

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-ssl-renewController: WebSpacesController::renewSslroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/ssl/renew" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/dns-check

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-check-dnsController: WebSpacesController::checkDnsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/dns-check" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/dns/provision

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-dns-provisionController: WebSpacesController::provisionDnsroute source

Provision DNS A records

ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/dns/provision" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/ssl/custom

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-ssl-customController: WebSpacesController::customSslStatusroute source

Custom SSL status

ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/ssl/custom" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

PUT/api/admin/webspaces/{uuid}/ssl/custom

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-ssl-custom-uploadController: WebSpacesController::uploadCustomSslroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X PUT "$PANEL_URL/api/admin/webspaces/$UUID/ssl/custom" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

DELETE/api/admin/webspaces/{uuid}/ssl/custom

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-ssl-custom-deleteController: WebSpacesController::deleteCustomSslroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X DELETE "$PANEL_URL/api/admin/webspaces/$UUID/ssl/custom" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/backups

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-backupsController: WebSpacesController::listBackupsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/backups" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/backups/reconcile

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-backups-reconcileController: WebSpacesController::reconcileBackupsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/backups/reconcile" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/backup

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-backup-createController: WebSpacesController::createBackuproute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/backup" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:backup:create

DELETE/api/admin/webspaces/{uuid}/backups/{backupUuid}

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-backup-deleteController: WebSpacesController::deleteBackuproute source
ParameterInTypeRequiredDescription
uuidpath-yes
backupUuidpath-yes
curl -X DELETE "$PANEL_URL/api/admin/webspaces/$UUID/backups/$BACKUP_UUID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:backup:delete

POST/api/admin/webspaces/{uuid}/backups/{backupUuid}/restore

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-backup-restoreController: WebSpacesController::restoreBackuproute source
ParameterInTypeRequiredDescription
uuidpath-yes
backupUuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/backups/$BACKUP_UUID/restore" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:backup:restore

GET/api/admin/webspaces/{uuid}/backups/{backupUuid}/files

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-backup-filesController: WebSpacesController::listBackupFilesroute source
ParameterInTypeRequiredDescription
uuidpath-yes
backupUuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/backups/$BACKUP_UUID/files" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/backups/{backupUuid}/download

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-backup-downloadController: WebSpacesController::downloadBackuproute source
ParameterInTypeRequiredDescription
uuidpath-yes
backupUuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/backups/$BACKUP_UUID/download" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/backups/import

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-backup-importController: WebSpacesController::importBackuproute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/backups/import" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/transfer/status

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-transfer-statusController: WebSpacesController::transferStatusroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/transfer/status" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/transfer

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-transferController: WebSpacesController::transferroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/transfer" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/jwt

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-jwtController: WebSpacesController::generateJwtroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/jwt" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/suspend

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-suspendController: WebSpacesController::suspendroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/suspend" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:suspended

POST/api/admin/webspaces/{uuid}/unsuspend

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-unsuspendController: WebSpacesController::unsuspendroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/unsuspend" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:unsuspended

GET/api/admin/webspaces/{uuid}/dns/zones

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-dns-zonesController: WebSpaceDnsController::listZonesroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

GET/api/admin/webspaces/{uuid}/dns/hosts

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-dns-hostsController: WebSpaceDnsController::listDnsHostsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/dns/hosts" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/dns/zones

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-dns-zones-linkController: WebSpaceDnsController::linkZoneroute source
ParameterInTypeRequiredDescription
uuidpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:dns:zone:linked

DELETE/api/admin/webspaces/{uuid}/dns/zones/{zoneId}

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-dns-zones-unlinkController: WebSpaceDnsController::unlinkZoneroute source
ParameterInTypeRequiredDescription
uuidpath-yes
zoneIdpath-yes
curl -X DELETE "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones/$ZONE_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:dns:zone:unlinked

GET/api/admin/webspaces/{uuid}/dns/zones/{zoneId}/records

Auth: AdminPermission: admin.webspaces.viewRoute name: admin-webspaces-dns-recordsController: WebSpaceDnsController::listRecordsroute source
ParameterInTypeRequiredDescription
uuidpath-yes
zoneIdpath-yes
curl -X GET "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones/$ZONE_ID/records" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

POST/api/admin/webspaces/{uuid}/dns/zones/{zoneId}/records

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-dns-records-createController: WebSpaceDnsController::createRecordroute source
ParameterInTypeRequiredDescription
uuidpath-yes
zoneIdpath-yes
curl -X POST "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones/$ZONE_ID/records" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:dns:record:created

PATCH/api/admin/webspaces/{uuid}/dns/zones/{zoneId}/records/{recordId}

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-dns-records-updateController: WebSpaceDnsController::updateRecordroute source
ParameterInTypeRequiredDescription
uuidpath-yes
zoneIdpath-yes
recordIdpath-yes
curl -X PATCH "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones/$ZONE_ID/records/$RECORD_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:dns:record:updated

DELETE/api/admin/webspaces/{uuid}/dns/zones/{zoneId}/records/{recordId}

Auth: AdminPermission: admin.webspaces.editRoute name: admin-webspaces-dns-records-deleteController: WebSpaceDnsController::deleteRecordroute source
ParameterInTypeRequiredDescription
uuidpath-yes
zoneIdpath-yes
recordIdpath-yes
curl -X DELETE "$PANEL_URL/api/admin/webspaces/$UUID/dns/zones/$ZONE_ID/records/$RECORD_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:webspace:dns:record:deleted