View .md

API overview

Overview of the FeatherPanel REST API. Route groups, authentication options, the response format, the OpenAPI spec and where to find every endpoint.

On this page

Everything the FeatherPanel frontend does goes through the same REST API under /api, so anything you can click you can script. The endpoint reference lists every route with its method, auth type and permission.

Route groups

PrefixWho calls itAuth
/api/user/...Signed-in users and their API keys: account, servers, VDS, WebSpaces, ticketsSession or API key
/api/admin/...Staff with the matching admin permissionSession or API key of a staff user, plus a permission node
/api/wings/..., /api/remote/...FeatherWings nodesNode token
/api/quilld-remote/...FeatherQuilld nodesNode token
/api/system/..., /api/knowledgebase/...Public settings, knowledge base and similarMostly public

Admin routes check a permission node such as admin.users.list. See the permissions reference.

Authentication

Send an API key as a Bearer token:

curl -H "Authorization: Bearer YOUR_PRIVATE_KEY" https://panel.example.com/api/user/session

API keys act as the user who created them. Details, OAuth2 and IP allow lists are on Authentication.

Response format

Every response is JSON with the same envelope:

{
  "success": true,
  "message": "OK",
  "data": { },
  "error": false,
  "error_message": null,
  "error_code": null
}

Errors set success to false, fill error_message and error_code (for example INVALID_API_KEY or RATE_LIMITED) and add an errors array with code, detail and status. Always branch on error_code, not the message text.

OpenAPI

GET /api/openapi.json returns the OpenAPI document built from the route annotations. Load it into Postman, Insomnia or a code generator.

Rate limits

Routes can carry a rate limit. When you hit one, the panel answers 429 with error_code RATE_LIMITED, a retry_after value in data and a Retry-After header in seconds. Back off for that long before retrying.

Other ways in

  • FeatherCli wraps the user API for servers, files, backups and more.
  • The MCP server exposes panel actions to AI assistants.

Frequently asked questions

Is there an OpenAPI specification?

Yes. GET /api/openapi.json on your panel returns the OpenAPI document generated from the route annotations. It needs no authentication.

Is the FeatherPanel API compatible with the Pterodactyl API?

No. It uses its own paths and response format. The panel ships a compatibility layer for the Calagopus client API instead, under the same API keys.