Files
server/opt/psa/admin/htdocs/modules/rest-api/public/v2/swagger.yml
cutemeli 0bfc6c8425 Initial
2025-12-22 10:32:59 +00:00

2522 lines
68 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.
swagger: '2.0'
info:
version: v2
title: Plesk RESTful API
basePath: /api/v2
schemes:
- https
securityDefinitions:
BasicAuth:
type: basic
APIKeyHeader:
type: apiKey
in: header
name: X-API-Key
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.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Key parameters
required: true
schema:
$ref: '#/definitions/SecretKeyRequest'
responses:
'201':
description: Secret key was successfully created
schema:
$ref: '#/definitions/SecretKeyResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'401':
description: Incorrect login
schema:
$ref: '#/definitions/ErrorResponse'
/auth/keys/{key}:
delete:
tags:
- Authentication
summary: Delete API secret key
description: >-
Revoke and delete an API secret key, removing all associated access
permissions.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: key
description: Key ID
required: true
x-example: 3d2e93ad-85e6-1a3e-9f81-b9d26650e4f9
type: string
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Key does not exist
schema:
$ref: '#/definitions/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.
produces:
- application/json
responses:
'200':
description: OK
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.
produces:
- application/json
parameters:
- in: path
name: id
description: Command name
type: string
required: true
x-example: settings
responses:
'200':
description: OK
schema:
type: object
properties:
allowed_commands:
type: object
allowed_options:
type: object
'404':
description: Command is not found
schema:
$ref: '#/definitions/ErrorResponse'
/cli/{id}/call:
post:
tags:
- Cli
summary: Execute CLI command
description: >-
Execute a specific Plesk CLI command with the provided parameters and
options.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
description: Command name
type: string
required: true
x-example: settings
- in: body
name: body
description: Command arguments and environment
schema:
$ref: '#/definitions/CliCallRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/CliCallResponse'
'404':
description: Command is not found
schema:
$ref: '#/definitions/ErrorResponse'
/server:
get:
tags:
- Server
summary: Get server information
description: >-
Retrieve server metadata including Plesk version, platform, and system
information.
produces:
- application/json
responses:
'200':
description: Return Server Meta Information
schema:
$ref: '#/definitions/ServerMeta'
/server/init:
post:
tags:
- Server
summary: Initialize server
description: >-
Perform initial server configuration, including admin credentials and
basic settings.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Inital setup parameters
required: true
schema:
$ref: '#/definitions/ServerInit'
responses:
'200':
description: Inital server setup was succesfully performed
schema:
$ref: '#/definitions/StatusResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
/server/license:
post:
tags:
- Server
summary: Install license key
description: Install or update the Plesk or additional license key for the server.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: License key
required: true
schema:
$ref: '#/definitions/ServerLicense'
responses:
'200':
description: License key was succesfully installed
schema:
$ref: '#/definitions/StatusResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
/server/ips:
get:
tags:
- Server
summary: List server IP addresses
description: Retrieve a list of all IP addresses configured on the server.
produces:
- application/json
responses:
'200':
description: Return Server IP Addresses list
schema:
type: array
items:
$ref: '#/definitions/ServerIp'
/extensions:
get:
tags:
- Extensions
summary: List installed extensions
description: >-
Retrieve a list of all Plesk extensions currently installed on the
server.
produces:
- application/json
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/Extension'
post:
tags:
- Extensions
summary: Install extension
description: >-
Install a Plesk extension from the Extension Catalog by ID, a file, or
URL.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Installation type and resource
required: true
schema:
$ref: '#/definitions/ExtensionInstallRequest'
responses:
'200':
description: Extension successfully installed
schema:
$ref: '#/definitions/StatusResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
/extensions/{id}:
get:
tags:
- Extensions
summary: Get extension details
description: Retrieve detailed information about a specific installed extension.
produces:
- application/json
parameters:
- in: path
name: id
description: Extension identifier
type: string
required: true
x-example: letsencrypt
responses:
'200':
description: OK
schema:
$ref: '#/definitions/Extension'
'404':
description: Extension is not installed
schema:
$ref: '#/definitions/ErrorResponse'
delete:
tags:
- Extensions
summary: Uninstall extension
description: Remove an extension from the server and delete all associated data.
produces:
- application/json
parameters:
- in: path
name: id
description: Extension identifier
type: string
required: true
x-example: letsencrypt
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Extension is not installed
schema:
$ref: '#/definitions/ErrorResponse'
/extensions/{id}/enable:
put:
tags:
- Extensions
summary: Enable extension
description: Enable a previously disabled extension, making it active on the server.
produces:
- application/json
parameters:
- in: path
name: id
description: Extension identifier
type: string
required: true
x-example: letsencrypt
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Extension is not installed
schema:
$ref: '#/definitions/ErrorResponse'
/extensions/{id}/disable:
put:
tags:
- Extensions
summary: Disable extension
description: >-
Disable an extension temporarily without uninstalling it from the
server.
produces:
- application/json
parameters:
- in: path
name: id
description: Extension identifier
type: string
required: true
x-example: letsencrypt
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Extension is not installed
schema:
$ref: '#/definitions/ErrorResponse'
/clients:
get:
tags:
- Clients
summary: List clients
description: Retrieve a list of all client accounts on the server.
produces:
- application/json
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/Client'
post:
tags:
- Clients
summary: Create client account
description: Create a new client account with the specified settings and permissions.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Client data
required: true
schema:
$ref: '#/definitions/ClientRequest'
responses:
'201':
description: Client account successfully created
schema:
$ref: '#/definitions/CreatedResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
/clients/{id}:
get:
tags:
- Clients
summary: Get client details
description: Retrieve detailed information about a specific client account.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
responses:
'200':
description: OK
schema:
$ref: '#/definitions/Client'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
put:
tags:
- Clients
summary: Update client account
description: Update settings and properties of an existing client account.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
- in: body
name: body
description: Client data
required: true
schema:
$ref: '#/definitions/ClientUpdateRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/CreatedResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
delete:
tags:
- Clients
summary: Delete client account
description: Delete a client account and all associated data from the server.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
responses:
'200':
description: OK
schema:
$ref: '#/definitions/CreatedResponse'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
/clients/{id}/domains:
get:
tags:
- Clients
summary: List client domains
description: Retrieve all domains associated with a specific client account.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/DomainResponse'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
/clients/{id}/statistics:
get:
tags:
- Clients
summary: Get client statistics
description: Retrieve resource usage statistics for a specific client account.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
responses:
'200':
description: OK
schema:
$ref: '#/definitions/ClientStatistics'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
/clients/{id}/activate:
put:
tags:
- Clients
summary: Activate client
description: Activate a suspended client account, restoring access to all services.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
/clients/{id}/suspend:
put:
tags:
- Clients
summary: Suspend client
description: Suspend a client account, temporarily blocking access to all services.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Client ID
x-example: 7
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Client is not found
schema:
$ref: '#/definitions/ErrorResponse'
/domains:
get:
tags:
- Domains
summary: List domains
description: >-
Retrieve a list of all domains on the server, with optional filtering by
domain name.
produces:
- application/json
parameters:
- in: query
name: name
description: Filter data by domain name
type: string
x-example: example.com
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/DomainResponse'
post:
tags:
- Domains
summary: Create domain
description: >-
Create a new domain with the specified configuration and hosting
settings.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Domain data
required: true
schema:
$ref: '#/definitions/DomainRequest'
responses:
'201':
description: Domain successfully created
schema:
$ref: '#/definitions/CreatedResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
/domains/{id}:
get:
tags:
- Domains
summary: Get domain details
description: Retrieve detailed information about a specific domain.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Domain ID
x-example: 1
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DomainResponse'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
put:
tags:
- Domains
summary: Update domain
description: Update settings and configuration for an existing domain.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Domain ID
x-example: 1
- in: body
name: body
description: Domain
required: true
schema:
$ref: '#/definitions/DomainRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/CreatedResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
delete:
tags:
- Domains
summary: Delete domain
description: Delete a domain and all associated data from the server.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Domain ID
x-example: 1
responses:
'200':
description: OK
schema:
$ref: '#/definitions/CreatedResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
/domains/{id}/client:
get:
tags:
- Domains
summary: Get domain owner
description: Retrieve information about the client account that owns the domain.
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Domain ID
x-example: 1
responses:
'200':
description: OK
schema:
$ref: '#/definitions/Client'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
/domains/{id}/status:
get:
tags:
- Domains
summary: Get domain status
description: >-
Retrieve the current operational status of a domain (active, suspended,
disabled).
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Domain ID
x-example: 1
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DomainStatus'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
put:
tags:
- Domains
summary: Update domain status
description: Change the operational status of a domain (enable, suspend, or disable).
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
type: integer
required: true
description: Domain ID
x-example: 1
- name: body
in: body
description: Domain status
required: true
schema:
$ref: '#/definitions/DomainStatus'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DomainStatus'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
/ftpusers:
get:
tags:
- FtpUsers
summary: List FTP users
description: >-
Retrieve a list of FTP users with optional filtering by username or
domain.
consumes:
- application/json
produces:
- application/json
parameters:
- in: query
name: name
description: Filter data by user name
type: string
x-example: exampleuser
- in: query
name: domain
description: Filter data by domain name
type: string
x-example: example.com
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/FtpUser'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain/user is not found
schema:
$ref: '#/definitions/ErrorResponse'
post:
tags:
- FtpUsers
summary: Create FTP user
description: >-
Create a new FTP user account with specified permissions and home
directory.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: FTP User data
required: true
schema:
$ref: '#/definitions/FtpUserRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/FtpUser'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
/ftpusers/{name}:
put:
tags:
- FtpUsers
summary: Update FTP user
description: >-
Update FTP user settings such as password, home directory, or
permissions.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: name
description: FTP user name
required: true
type: string
x-example: exampleuser
- in: body
name: body
description: FTP User data
required: true
schema:
$ref: '#/definitions/FtpUserUpdateRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: User is not found
schema:
$ref: '#/definitions/ErrorResponse'
delete:
tags:
- FtpUsers
summary: Delete FTP user
description: Delete an FTP user account and revoke all associated access.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: name
description: FTP User name
required: true
type: string
x-example: exampleuser
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: User is not found
schema:
$ref: '#/definitions/ErrorResponse'
/databases:
get:
tags:
- Databases
summary: List databases
description: >-
Retrieve a list of all databases on the server, with optional filtering
by domain name.
consumes:
- application/json
produces:
- application/json
parameters:
- in: query
name: domain
description: Filter data by domain name
type: string
x-example: example.com
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/Database'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Server is not found
schema:
$ref: '#/definitions/ErrorResponse'
post:
tags:
- Databases
summary: Create database
description: Create a new database on the specified database server.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Database data
required: true
schema:
$ref: '#/definitions/DatabaseRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/Database'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
/databases/{id}:
delete:
tags:
- Databases
summary: Delete database
description: Delete a database and all its data from the database server.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
description: Database ID
required: true
type: integer
x-example: 10
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Database is not found
schema:
$ref: '#/definitions/ErrorResponse'
/dbusers:
get:
tags:
- Databases
summary: List database users
description: >-
Retrieve a list of database users, with optional filtering by database
ID.
consumes:
- application/json
produces:
- application/json
parameters:
- in: query
name: dbId
description: Filter data by database ID
type: integer
x-example: 44
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/DatabaseUser'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain/database is not found
schema:
$ref: '#/definitions/ErrorResponse'
post:
tags:
- Databases
summary: Create database user
description: >-
Create a new database user with specified credentials and database
association.
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: body
description: Database User data
required: true
schema:
$ref: '#/definitions/DatabaseUserRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DatabaseUser'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Server/database/domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
/dbusers/{id}:
put:
tags:
- Databases
summary: Update database user
description: Update database user settings, such as password or access permissions.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
description: Database user ID
required: true
type: integer
x-example: 12
- in: body
name: body
description: Database user data
required: true
schema:
$ref: '#/definitions/DatabaseUserUpdateRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Server/database/domain is not found
schema:
$ref: '#/definitions/ErrorResponse'
delete:
tags:
- Databases
summary: Delete database user
description: Delete a database user and revoke all associated access rights.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
description: Database user ID
required: true
type: integer
x-example: 12
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: Database user is not found
schema:
$ref: '#/definitions/ErrorResponse'
/dbservers:
get:
tags:
- Databases
summary: List database servers
description: Retrieve a list of all database servers configured on the system.
consumes:
- application/json
produces:
- application/json
parameters:
- in: query
name: id
description: Filter data by database server id
type: integer
x-example: 1
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/DatabaseServer'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Server is not found
schema:
$ref: '#/definitions/ErrorResponse'
/dns/records:
get:
tags:
- DNS
summary: List DNS records
description: Retrieve all DNS records for a specific domain or domain alias.
produces:
- application/json
parameters:
- in: query
name: domain
description: Filter by domain or domain alias name
type: string
required: true
x-example: example.com
responses:
'200':
description: OK
schema:
type: array
items:
$ref: '#/definitions/DnsRecord'
post:
tags:
- DNS
summary: Create DNS record
description: Add a new DNS record to a domain or domain alias zone.
consumes:
- application/json
produces:
- application/json
parameters:
- in: query
name: domain
description: Filter by domain or domain alias name
type: string
required: true
x-example: example.com
- in: body
name: body
description: DNS record data
required: true
schema:
$ref: '#/definitions/DnsRecordRequest'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DnsRecord'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Domain or Domain Alias is not found
schema:
$ref: '#/definitions/ErrorResponse'
/dns/records/{id}:
get:
tags:
- DNS
summary: Get DNS record
description: Retrieve details of a specific DNS record by its ID.
produces:
- application/json
parameters:
- in: path
name: id
description: DNS record ID
type: integer
required: true
x-example: 123
responses:
'200':
description: OK
schema:
$ref: '#/definitions/DnsRecord'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: DNS record is not found
schema:
$ref: '#/definitions/ErrorResponse'
put:
tags:
- DNS
summary: Update DNS record
description: Modify an existing DNS record's properties and values.
consumes:
- application/json
produces:
- application/json
parameters:
- in: path
name: id
description: DNS record ID
type: integer
required: true
x-example: 123
- in: body
name: body
description: DNS record data
required: true
schema:
$ref: '#/definitions/DnsRecord'
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'400':
description: Invalid request data
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: DNS record is not found
schema:
$ref: '#/definitions/ErrorResponse'
delete:
tags:
- DNS
summary: Delete DNS record
description: Remove a DNS record from the domain's DNS zone.
produces:
- application/json
parameters:
- in: path
name: id
description: DNS record ID
type: integer
required: true
x-example: 123
responses:
'200':
description: OK
schema:
$ref: '#/definitions/StatusResponse'
'404':
description: DNS record is not found
schema:
$ref: '#/definitions/ErrorResponse'
definitions:
StatusResponse:
properties:
status:
description: Result of the operation
type: string
example: success
required:
- status
CreatedResponse:
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:
properties:
code:
type: integer
example: 400
message:
type: string
example: Account with this name already exists
required:
- code
- message
SecretKeyRequest:
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:
properties:
key:
description: Secret key value.
type: string
example: c5b239d1-8eb6-8cee-76b7-aa16be37fee8
required:
- key
CliCallRequest:
description: Command execution parameters
properties:
params:
type: array
items:
type: string
example:
- '--get'
- FullHostName
env:
type: object
example:
PSA_PASSWORD: password
CliCallResponse:
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:
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:
description: Initial server setup parameters
properties:
admin:
$ref: '#/definitions/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:
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:
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:
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:
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:
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:
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:
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:
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:
description: The client statistics
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:
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: '#/definitions/DomainReference'
parent_domain:
description: It specifies the parent domain when creating the subdomain.
$ref: '#/definitions/DomainReference'
owner_client:
description: >-
It specifies the ID, login, GUID or external ID of the new
subscription owner Administrator, reseller, or customer.
$ref: '#/definitions/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: '#/definitions/PlanReference'
DomainResponse:
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: '#/definitions/DomainAlias'
required:
- id
- name
- ascii_name
- hosting_type
- base_domain_id
- www_root
- guid
- created
DomainReference:
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:
properties:
status:
description: Status of the specified domain.
type: string
enum:
- active
- suspended
- disabled
example: active
required:
- status
OwnerClientReference:
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:
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:
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:
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:
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: '#/definitions/DomainReference'
required:
- name
- password
- parent_domain
FtpUserUpdateRequest:
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:
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:
properties:
name:
description: Database name
type: string
example: exampledb
type:
description: Database server type
type: string
enum:
- mssql
- mysql
- postgresql
parent_domain:
$ref: '#/definitions/DomainReference'
server_id:
description: ID of the database server
type: integer
example: 1
DatabaseServer:
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:
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:
properties:
login:
description: Database user login
type: string
example: exampledbuser
password:
description: User password
type: string
example: changeme1Q**
parent_domain:
$ref: '#/definitions/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:
properties:
login:
description: Database user login
type: string
example: exampledbuser
password:
description: New user password
type: string
example: changeme1Q**
DnsRecord:
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:
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