Plesk REST API
Updated 2026-11-08
Base URL: https://api.plsk.org/api/plesk/v2. Credential: subscription key. Authentication, rate limit and error format: API reference.
The gateway forwards requests to the Plesk REST API of the server that hosts the subscription. Paths, parameters, bodies and responses are those of Plesk. Plesk executes the request as the Plesk customer that owns the subscription; operations that this customer is not permitted to perform are refused by Plesk.
The OpenAPI document is available without a credential at https://api.plsk.org/plesk-openapi.json. Its servers entry is the gateway. Operations under /auth are not served.
Operations used with subscriptions
| Method | Path | Purpose |
|---|---|---|
GET |
/domains |
List the domains of the subscription. |
POST |
/domains |
Create a subdomain. |
GET |
/domains/{id}/fs |
Metadata of a file or directory (path). |
GET |
/domains/{id}/fs/list |
List a directory (path). |
GET |
/domains/{id}/fs/content |
Read a file (path). |
PUT |
/domains/{id}/fs/content |
Write a file (path). |
PATCH |
/domains/{id}/fs/content |
Append a chunk to a file (path). |
POST |
/domains/{id}/fs/mkdir |
Create a directory. |
POST |
/domains/{id}/fs/copy |
Copy a file or directory. |
POST |
/domains/{id}/fs/move |
Move or rename a file or directory. |
DELETE |
/domains/{id}/fs |
Delete a file or directory (path). |
GET POST |
/databases |
List or create databases. |
DELETE |
/databases/{id} |
Delete a database. |
GET POST |
/dbusers |
List or create database users. |
PUT DELETE |
/dbusers/{id} |
Update or delete a database user. |
Request bodies
File write (PUT and PATCH /domains/{id}/fs/content?path=<path>):
{"encoding": "plain" | "base64", "content": "<text or base64>"}
Subdomain (POST /domains):
{"name": "<label>.<hostname>", "hosting_type": "virtual", "parent_domain": {"id": <domain id>, "name": "<hostname>"}}
Database (POST /databases):
{"name": "<name>", "type": "mysql", "parent_domain": {"id": <domain id>, "name": "<hostname>"}}
Database user (POST /dbusers):
{"login": "<login>", "password": "<password>", "database_id": <database id>}
Behavior of the file API
- A write replaces the file. Files that are removed from a release remain until deleted.
copydoes not overwrite an existing target.- The file API has no atomic multi-file operation.
- Updates with fields that Plesk does not support are accepted with status 200 and have no effect; the resource has to be read back to confirm a change.
Not available to subscription keys
Choosing the database server (server_id), listing extensions, running commands (exec), reading DNS records, creating domains other than subdomains. Plesk refuses these; see Troubleshooting.