Get started with the Perfecto REST APIs, a RESTful web service that provides an interface for accessing CQ Lab functionality and data from a remote client over the web.
The following API operations are available:
Run a sequence of Perfecto automation commands
|Script||Start script executions, get status, aborting and listing|
|Report||Download reports, images, video, vitals & network information|
|Repository||Upload & Download items, list, delete and clean the repository|
|Device, Device Host & Cradle||Get info on one or all devices, device hosts, or cradles|
|Scheduler||Create, update, delete and list scheduled scripts|
|User & Account||Create, update, list and delete users|
|Group||Create, update, list and delete groups|
The following is the API URL request structure:
<hostName>: Host name for the service. For example,
<resourceGroup>: a resource group. For example, executions.
<resourceIdentifier>: A resource identifier. This is only required if the API call is on a specific resource such as aborting a specific execution.
operation: The operation to perform. For example, abort.
<mandatoryParameters>: One or more required parameters specified using name-value pairs prefixed by the & character. For example, &offlineToken=securityToken.
<optional parameters>: One or more optional parameters specified using name-value pairs prefixed by the & character. For example, &responseFormat=XML.
Authentication & Authorization
It is required to send some form of authentication -
- If your Perfecto Lab supports the Security Token, it is strongly recommended to use the securityToken parameter to provide your personal valid token.
- For OnPrem and Perfecto Labs that do not support the token, the user and password for authentication should be supplied in each request.
Some operations require specific user permissions. For example user operations requires administrator or user management role.
The API request can be transmitted to the API server using either the GET or the POST HTTP methods. To use the GET method, simply specify the request as a URL. Parameter values must be encoded to prevent conflicts with HTTP special characters. The following example shows the URL for getting a list of all connected handsets in mycloud.
You can get the same list using the POST method specifying the POST parameters as follows:
Operations that upload files to the Perfecto repository must use POST or PUT method.
The default response format is JSON. Most operations support the optional parameter responseFormat for specifying the required format. A few operations support only XML response format.
- JSON - For more information about the JSON format, see http://www.json.org.
- XML - the response is an XML document.
The following examples show the response type for a request to start a new execution:
Test Your API Access
- Open a web browser.
- Type: https://myCloud.perfectomobile.com/services/handsets?operation=list&user=myUser&password=myPassword
in the address bar, substituting myCloud, myUsename, and myPassword as appropriate, and then type ENTER.
- Confirm that an XML list of devices is returned by the API.
Error messages returned in the response of an API operation are self-explanatory and should be sufficient to resolve issues, as can be seen from the following examples:
The following table provides guidance for resolving some of the common HTTP codes that you may encounter:
|400 Bad Request||One or more of the specified parameters is not valid.||Fix incorrect parameters in the URL.|
|401 Unauthorized||Authentication is required and has failed.||Fix incorrect user/password parameters in the URL.|
|500 Internal server error||Internal server error.||Contact your system administrator.|