This document covers the control panels' APIs. You need to be logged in with the appropriate privileges to call a function.
Session unique ID authentication
You can use this method when working with a control panel through your web browser.
Follow the link:
The control panel will return either an error message or the following XML document:
You should specify this session id in the auth parameter to each call to a control panel. The session id is valid during one hour. If you do not send any requests to the control panel during that period, you will have to get authorized again.
In the URL above you may use the following internal control panel's names:
- ispmgr — ISPmanager;
- billmgr — BILLmanager;
- vdsmgr — VDSmanager;
- dsmgr — DSmanager;
- dnsmgr — DNSmanager;
- ipmgr — IPmanager.
This method can be used for remote function calls. To call ab ISPmanager function, you need to add the authinfo parameter and specify a login and password of the user who will call that functions:
You must send the authinfo parameter with each call to the control panel. Authorization via "authinfo" can be restricted to the "white list" of IP-addresses and/or networks. You can configure the "white list" through the "RestrictAuthinfoRange" and "Option RestrictAuthinfo" parameters of the configuration file or through the authorization settings.
This method allows using the administrator's login or password.
The key is a random line at least 16 symbols long, such as 1234567890qwertyuiop.
The username is "John".
A server administrator may use any of the above authentication methods and execute the following request:
In case of errors an error message will return. If not, the user will be redirected to:
Following the above link will authorize the user and delete the key.
- You may specify the key from any IP address. After the user is granted access to the control panel, this IP address will be associated with the session.
- The key can be used only once.
- Access is allowed from any IP address (even from those that are denied to access the panel).
Calling ISPmanager function with privileges of another user
To call an ISPmanager function with privileges of another user, add su=user_name to the URL. A server administrator can call functions as any user; resellers can do so with privileges of their user accounts. All other users cannot use this method.
Getting results in native languages
To get function results or error messages in your native language, add the lang=language to request (e.g. lang=en). If you specify a non-existent language, a default language will be used (normally, it is English, en).
Output of function results
Output can be generated in XML, JSON and text format. If you wish to receive output results in a specific format, specify the out=format_name parameter.
The out parameter can have one of the following values:
- xml — data structures in XML will be generated.
- devel — similar to XML, but the document will contain data describing the user's interface.
- text — data structures in the text format will be generated
- json — data structures in JSON will be generated. More information can be found here.
- JSONdata — similar to JSON. Only data are described.
- print — html for printing. Can be used only for data lists.
- xxxx — you can create a custom output format, if needed. For more read in Creating of own output format.
If the out parameter is missing, such data are considered to be used by the browser and are converted into html.
Local calls to control panel
For local calls to the control panel you can use the internal utility mgrctl , which has a number of advantages:
- calls are sent directly to the control panel (they do not depend on the web-server);
- there is no need to store a password, as authentication is always made with permissions of the user who run the script (if you need to perform operations as another user, use the su parameter described above);
- has a built-in hints to all functions and their parameters relevant to your server.
Getting a list of WWW-domains in ISPmanager
Following is an example on how to get a list of WWW domains. You can call all other functions in the same manner. This example shows only the local call.
The curl utility
The mgrctl utility
PHP enables to use URL like standard files. The DOM XML library is used to handle XML documents.
You should use the urllib2 library. Use the xml.dom.minidom library for working with XML documents.
Format of requests and results
Requests are described as follows:
Function: a function name to be passed in the func parameter.
Parameters: a list of parameters and their brief description. If a function has no parameters, they are not specified. Parameters are passed in the format parameter=value.
Result: results may vary depending on the requested function:
List of elements (table)
The XML document will look like this:
Result: only the element parameters are described. They are one or several XML-nodes containing all possible attributes and values. For example:
List of object parameters (form)
The XML document will look like this:
Result: the object parameters are only described. These are one or several XML nodes with all possible attributes and values that describe properties of that object. For example:
Successful operation (action)
When creating, changing, removing, enabling or disabling an object, the XML document will look like this:
If the web-server needs to be rebooted:
To reboot the web-server click the link below:
If an error occurred while processing your request, the XML document will look like this:
For more information, please refer to Error codes.
List of functions and parameters
Parameters and Function of every control panel are described in separate articles of our Documentation (the articles are generated automatically). They contains all of the functions and parameters, which, however, may be not available in your installation.
- ISPmanager API
- BILLmanager API
- VMmanager OVZ
- VMmanager KVM (and Cloud)
- DCImanager API
- DNSmanager API
- IPmanager API
Use the mgrctl -i utility to get up-to-date information.
To get a full list of ISPmanager functions, you may execute the command:
To get data description (the lang parameter can be used to get information in a required language):
How to generate an API request using the log file
The easiest way to generate an API request is to perform a desired action in the panel interface and view the function and its parameters in the log file.
Complete the following steps:
1. Open the log file of the control panel with the tail command:
where XXX is a short name of the control panel. For example: bill, isp, vm, dci.
2. Execute a required action in the interface of the control panel. In the log file you will see the function being executed at that moment, and its parameters (it is shown in green color starting from INFO Request).
For example, creating of a domain name in ISPmanager log file looks like this:
Let's generate the API request based on the function.
An API request must have the format https://<IP or domain name>:<the main port of the control panel>/<a short name of the control panel>?func=<function>&<parameter 1>=<value>&<parameter 2>=<value>...
Remove optional parameters from the request (sfrom, clicked_button, operafake, progressid, parameters equal to * and empty parameters), and create the API request: