Files
server/opt/psa/admin/htdocs/modules/rest-api/public/v2/openapi.yml
2026-01-07 20:52:11 +01:00

2661 lines
76 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
openapi: 3.0.3
info:
version: v2
title: Plesk RESTful API
description: >-
New remote API for Plesk is based on REST concepts and provides the output
in JSON format.
servers:
- url: /api/v2
description: Plesk Server REST API
security:
- BasicAuth: []
- APIKeyHeader: []
tags:
- name: Authentication
description: Auth entry points
- name: Cli
description: CLI gate entry points
- name: Server
description: Server entry points
- name: Extensions
description: Extensions entry points
- name: Clients
description: Clients entry points
- name: Domains
description: Domains entry points
- name: FtpUsers
description: FTP Users entry points
- name: Databases
description: Databases, database servers and database users entry points
- name: DNS
description: DNS entry points
paths:
/auth/keys:
post:
tags:
- Authentication
summary: Generate API secret key
description: >-
Create a new API secret key for authentication with specified login
credentials and IP restrictions.
responses:
'201':
description: Secret key was successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/SecretKeyResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Incorrect login
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SecretKeyRequest'
/auth/keys/{key}:
delete:
tags:
- Authentication
summary: Delete API secret key
description: >-
Revoke and delete an API secret key, removing all associated access
permissions.
parameters:
- in: path
name: key
description: Key ID
required: true
example: 3d2e93ad-85e6-1a3e-9f81-b9d26650e4f9
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Key does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/cli/commands:
get:
tags:
- Cli
summary: List CLI commands
description: >-
Retrieve a list of all available Plesk CLI commands that can be executed
via the REST API.
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: string
/cli/{id}/ref:
get:
tags:
- Cli
x-plesk-since: '17.9'
summary: Get CLI command reference
description: >-
Retrieve detailed reference information for a specific Plesk CLI
command, including allowed subcommands and options.
parameters:
- in: path
name: id
description: Command name
required: true
example: settings
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
allowed_commands:
type: object
allowed_options:
type: object
'404':
description: Command is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/cli/{id}/call:
post:
tags:
- Cli
summary: Execute CLI command
description: >-
Execute a specific Plesk CLI command with the provided parameters and
options.
parameters:
- in: path
name: id
description: Command name
required: true
example: settings
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CliCallResponse'
'404':
description: Command is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CliCallRequest'
/server:
get:
tags:
- Server
summary: Get server information
description: >-
Retrieve server metadata including Plesk version, platform, and system
information.
responses:
'200':
description: Return Server Meta Information
content:
application/json:
schema:
$ref: '#/components/schemas/ServerMeta'
/server/init:
post:
tags:
- Server
summary: Initialize server
description: >-
Perform initial server configuration, including admin credentials and
basic settings.
responses:
'200':
description: Inital server setup was succesfully performed
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServerInit'
/server/license:
post:
tags:
- Server
summary: Install license key
description: Install or update the Plesk or additional license key for the server.
responses:
'200':
description: License key was succesfully installed
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServerLicense'
/server/ips:
get:
tags:
- Server
summary: List server IP addresses
description: Retrieve a list of all IP addresses configured on the server.
responses:
'200':
description: Return Server IP Addresses list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServerIp'
/extensions:
get:
tags:
- Extensions
summary: List installed extensions
description: >-
Retrieve a list of all Plesk extensions currently installed on the
server.
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Extension'
post:
tags:
- Extensions
summary: Install extension
description: >-
Install a Plesk extension from the Extension Catalog by ID, a file, or
URL.
responses:
'200':
description: Extension successfully installed
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExtensionInstallRequest'
/extensions/{id}:
get:
tags:
- Extensions
summary: Get extension details
description: Retrieve detailed information about a specific installed extension.
parameters:
- in: path
name: id
description: Extension identifier
required: true
example: letsencrypt
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Extension'
'404':
description: Extension is not installed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- Extensions
summary: Uninstall extension
description: Remove an extension from the server and delete all associated data.
parameters:
- in: path
name: id
description: Extension identifier
required: true
example: letsencrypt
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Extension is not installed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/extensions/{id}/enable:
put:
tags:
- Extensions
summary: Enable extension
description: Enable a previously disabled extension, making it active on the server.
parameters:
- in: path
name: id
description: Extension identifier
required: true
example: letsencrypt
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Extension is not installed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/extensions/{id}/disable:
put:
tags:
- Extensions
summary: Disable extension
description: >-
Disable an extension temporarily without uninstalling it from the
server.
parameters:
- in: path
name: id
description: Extension identifier
required: true
example: letsencrypt
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Extension is not installed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/clients:
get:
tags:
- Clients
summary: List clients
description: Retrieve a list of all client accounts on the server.
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Client'
post:
tags:
- Clients
summary: Create client account
description: Create a new client account with the specified settings and permissions.
responses:
'201':
description: Client account successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ClientRequest'
/clients/{id}:
get:
tags:
- Clients
summary: Get client details
description: Retrieve detailed information about a specific client account.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
tags:
- Clients
summary: Update client account
description: Update settings and properties of an existing client account.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ClientUpdateRequest'
delete:
tags:
- Clients
summary: Delete client account
description: Delete a client account and all associated data from the server.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponse'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/clients/{id}/domains:
get:
tags:
- Clients
summary: List client domains
description: Retrieve all domains associated with a specific client account.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DomainResponse'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/clients/{id}/statistics:
get:
tags:
- Clients
summary: Get client statistics
description: Retrieve resource usage statistics for a specific client account.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ClientStatistics'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/clients/{id}/activate:
put:
tags:
- Clients
summary: Activate client
description: Activate a suspended client account, restoring access to all services.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/clients/{id}/suspend:
put:
tags:
- Clients
summary: Suspend client
description: Suspend a client account, temporarily blocking access to all services.
parameters:
- in: path
name: id
required: true
description: Client ID
example: 7
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Client is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/domains:
get:
tags:
- Domains
summary: List domains
description: >-
Retrieve a list of all domains on the server, with optional filtering by
domain name.
parameters:
- in: query
name: name
description: Filter data by domain name
example: example.com
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DomainResponse'
post:
tags:
- Domains
summary: Create domain
description: >-
Create a new domain with the specified configuration and hosting
settings.
responses:
'201':
description: Domain successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRequest'
/domains/{id}:
get:
tags:
- Domains
summary: Get domain details
description: Retrieve detailed information about a specific domain.
parameters:
- in: path
name: id
required: true
description: Domain ID
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DomainResponse'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
tags:
- Domains
summary: Update domain
description: Update settings and configuration for an existing domain.
parameters:
- in: path
name: id
required: true
description: Domain ID
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainRequest'
delete:
tags:
- Domains
summary: Delete domain
description: Delete a domain and all associated data from the server.
parameters:
- in: path
name: id
required: true
description: Domain ID
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/domains/{id}/client:
get:
tags:
- Domains
summary: Get domain owner
description: Retrieve information about the client account that owns the domain.
parameters:
- in: path
name: id
required: true
description: Domain ID
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Client'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/domains/{id}/status:
get:
tags:
- Domains
summary: Get domain status
description: >-
Retrieve the current operational status of a domain (active, suspended,
disabled).
parameters:
- in: path
name: id
required: true
description: Domain ID
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DomainStatus'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
tags:
- Domains
summary: Update domain status
description: Change the operational status of a domain (enable, suspend, or disable).
parameters:
- in: path
name: id
required: true
description: Domain ID
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DomainStatus'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DomainStatus'
/ftpusers:
get:
tags:
- FtpUsers
summary: List FTP users
description: >-
Retrieve a list of FTP users with optional filtering by username or
domain.
parameters:
- in: query
name: name
description: Filter data by user name
example: exampleuser
schema:
type: string
- in: query
name: domain
description: Filter data by domain name
example: example.com
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FtpUser'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain/user is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
tags:
- FtpUsers
summary: Create FTP user
description: >-
Create a new FTP user account with specified permissions and home
directory.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/FtpUser'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FtpUserRequest'
/ftpusers/{name}:
put:
tags:
- FtpUsers
summary: Update FTP user
description: >-
Update FTP user settings such as password, home directory, or
permissions.
parameters:
- in: path
name: name
description: FTP user name
required: true
example: exampleuser
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: User is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FtpUserUpdateRequest'
delete:
tags:
- FtpUsers
summary: Delete FTP user
description: Delete an FTP user account and revoke all associated access.
parameters:
- in: path
name: name
description: FTP User name
required: true
example: exampleuser
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: User is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/databases:
get:
tags:
- Databases
summary: List databases
description: >-
Retrieve a list of all databases on the server, with optional filtering
by domain name.
parameters:
- in: query
name: domain
description: Filter data by domain name
example: example.com
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Database'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Server is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
tags:
- Databases
summary: Create database
description: Create a new database on the specified database server.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Database'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatabaseRequest'
/databases/{id}:
delete:
tags:
- Databases
summary: Delete database
description: Delete a database and all its data from the database server.
parameters:
- in: path
name: id
description: Database ID
required: true
example: 10
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Database is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dbusers:
get:
tags:
- Databases
summary: List database users
description: >-
Retrieve a list of database users, with optional filtering by database
ID.
parameters:
- in: query
name: dbId
description: Filter data by database ID
example: 44
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DatabaseUser'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain/database is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
tags:
- Databases
summary: Create database user
description: >-
Create a new database user with specified credentials and database
association.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DatabaseUser'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Server/database/domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatabaseUserRequest'
/dbusers/{id}:
put:
tags:
- Databases
summary: Update database user
description: Update database user settings, such as password or access permissions.
parameters:
- in: path
name: id
description: Database user ID
required: true
example: 12
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Server/database/domain is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DatabaseUserUpdateRequest'
delete:
tags:
- Databases
summary: Delete database user
description: Delete a database user and revoke all associated access rights.
parameters:
- in: path
name: id
description: Database user ID
required: true
example: 12
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: Database user is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dbservers:
get:
tags:
- Databases
summary: List database servers
description: Retrieve a list of all database servers configured on the system.
parameters:
- in: query
name: id
description: Filter data by database server id
example: 1
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DatabaseServer'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Server is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/dns/records:
get:
tags:
- DNS
summary: List DNS records
description: Retrieve all DNS records for a specific domain or domain alias.
parameters:
- in: query
name: domain
description: Filter by domain or domain alias name
required: true
example: example.com
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DnsRecord'
post:
tags:
- DNS
summary: Create DNS record
description: Add a new DNS record to a domain or domain alias zone.
parameters:
- in: query
name: domain
description: Filter by domain or domain alias name
required: true
example: example.com
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DnsRecord'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Domain or Domain Alias is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DnsRecordRequest'
/dns/records/{id}:
get:
tags:
- DNS
summary: Get DNS record
description: Retrieve details of a specific DNS record by its ID.
parameters:
- in: path
name: id
description: DNS record ID
required: true
example: 123
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DnsRecord'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: DNS record is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
tags:
- DNS
summary: Update DNS record
description: Modify an existing DNS record's properties and values.
parameters:
- in: path
name: id
description: DNS record ID
required: true
example: 123
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'400':
description: Invalid request data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: DNS record is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DnsRecord'
delete:
tags:
- DNS
summary: Delete DNS record
description: Remove a DNS record from the domain's DNS zone.
parameters:
- in: path
name: id
description: DNS record ID
required: true
example: 123
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/StatusResponse'
'404':
description: DNS record is not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
securitySchemes:
BasicAuth:
type: http
scheme: basic
description: HTTP Basic Authentication
APIKeyHeader:
type: apiKey
in: header
name: X-API-Key
description: API Key Authentication
schemas:
StatusResponse:
type: object
properties:
status:
description: Result of the operation
type: string
example: success
required:
- status
CreatedResponse:
type: object
properties:
id:
description: Entity with the specified ID successfully created
type: integer
example: 100
guid:
description: Entity successfully created, new GUID is
type: string
example: 18b78dd1-2b43-44f7-9599-56ccb56a85dc
required:
- id
- guid
ErrorResponse:
type: object
properties:
code:
type: integer
example: 400
message:
type: string
example: Account with this name already exists
required:
- code
- message
SecretKeyRequest:
type: object
description: Secret key parameters
properties:
ip:
description: >-
The IP address that will be linked to the key. If this node or 'ips'
node is not specified, the IP address of the request sender will be
used.
type: string
example: 195.214.233.128
ips:
description: >-
Array of IP addresses that will be linked to the key. If this node
or 'ip' node is not specified, the IP address of the request sender
will be used.
type: array
items:
type: string
example:
- 93.184.216.34
- 2606:2800:220:1:248:1893:25c8:1946
login:
description: >-
The login name of an existing customer or a reseller that will have
this secret key. The customer's or reseller's account should be
active. If this node is not specified, the administrator's login
will be used.
type: string
example: admin
description:
description: Additional information about the key.
type: string
example: Secret key for Administrator
SecretKeyResponse:
type: object
properties:
key:
description: Secret key value.
type: string
example: c5b239d1-8eb6-8cee-76b7-aa16be37fee8
required:
- key
CliCallRequest:
type: object
description: Command execution parameters
properties:
params:
type: array
items:
type: string
example:
- '--get'
- FullHostName
env:
type: object
example:
PSA_PASSWORD: password
CliCallResponse:
type: object
description: Command execution result
properties:
code:
description: Command return code.
type: integer
example: 0
stdout:
description: Command stdout.
type: string
example: Done
stderr:
description: Command stderr.
type: string
example: Execution failed
ServerMeta:
type: object
description: Server Meta Information
properties:
platform:
description: Server platform type.
type: string
example: Unix
hostname:
description: Server hostname.
type: string
example: example.com
guid:
description: Server GUID.
type: string
example: baa58292-fee0-4ecb-9da1-bba0cc5adea7
panel_version:
description: Product version.
type: string
example: 17.9.3
panel_revision:
description: Product build revision.
type: string
example: 1711e2bceff6fd6656c821b8cb6444c2726f3784
panel_build_date:
description: Product ISO build date.
type: string
format: date
example: '2018-06-20'
panel_update_version:
description: Product installed update version.
type: string
example: '10'
extension_version:
description: REST API extension version.
type: string
example: 1.1.0
extension_release:
description: REST API release number.
type: string
example: '10'
required:
- platform
- hostname
- guid
- panel_version
- panel_revision
- panel_build_date
- panel_update_version
- extension_version
- extension_release
ServerInit:
type: object
description: Initial server setup parameters
properties:
admin:
$ref: '#/components/schemas/Admin'
password:
description: >-
The new Plesk Administrator's password that will replace the default
one.
type: string
example: setup
server_name:
description: The full host name.
type: string
example: my-plesk-server.com
required:
- admin
- password
Admin:
type: object
description: Plesk administrator information
properties:
name:
description: The administrator's personal name.
type: string
example: John Smith
email:
description: The administrator's e-mail address.
type: string
format: email
example: john_smith@plesk.com
company:
description: The administrator's company name.
type: string
example: Plesk
phone:
description: The administrator's phone number.
type: string
example: +41 31 528 12 23
fax:
description: The administrator's fax number.
type: string
example: +41 31 528 12 23
address:
description: The administrator's street address.
type: string
example: Vordergasse 59
city:
description: The name of the city where administrator lives.
type: string
example: Schaffhausen
state:
description: >-
The name of state (for US citizens) or province where administrator
lives.
type: string
example: Kanton Schaffhausen
post_code:
description: The administrator's zip/postal code.
type: string
example: '8200'
country:
description: The name of the country where administrator lives.
type: string
example: CH
send_announce:
description: >-
It specifies whether Plesk announcement messages are sent to the
administrator's e-mail.
type: boolean
example: false
locale:
description: The locale used by the administrator.
type: string
example: en-US
multiple_sessions:
description: >-
It specifies the information if the administrator has multiple
sessions in Plesk.
type: boolean
example: false
required:
- name
- email
ServerIp:
type: object
description: Server IP Addresses
properties:
ipv4:
description: The IP address in Plesk database (IPv4).
type: string
format: ipv4
example: 93.184.216.34
ipv6:
description: The IP address in Plesk database (IPv6).
type: string
format: ipv6
example: 2606:2800:220:1:248:1893:25c8:1946
netmask:
description: The netmask of the network.
type: string
example: 255.255.255.0
interface:
description: The server network interface name.
type: string
example: eth0
type:
description: 'The type of IP address. Allowed values: shared | exclusive.'
type: string
enum:
- shared
- exclusive
example: exclusive
required:
- netmask
- interface
- type
ServerLicense:
type: object
description: License parameters
properties:
key:
description: License key data.
type: string
example: >-
/RjdfLic1RwpNPkEnLlxNJkJCPzNDWSRDOyVeJDI/MSo1RlFEMD4+VTEzKTk3S0pfVjFOJTZFXzMpTEVPQC5JRjdUR0RZCk0hMSJYOzYhVFxPI14jTFJPRSlaRFI0VjZWPEYiT1s5T0opJV8+NCMnUigvQ1o7K0U+QEtbISc1MlMqLV0KTSorUDVfMzxHNUkrSksxWzZVNVZJXTc5T18xQVNNNzRXWTo3WVkmW0I/J2AnYC4iJTlTP1grSCdYS0E+RApNPVteRk43RCNAVFpVO0dBO1hZMjo+K0pQNEsiLj5UUDQlLDA7XyVZIVo/QypGJiJcW1FbJF1fVVxUJy5ECk1HXCpSUzwtUVYoJzwsVV47MT5bJD8wWlgyYCo/KTM0QUJFMmAuOjc7QypMWylfQiFVP05PRj05LCY5SkgKTVRTWE9cRi84OUgxJDpgLl5RPEtPPkE4RCUtXU06NixHLi1ZL0ZBVSkyVkBVUCgiN0YrKyoyXTJMJ08qVwpNIk4lOyFeLFwmIiQ4NkBgMUEmTDRcWDdJKihZTEMhTENOJEMiKV0wIzkkSU4qMTEzO1BIJjo4K0U3LzU6Ck0wPCNTUytONjAhQEFROCFbUDI5OktVLlEsMlY9ND1gSjpgJVMjLS4tVzsrRzpAME8yVTpLVmAiT1NHLFAKTVU0SSowNVo1IShEWipAO10tRlsxQldVSkZSKDcyPjpWLik5I0YzWD0yVTs9NTlNL1dASyglXk5YN1U4UgpNTV8sXD0tRTQuLkBFMVk2I0REUCItXyVMNlRPRkEyTEA7Pl9QO10jUSI6I1tNIzVRU0VZVE1HWDInIzk4Ck1XRUNPVz5CSFUjUSo4K0IvOFlDWSNTLydXSls7KD9VTD8+WzUqQEA5Uic0S1BMJSowOk9fQ0QvQThUVCEKTT1AKiJFKztAKCFXNl9ORDhUVlleOCU5JS8rJzc+JEZUXigzMDs4PDtbNkUpPD8vUiJAREQoTkxUPlQ2JgpNVFdbVz9bT10mVy5FVEkyXD5MPSIkMkRVVipKWTolXVhRTzkoM1tLLSJRJFlXNTRTYEBNWy1UUV09K04wCk1SVWBbLyckXj5KXjsnUzgyRzE3QVUlWilXX0ZCX1BGMkRMSThHXjZBWE5FTUBEMjBgRTomVTpVLy1WRCQKTVtWUyQ+XDcsRUA+XU0hXz4pKFxBJ1JCNUQ6XCEnQjoyPFw
code:
description: Activation code.
type: string
example: AB1C23-4DEF56-7GHI89-JK1L23-MNP456
additional:
description: It specifies if the key that will be installed is an additional key.
type: boolean
example: false
Extension:
type: object
description: Extension entity
properties:
id:
description: Extension identifier.
type: string
example: letsencrypt
name:
description: Human readable name.
type: string
example: Let's Encrypt
version:
description: Extension version.
type: string
example: 2.6.1
release:
description: Extension release number.
type: string
example: '398'
active:
description: Extension status.
type: boolean
example: true
required:
- id
- name
- version
- release
- active
ExtensionInstallRequest:
type: object
description: Extension installation request
properties:
id:
description: Installation by Identifier.
type: string
example: letsencrypt
url:
description: Installation by URL.
type: string
example: https://example.com/catalog/letsencrypt.zip
file:
description: Installation by file.
type: string
example: /path/to/extension.zip
Client:
type: object
description: The client entity
properties:
id:
description: The client's ID.
type: integer
example: 7
created:
description: Creation date.
type: string
format: date
example: '2016-11-13'
name:
description: Client's personal name (1 to 60 characters long).
type: string
example: John Smith
company:
description: The company name (0 to 60 characters long).
type: string
example: Plesk
login:
description: The login name of the client account (1 to 60 characters long).
type: string
x-validators:
- UniqueClientLogin
example: john-unit-test
status:
description: >-
The current status of the client account. Allowed values: 0 (active)
| 16 (disabled by admin) | 4 (under backup/restore) | 256 (expired).
type: integer
example: 0
email:
description: >-
The email address of the client account owner (0 to 255 characters
long).
type: string
example: john_smith@msn.com
locale:
description: 'The locale used on the client account. Default value: en-US.'
type: string
example: en-US
guid:
description: The global user ID of the client account just added to Plesk.
type: string
example: 18b78dd1-2b43-44f7-9599-56ccb56a85dc
owner_login:
description: >-
The login name of a client account owner. If the client account
owner is Plesk Administrator, specify the admin login name.
type: string
example: admin
external_id:
description: >-
The client GUID in the Plesk components (for example, Business
Manager).
type: string
example: link:12345
description:
description: The description for the client account.
type: string
example: Nice guy
type:
description: >-
The type of the client account. Allowed values: reseller | customer
| admin.
type: string
enum:
- reseller
- customer
- admin
example: reseller
required:
- id
- created
- name
- company
- login
- status
- email
- locale
- guid
- description
- type
ClientRequest:
type: object
description: The client entity
properties:
name:
description: Client's personal name (1 to 60 characters long).
type: string
example: John Smith
company:
description: The company name (0 to 60 characters long).
type: string
example: Plesk
login:
description: The login name of the client account (1 to 60 characters long).
type: string
x-validators:
- UniqueClientLogin
example: john-unit-test
status:
description: >-
The current status of the client account. Allowed values: 0 (active)
| 16 (disabled by admin) | 4 (under backup/restore) | 256 (expired).
type: integer
example: 0
email:
description: >-
The email address of the client account owner (0 to 255 characters
long).
type: string
example: john_smith@msn.com
locale:
description: 'The locale used on the client account. Default value: en-US.'
type: string
example: en-US
owner_login:
description: >-
The login name of a client account owner. If the client account
owner is Plesk Administrator, specify the admin login name.
type: string
example: admin
external_id:
description: >-
The client GUID in the Plesk components (for example, Business
Manager).
type: string
example: link:12345
description:
description: The description for the client account.
type: string
example: Nice guy
password:
description: The password of the client account (5 to 14 characters long).
type: string
x-validators:
- PasswordStrength
example: changeme1Q**
type:
description: >-
The type of the client account. Allowed values: reseller | customer
| admin.
type: string
enum:
- reseller
- customer
- admin
example: reseller
required:
- name
- login
- password
- email
- type
ClientUpdateRequest:
type: object
description: The client entity
properties:
name:
description: Client's personal name (1 to 60 characters long).
type: string
example: John Smith
company:
description: The company name (0 to 60 characters long).
type: string
example: Plesk
login:
description: The login name of the client account (1 to 60 characters long).
type: string
x-validators:
- UniqueClientLogin
example: john-unit-test
status:
description: >-
The current status of the client account. Allowed values: 0 (active)
| 16 (disabled by admin) | 4 (under backup/restore) | 256 (expired).
type: integer
example: 0
email:
description: >-
The email address of the client account owner (0 to 255 characters
long).
type: string
example: john_smith@msn.com
locale:
description: 'The locale used on the client account. Default value: en-US.'
type: string
example: en-US
owner_login:
description: >-
The login name of a client account owner. If the client account
owner is Plesk Administrator, specify the admin login name.
type: string
example: admin
external_id:
description: >-
The client GUID in the Plesk components (for example, Business
Manager).
type: string
example: link:12345
description:
description: The description for the client account.
type: string
example: Nice guy
password:
description: The password of the client account (5 to 14 characters long).
type: string
x-validators:
- PasswordStrength
example: changeme1Q**
ClientStatistics:
type: object
description: Client's usage
properties:
active_domains:
description: The number of active domains created by a client.
type: integer
example: 1
subdomains:
description: The number of sub-domains created by a client.
type: integer
example: 0
disk_space:
description: The amount of disk space occupied by the given a client.
type: integer
example: 765952
email_postboxes:
description: The number of email boxes created by a client.
type: integer
example: 1
email_redirects:
description: The number of redirects created by a client.
type: integer
example: 0
email_response_messages:
description: The number of automatic response messages created by a client.
type: integer
example: 0
mailing_lists:
description: The number of mailing lists created by a client.
type: integer
example: 0
databases:
description: The number of databases used by a client.
type: integer
example: 0
traffic:
description: The amount of traffic (in bytes) spent by a client monthly.
type: integer
example: 0
traffic_prevday:
description: >-
The amount of traffic (in bytes) spent by a client during the
previous day.
type: integer
example: 0
required:
- active_domains
- subdomains
- disk_space
- email_postboxes
- email_redirects
- email_response_messages
- mailing_lists
- databases
- traffic
- traffic_prevday
DomainRequest:
type: object
properties:
name:
description: Domain name.
type: string
example: example.com
description:
description: The description for the domain.
type: string
example: My website
hosting_type:
description: >-
It specifies the hosting type of the created domain. Allowed values:
`virtual` | `standard_forwarding` | `frame_forwarding` | `none`.
Meanings: `virtual` - the domain ships with physical hosting.
`standard_forwarding` - the domain ships with standard forwarding.
When the user goes to a domain on which the standard forwarding is
set, Plesk redirects this user from the requested URL to the
destination URL. This is done explicitly: the user sees the real
destination address in the path bar of the browser.
`frame_forwarding` - the domain ships with frame forwarding. When
the user goes to such site on which frame forwarding is set, Plesk
redirects this user from the requested URL to the destination URL
implicitly (the user still sees the initial URL in the path bar of
the browser).
`none` - no hosting ships with the domain.
type: string
enum:
- virtual
- standard_forwarding
- frame_forwarding
- none
hosting_settings:
description: >2-
for *physical hosting*:
`ftp_login` - it specifies the ftp user login name (required).
`ftp_password` - it specifies the ftp user password (required).
for *frame forwarding* and *standard forwarding*:
`dest_url` - it specifies the URL to which the user will be
redirected explicitly at the attempt to visit the specified domain.
type: object
properties:
ftp_login:
type: string
x-validators:
- UniqueFtpLogin
example: login
ftp_password:
type: string
example: qwe123
additionalProperties: true
example:
ftp_login: test_login
ftp_password: changeme1Q**
base_domain:
description: It specifies the base domain when creating the addon domain.
$ref: '#/components/schemas/DomainReference'
parent_domain:
description: It specifies the parent domain when creating the subdomain.
$ref: '#/components/schemas/DomainReference'
owner_client:
description: >-
It specifies the ID, login, GUID or external ID of the new
subscription owner Administrator, reseller, or customer.
$ref: '#/components/schemas/OwnerClientReference'
ip_addresses:
description: The IP address associated with the domain.
type: array
items:
type: string
example:
- 93.184.216.34
- 2606:2800:220:1:248:1893:25c8:1946
ipv4:
description: '@deprecated'
type: array
items:
type: string
format: ipv4
example:
- 93.184.216.34
ipv6:
description: '@deprecated'
type: array
items:
type: string
format: ipv6
example:
- 2606:2800:220:1:248:1893:25c8:1946
plan:
$ref: '#/components/schemas/PlanReference'
DomainResponse:
type: object
properties:
id:
description: Domain ID.
type: integer
example: 7
name:
description: Domain name.
type: string
example: example.com
ascii_name:
description: Domain display name.
type: string
example: ascii-example.com
hosting_type:
description: Domain hosting type.
type: string
enum:
- virtual
- standard_forwarding
- frame_forwarding
- none
base_domain_id:
description: Base domain ID.
type: integer
example: 3
www_root:
description: WWW Root on filesystem
type: string
example: /var/www/vhosts/example.com/httpdocs
guid:
description: Domain GUID.
type: string
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
created:
description: Creation date.
type: string
format: date
example: '2016-11-13'
aliases:
x-since: 18.0.42
description: Domain aliases that point to this domain.
type: array
items:
$ref: '#/components/schemas/DomainAlias'
required:
- id
- name
- ascii_name
- hosting_type
- base_domain_id
- www_root
- guid
- created
DomainReference:
type: object
properties:
id:
description: Domain ID.
type: integer
example: 7
name:
description: Domain name.
type: string
example: example.com
guid:
description: Domain GUID.
type: string
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
required:
- id
- name
- guid
DomainStatus:
type: object
properties:
status:
description: Status of the specified domain.
type: string
enum:
- active
- suspended
- disabled
example: active
required:
- status
OwnerClientReference:
type: object
properties:
id:
description: The client's ID.
type: integer
example: 7
login:
description: The login name of the client account owner.
type: string
example: owner
guid:
description: The global user ID of the client account just added to Plesk.
type: string
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
external_id:
description: >-
The client GUID in the Plesk components (for example, Business
Manager).
type: string
example: b623e93d-dc72-4102-b5f0-ded427cf0fb1
required:
- id
- login
- guid
- external_id
PlanReference:
type: object
properties:
name:
description: >-
The service plan by name if it is necessary to create a subscription
to a certain service plan.
type: string
example: Unlimited
required:
- name
DomainAlias:
type: object
properties:
id:
description: Domain alias ID.
type: integer
example: 123
name:
description: Domain alias name.
type: string
example: example.com
ascii_name:
description: Domain alias name in ASCII.
type: string
example: ascii-example.com
web:
description: Web service status.
type: boolean
example: false
dns:
description: DNS service status.
type: boolean
example: true
mail:
description: Mail service status.
type: boolean
example: false
seo_redirect:
description: 301 redirect to HTTPS status.
type: boolean
example: true
required:
- id
- name
- ascii_name
- web
- dns
- mail
- seo_redirect
FtpUser:
type: object
properties:
id:
description: User ID in the database
type: integer
example: 2
name:
description: User name in the system
type: string
example: exampleuser
home:
description: Subdirectory of the WWW Root that user is restricted to
type: string
example: /httpdocs
quota:
description: Hard disk quota in bytes (if supported by platform)
type: integer
example: -1
permissions:
description: Access permissions of the user (if supported by platform)
type: object
properties:
write:
type: string
enum:
- 'true'
- 'false'
read:
type: string
enum:
- 'true'
- 'false'
parent_domain:
description: ID of the parent domain
type: integer
example: 4
required:
- id
- name
- home
- parent_domain
FtpUserRequest:
type: object
properties:
name:
description: User name in the system
type: string
example: exampleuser
password:
description: User password
type: string
example: changeme1Q**
home:
description: Subdirectory of the WWW Root that user is restricted to
type: string
example: /httpdocs
quota:
description: Hard disk quota in bytes (if supported by platform)
type: integer
example: -1
permissions:
description: Access permissions of the user (if supported by platform)
type: object
properties:
read:
type: string
enum:
- 'true'
- 'false'
write:
type: string
enum:
- 'true'
- 'false'
parent_domain:
$ref: '#/components/schemas/DomainReference'
required:
- name
- password
- parent_domain
FtpUserUpdateRequest:
type: object
properties:
name:
description: User name in the system
type: string
example: exampleuser
password:
description: User password
type: string
home:
description: Subdirectory of the WWW Root that user is restricted to
type: string
example: /httpdocs
quota:
description: Hard disk quota in bytes (if supported by platform)
type: integer
example: -1
permissions:
description: Access permissions of the user (if supported by platform)
type: object
properties:
read:
type: string
enum:
- 'true'
- 'false'
write:
type: string
enum:
- 'true'
- 'false'
Database:
type: object
properties:
id:
description: ID of the database
type: integer
example: 2
name:
description: Database name
type: string
example: exampledb
type:
description: Database server type
type: string
enum:
- mssql
- mysql
- postgresql
parent_domain:
description: ID of the parent domain
type: integer
example: 3
server_id:
description: ID of the database server
type: integer
example: 1
default_user_id:
description: ID of the default database user for database
type: integer
example: 6
DatabaseRequest:
type: object
properties:
name:
description: Database name
type: string
example: exampledb
type:
description: Database server type
type: string
enum:
- mssql
- mysql
- postgresql
parent_domain:
$ref: '#/components/schemas/DomainReference'
server_id:
description: ID of the database server
type: integer
example: 1
DatabaseServer:
type: object
properties:
id:
description: ID of the database server
type: integer
example: 1
host:
description: Database server host
type: string
example: 127.0.0.1
port:
description: Database server port
type: integer
example: 3306
type:
description: Database server type
type: string
enum:
- mssql
- mysql
- postgresql
status:
description: Database server status
type: string
db_count:
description: Database server database count
type: integer
example: 123
is_default:
description: Flag that server is default for servers of this type
type: boolean
is_local:
description: Flag that server is installed on local service node
type: boolean
DatabaseUser:
type: object
properties:
id:
description: ID of the database user
type: integer
example: 5
login:
description: Database user login
type: string
example: exampledbuser
database_id:
description: ID of the database
type: integer
example: 12
DatabaseUserRequest:
type: object
properties:
login:
description: Database user login
type: string
example: exampledbuser
password:
description: User password
type: string
example: changeme1Q**
parent_domain:
$ref: '#/components/schemas/DomainReference'
server_id:
description: >-
ID of the database server (if user should have access to all
databases on subscription)
type: integer
example: 9
database_id:
description: ID of the database (if user should have access to one database)
type: integer
example: 3
DatabaseUserUpdateRequest:
type: object
properties:
login:
description: Database user login
type: string
example: exampledbuser
password:
description: New user password
type: string
example: changeme1Q**
DnsRecord:
type: object
properties:
id:
description: Unique identifier of the DNS record
type: integer
type:
description: The type of the DNS record
type: string
enum:
- A
- CNAME
- PTR
- MX
- NS
- TXT
- SOA
- AXFR
- SRV
- AAAA
- DS
- CAA
- TLSA
- HTTPS
host:
description: The IP address or name of a host, that will be used by DNS
type: string
value:
description: The value that will be linked with the host value
type: string
opt:
description: Optional information about the DNS record
type: string
ttl:
description: >-
The amount of time (in seconds) that slave DNS servers should store
the record in a cache
type: integer
DnsRecordRequest:
type: object
properties:
type:
description: The type of the DNS record
type: string
enum:
- A
- CNAME
- PTR
- MX
- NS
- TXT
- SOA
- AXFR
- SRV
- AAAA
- DS
- CAA
- TLSA
- HTTPS
host:
description: The IP address or name of a host, that will be used by DNS
type: string
value:
description: The value that will be linked with the host value
type: string
opt:
description: Optional information about the DNS record
type: string
ttl:
description: >-
The amount of time (in seconds) that slave DNS servers should store
the record in a cache
type: integer