View .md

Proxy endpoints (Client API: game servers)

4 FeatherPanel Client API: game servers endpoints from user/server/proxy.php: methods, paths, auth, permissions, rate limits, parameters and responses.

Last synced from FeatherPanel 15b94e9 on .

On this page

Defined in backend/app/routes/user/server/proxy.php. Authentication used here: Server access. 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/user/servers/{uuidShort}/proxy

Auth: Server accessDefault rate limit: 30 / minute (user-server-proxy)Route name: user-server-proxy-listController: ServerProxyController::listProxiesroute source

List reverse proxies Get a list of all reverse proxy configurations for a server.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/proxy" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 List of proxy configurations · 401 Unauthorized · 403 Forbidden · 404 Server not found

POST/api/user/servers/{uuidShort}/proxy/create

Auth: Server accessDefault rate limit: 10 / minute (user-server-proxy)Route name: user-server-proxy-createController: ServerProxyController::createProxyroute source

Create reverse proxy Create a new reverse proxy configuration for a server.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID

Request body: ProxyCreateRequest (application/json)

Body fieldTypeRequiredDescription
domainstringyesThe domain name for the proxy
ipstringyesThe target IP address to proxy to
portstringyesThe target port to proxy to
sslbooleanyesWhether to enable SSL/TLS
use_lets_encryptbooleannoWhether to use Let's Encrypt for SSL
client_emailstringnoEmail for Let's Encrypt registration
ssl_certstringnoSSL certificate content
ssl_keystringnoSSL private key content
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/proxy/create" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"domain":"","ip":"","port":"","ssl":false,"use_lets_encrypt":false,"client_email":"","ssl_cert":"","ssl_key":""}'

Plugin events: featherpanel:server:proxy:create

Responses: 202 Proxy configuration created successfully · 400 Bad request · 401 Unauthorized · 403 Forbidden · 404 Server not found · 500 Internal server error · 503 Service unavailable

POST/api/user/servers/{uuidShort}/proxy/delete

Auth: Server accessDefault rate limit: 10 / minute (user-server-proxy)Route name: user-server-proxy-deleteController: ServerProxyController::deleteProxyroute source

Delete reverse proxy Delete an existing reverse proxy configuration for a server.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID

Request body: ProxyDeleteRequest (application/json)

Body fieldTypeRequiredDescription
domainstringyesThe domain name of the proxy to delete
portstringyesThe port associated with the proxy configuration
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/proxy/delete" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"domain":"","port":""}'

Plugin events: featherpanel:server:proxy:delete

Responses: 202 Proxy configuration deleted successfully · 400 Bad request · 401 Unauthorized · 403 Forbidden · 404 Server not found · 500 Internal server error · 503 Service unavailable

POST/api/user/servers/{uuidShort}/proxy/verify-dns

Auth: Server accessDefault rate limit: 20 / minute (user-server-proxy)Route name: user-server-proxy-verify-dnsController: ServerProxyController::verifyDnsroute source

Verify DNS records Verify that DNS A record exists and points to the correct IP address.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
Body fieldTypeRequiredDescription
domainstringyesDomain name to verify
portstringyesPort number to determine target IP
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/proxy/verify-dns" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"domain":"","port":""}'

Responses: 200 DNS verification result · 400 Bad request · 401 Unauthorized · 403 Forbidden · 404 Server not found