You can use any HTTP/FTP client library to transfer the request to Plesk and to get the result. In common case, the resulting HTTP packet will be structured as described in the Plesk API RPC Packet Structure section. If the CURL engine is used, the result will be returned in the pure XML format.
The structure of the pure XML packet returned by Plesk API RPC server is defined by XML schemas of the API RPC version you use.
Packet is a root node of every response XML packet, the version attribute returns the version of Plesk API RPC protocol running on the server.
API RPC version 1.3.5.1 and earlier

A response packet contains either response of a particular operator (on the figure above, it is client), or the Plesk application error returned in the system node.
API RPC version 1.4.0.0 and higher

A response packet contains either response of particular operator(s), or the Plesk application error returned in the system node.
For the detailed information on the system and output nodes meanings, refer to the Handling Errors section.
To examine the structure of the response for a certain operation, you need the output schema of the relevant operator. This schema can be detected by name, e.g., the client_output.xsd file name indicates that the file describes the outgoing packet structure of the client operator. Also, starting with version 1.4.0.0 of API RPC, Plesk XML API ships with the main agent_output.xsd schema. This schema enumerates response data types for all operators supported by a given version of API RPC, and indicates output schemas matching these operators as well.
Within each [operator] element of a response packet, a typical response data type contains one or more result elements. This element is represented by a complex type that typically includes type resultType defined in the common.xsd schema as follows:
<xs:complexType name="resultType">
<xs:sequence>
<xs:element name="status" type="result_status"></xs:element>
<xs:element name="errcode" type="unsignedInt" minOccurs="0"></xs:element>
<xs:element name="errtext" type="xs:string" minOccurs="0"></xs:element>
</xs:sequence>
</xs:complexType>
The result element can also contain optional nested elements if any defined in the complex type.
In common case, the format of the packet returned by Plesk API RPC server looks as follows:
<?xml="1.0" encoding="UTF-8" ?>
<packet version="1.4.0.0">
<[operator]>
<[operation]>
<result>
…
</result>
[
<result>
…
</result>
…
<result>
…
</result>
]
</[operation]>
</[operator]>
</packet>
Here, the [operator] stands for the operator used in the request packet, and the [operation] means the operation performed. The RESULT element is always used to isolate the requested information and the execution status of the performed operation. The RESULT section always contains the STATUS element that contains the execution status of the performed operation.
Note: A real response XML packet can contain more than one operation within the operator section if the input packet requested for more multiple operations. Also, beginning with version 1.4.0.0 of API RPC, a response packet can contain more than one operator section if the input packet required for operations on multiple Plesk objects.
Starting from version 1.4.2.0 Plesk API RPC supports filtering. Filtering is the way the request XML packet indicates the object to which an operation will be applied. The request XML packet filters objects using a special <filter> section. Parameters, nested in the filter node are called filtering rule. If an operation supports filtering, it can have multiple result nodes depending on the filtering rule. The operation response packet will contain as many result nodes as many different objects were matched by the filtering rule.