Dynatrace Synthetic Classic Availability Test API

Overview

The Availability Test API allows you direct access to provision Availability tests and to get results data and measurement metadata (such as sites used and URLs measured) for your Availability tests in real time.

You can provision one to many Availability tests at a time with a single call, setting the URLs to be tested, the frequency of tests, and the sites from which tests will be executed.

You can access the underlying data that powers Synthetic Classic Portal charts and dashboards, which you can now consume to construct your own dashboard and trending visualizations.

Main features

The Availability Test API supports:

  • CREATE, UPDATE, GET, and DELETE for one to many Availability Tests in a single call.
  • Full access to metrics and dimensions loaded from the database.
  • Any combination of grouping and filtering.
  • Auto-detection of bucketing for data aggregation. See Data bucketing below for details.
  • Custom bucketing.
  • Minimum, maximum, average, sum, standard deviation, percentile, and median values for most metrics in trend and table calls.
  • Dynamic calculation of the amount of data returned; no fixed limits.
  • Auto-detection of the level of synthetic monitoring (summary, page). By default, summary, or overall measurement-level data, is returned.

Supported products

You must be a Synthetic Classic customer to use the API methods. The following test types are currently supported by the Availability Test API:

  • Availability tests: HTTP

How to issue requests

The Availability Test API uses a REST architecture.

You issue API commands as:

  • HTTP POST requests to create tests.
  • HTTP PUT to update tests. HTTP PUT requests can also be used to make tests active or inactive.
  • HTTP GET to retrieve tests.
  • HTTP DELETE to delete tests.

You issue API commands as HTTP GET requests to retrieve data from Availability tests. You can do this machine-to-machine, or interactively by constructing the URL in a browser.

The following URL shows the syntax of a request for synthetic data using an HTTP POST/PUT/GET or DELETE:

https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper?login=<user_login>&pass=<md5_hash_password>&[other-parameters]

The following URL shows the syntax of a request for synthetic data:

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/<requesttype>?login=<user_login>&pass=<md5_hash_password>&[other-parameters]

We can break this request down into logical segments:

  • The hostname of the API system, which is the same for all calls:  https://ultraapi-prod.dynatrace.com
  • API version number and the request for synthetic data (same for all calls):
    /v3.3/manage/hyper (to manage tests) or /v3.3/synthetic (to get test data)
  • The API method invoked, /<request-type>?, e.g., /table? or manage/hyper?
  • Credentials (substitute your own credentials in placeholders):
    login=<user_login>&pass=<md5_hash_password>
  • Method parameters, for example:  &monid=<monitor_id>&bucket=minute

The very first parameter in the call, after <request-type>? or manage/hyper?, is not preceded by & (see login=<user_name> above); all subsequent parameters are preceded by &, e.g., &pass=<md5_hash_password>.

For data retrieval, you can provide multiple values for parameters in a comma-separated list, e.g., you can ask for data on several metrics by specifying &metric=avail,count. Likewise, you can group data by multiple dimensions and provide multiple values for each dimension, for example:

&group=country,city&country=us,fra&city=<uscity1>,<uscity2><fracity1><fracity2>

When constructing API calls in your browser, you’ll find the results much easier to view with a JSON browser plugin.  For example, try this Google query: https://www.google.com/search?q=json+plugin

Authentication

We currently support basic authentication using MD5 hash. You need Synthetic Classic login credentials.  You may use any MD5 generator. See https://www.google.com/search?q=generate%20md5%20hash for available online MD5 hash generators. This information is required to run every call.

Test Management

The Availability Test API uses various HTTP verbs to manage Availability tests:

  • HTTP POST with a payload to
    https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper
    to create Availability tests.
  • HTTP PUT with a payload to
    https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper
    to update Availability tests.
  • HTTP PUT with parameters to
    https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper/active
    or https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper/inactive
    to update Availability tests.
  • HTTP GET with parameters to
    https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper
    to retrieve Availability test details.
  • HTTP DELETE with parameters to
    https://ultraapi-prod.dynatrace.com/v3.3/manage/hyper
    to delete Availability tests.

POST or PUT

Request

Creating or updating Availability tests requires a payload (a JSON packet with the Availability test details to create or update an Availability test).

Method

  • POST for create, PUT for update.

Request headers

  • Content-type: application/json

Body format

The request body is a JSON object and composed of:

  • meta – This object lists all meta information about the request. The mandatory field is:
    • source – Set to apiuser.
  • hypertype – Type of Availability test. Set to http.
  • monitors – Set to an array [Object {url, mname } ].
  • settings – This object lists the parameters for the resource being called:
    • freq (frequency) – Number. The unit is seconds.
    • agtid (site id list) – Array [site ids].
    • script

Most of the settings section is optional. System-level default settings are provided automatically for any missing property. For mass operation, the settings section will be common for all tests/monitors passed.

Sample requests

<POST>https://ultraapi-day.dynatracelabs.com/v3.3/manage/hyper?login=username&pass=md5hashofpassword

<PUT>https://ultraapi-day.dynatracelabs.com/v3.3/manage/hyper?login=username&pass=md5hashofpassword

Sample request body

Response

Headers

  • Content-type: application/json

Response code

  • 200 – Success
  • 400 – Bad format. Missing mandatory fields or invalid data type; or property value validation failed.

Response body

  • meta – Object. Returns meta information about the call.
  • monitors – Array [Object{monid, url, mname}], generated monitor ID, requested URL, requested/generated monitor name.
  • hypertype – String. Type of Availability test requested.
  • settings – Object. Returns final settings used in this call. This will include system default settings if request payload skipped any setting properties.
    • freq (frequency) – Number. Unit is seconds.
    • agtid (site id list) – Array [site ids].
    • script

Sample response body

READ

Request

Method

  • GET

Request headers

  • Content-type: application/json

Request parameters

  • monid – A comma-delimited list of monitor IDs.

Sample request

<GET>https://ultraapi-day.dynatracelabs.com/v3.3/manage/hyper?monid= 15154545,232123& login=username&pass=md5hashofpassword

Response

Headers

  • Content-type: application/json

Response code

  • 200 – Success.
  • 400 – Bad format. Missing mandatory fields or invalid data type.

Response body

  • meta – Object. Returns meta information about the call.
  • monitors – Object. Returns array of monitors requested.

Sample response body

DELETE

Request

Method

  • DELETE

Request headers

  • Content-type: application/json

Request parameters

  • monid – Number. The monitor id(s) being deleted.

Sample request

<DELETE> https://ultraapi-day.dynatracelabs.com/v3.3/manage/hyper?monid=123,4532,5623&login=username&pass=md5hashofpassword

Response

Headers

  • Content-type: application/json

Response code

  • 200 – Success
  • 400 – Bad Format. Missing mandatory fields or invalid data type.

Response body

  • meta – Object. Returns meta information about the call.
  • monitors – Object. Returns successfully updated monitors.

Sample response body

ACTIVATE

Request

Method

PUT

Request headers

  • Content-type: application/json

Request parameter

  • monid – Number. The monitor id(s) being activated.

Sample request

<PUT> https://ultraapi-day.dynatracelabs.com/v3.3/manage/hyper/activate?monid=123,4532,5623&login=username&pass=md5hashofpassword

Response

Headers

  • Content-type: application/json

Response code

  • 200 – Success
  • 400 – Bad Format. Missing mandatory fields or invalid data type.

Response body

  • meta – Object. Returns meta information about the call.
  • monitors – Object. Returns successfully updated monitors.

Sample response body

INACTIVATE

Request

Method

PUT

Request headers

  • Content-type: application/json

Request parameter

  • monid – Number. The monitor id(s) being inactivated.

Sample request

<PUT> https://ultraapi-day.dynatracelabs.com/v3.3/manage/hyper/inactivate?monid=123,4532,5623&login=username&pass=md5hashofpassword

Response

Headers

  • Content-type: application/json

Response code

  • 200 – Success
  • 400 – Bad Format. Missing mandatory fields or invalid data type.

Response body

  • meta – Object. Returns meta information about the call.
  • monitors – Object. Returns successfully updated monitors.

Sample response body

Retrieving data

Request types

The Availability Test API uses a few request types to handle all data requests.

See API methods below for more details.

info

Get information such as slot details, supported metrics, and dimensions for grouping and filtering data.

trend

Get data by time bucket—corresponds to a typical time graph or data point graph where data is aggregated by time buckets for display.

table

Get data grouped by any dimension such as country or device type to generate dashboards or graph types where tabular data is needed.

har

Download the HAR data for the waterfall graphs of all pages in a data point.

raw

Get data for each individual data point (no aggregation).

Responses

The API supports two formats for response content: CSV and JSON.

  • If not specified, JSON is the default response format. JSON responses return two objects:

    • meta – The header with the list of API call parameters that have been used to compute the data returned
    • data – The list of results
  • Use the parameter &format=csv for CSV data. The resulting result.csv file is downloaded automatically.

This response format does not apply to the har call, which returns HAR data.

The API no longer has fixed limits on the amount of data returned in responses. A cost calculator algorithm returns a number of data points that is subject instead to a maximum based on the number of monitors queried; their frequency; and the number of sites, pages, and objects.

We maintain 45 days of raw data.

Data bucketing

Data bucketing (for the trend API call) enables users to specify the unit of time by which data should be aggregated. However, we recommend that users take advantage of our automatic data bucketing feature, which selects an appropriate bucket based on the duration for which you request data.

The bucket parameter of the trend call takes the following values. The limit of data that can be queried for each time bucket is listed for each value. All data returned, regardless of bucket, is subject to a maximum of 100,000 rows (records) per API call.

  • second – Data is aggregated by the second from the top of the second. You can query up to 500,000 records.
  • minute – Data is aggregated by the minute from the top of the minute. You can query up to 500,000 records.
  • hour – Data is aggregated hourly from the top of the hour. You can query up to 1 million records.
  • day – Data is aggregated daily from the top of the day. There is no limit on the number of records queried.
  • month – Data is aggregated monthly from the top of the month. There is no limit on the number of records queried.
  • year – Data is aggregated yearly. There is no limit on the number of records queried.

Custom bucketing

The bucketsize parameter, used in conjunction with bucket, allows you to change the aggregation interval. When specifying bucketing by the second, minute, hour, or day, you can change the bucket size even further by using bucketsize. For example:

bucket=minute&bucketsize=5 5-minute bucket
bucket=minute&bucketsize=15 15-minute bucket
bucket=hour&bucketsize=4 4-hour bucket
bucket=day&bucketsize=7 7-day bucket

For a given start and end time, using bucketsize returns fewer data points in results than if only using bucket.

Rate limits

In order to manage our system capacity, we limit the maximum number of queries each company can make over a period of time. 3600 API requests per hour may be made per company ID. This is shared among all logins associated with that company ID.

We reserve the right to adjust this limit periodically for our free API and to maintain a high level of service for all customers. If you exceed your request limit per hour, the API will return a LIMITEXCEEDED error in the response. If we find that our systems are having performance issues, we may reduce the limits on the API without notice. If this happens we will make best efforts to restore service before adjusting the rate limits.

API methods

info

Description

This call allows you to get a list of information such as metrics available for a service, dimensions available for grouping and filtering data, monitor information such as monitor IDs and names, site information, etc.

Syntax

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/info?list=<value>
&login=<user_login>&pass=<md5_hash_password>

Parameters

Name Description Required?
login Login ID <user_login> of the user Yes
pass MD5 password <md5_hash_password> of API user Yes
list The following values for list are currently supported:
  • metrics – Metrics for the service requested.
  • topmetrics – The top 20 most frequently requested metrics.
  • dimensions – Dimensions for the service requested.
  • errors – List of all possible errors affecting availability.
Yes
format Format for downloading data—defaults to JSON. Use &format=csv for CSV files. No

Example call

This call queries information about the metrics, e.g., time to first paint, for which data is captured.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/info?list=metrics
&login=<user_login>&pass=<md5_hash_password>

Example response

The output contains the supportedcomputation parameter showing which calculations a metric supports.

This is a response snippet listing a single metric for synthetic measurements with mask, name, and description information; the standard response includes the list of all supported metrics.

trend

This call provides you data by time bucket. This is your typical time graph or data point graph where data is aggregated by a time bucket for display. For example, if you view 2 days’ worth of data in a performance trend graph, performance is shown with a bucket size, e.g., every hour; performance is aggregated based on data points in a given hour.

You can choose the bucketing unit with the bucket parameter, and additionally, customize the size with bucketsize.

Syntax

The two general formats of the trend call use start and end times (in Epoch time) and relative time (in milliseconds) respectively.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/trend?login=<user_login>
&pass=<md5_hash_password>&tstart=<start_time_epoch_ms>&tend=<end_time_epoch_ms>
&metrics=<metrics>&monid=<slot_id>&group=<dimension>
&<dimensionname>=<dimension_value>&bucket=<time_unit>&bucketsize=<x>

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/trend?login=<user_login>
&pass=<md5_hash_password>&rltime=<milliseconds>&metrics=<metrics>
&monid=<slot_id>&group=<dimension>&<dimensionname>=<dimension_value>
&bucket=<time_unit>&bucketsize=<x>

Parameters

Name Description Required?
login Login ID of the user Yes
pass MD5 password of API user Yes
metrics Metrics(s) you would like performance data on for this call. Use a comma-separated list to request data for multiple metrics. You can even request the minimum, maximum, average, median, summary, standard deviation, or various percentile values for supported metrics. See Calculations in Availability Test API metrics definitions for all supported calculations and the syntax for requesting them. If you run the info call with the parameter list=metrics, you can check the available metrics and supported calculations. Yes
rltime Relative time, or time period ending with the current time for which you would like data, in milliseconds. Use instead of tstart and tend. Yes (if not using tstart and tend)
tstart The start time in milliseconds in Epoch time—returns data greater than or equal this date. Must be used with tend. You can use rltime instead of tstart and tend. Yes (if not using rltime)
tend The end time in milliseconds in Epoch time—returns data strictly lower than this date. Must be used with tstart. Must be used with tstart. You can use rltime instead of tstart and tend. Yes (if not using rltime)
monid monitor ID(s) for which you want data Specify multiple monitor IDs in a comma-separated list. If calling data for multiple monitor, we recommend that you group data by monitor ID (&group=monid) so that output is organized by monitor ID. Yes
bucket The time unit by which to aggregate data (see Data bucketing): We recommend that users not specify a value as this is automatically selected based on your time interval (tendtstart, or rltime). Possible values are:
  • second – Data aggregated by the second—you can receive resource-level data with this bucketing option.
  • minute – Data aggregated by the minute—you can receive resource-level data with this bucketing option.
  • hour – Hourly aggregated data
  • day  – Daily aggregated data
  • month – Monthly aggregated data
  • year – Yearly aggregated data
No
bucketsize Requires bucket. Provide the number of units of your chosen bucket you want for a customized bucket size. For example, if you choosing bucketing by the minute, enter the number of minutes that you want for each bucket, e.g., 5. No
group Dimensions by which to group or filter your data (<dimension> in the example above). You can specify multiple dimensions, e.g., group=continent,country. If you ask to group data but do not specify <dimensionname>=<dimension_value>, data for all possible values of the dimension is returned. group=monid is recommended if multiple Dynatrace measurements are called. No
<dimensionname> Use the name of a dimension and specify dimension values <dimension_value> you want applied to filter data, e.g., country=us,fr,de&type=smartphone requests data for smartphones for the countries United States, France, and Germany. If you run the info call with the parameter list=dimensions, you can check the available dimensions for a particular service. No
header Use header=0 to disable description of metrics returned. No
sort Sort any metric in ascending order using the ‘+’ sign (i.e., sort=+pageviews) or descending order with the ‘-‘ sign (i.e., sort=-pageviews). No
limit Allows you to limit the number of records returned, e.g., limit=10. No
skip Skip a certain number of records for pagination, e.g., use skip=100&limit=100 to access records 101 to 200 on page 2. No
format Format for downloading data—defaults to JSON. Use &format=csv for CSV files. No

Example call

This call requests the response time and count metrics for a single slot ID with bucketing of an hour.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/trend?
login=<user_login>&pass=<md5_hash_password>&tstart=1444068249750&tend=1444413849750
&metrics=respt,count&monid=2023883&bucket=hour"

Example response

table

This call allows you to group data by any dimension such as country, URL, or device type. This is useful for any other graphs where tabular data is needed.

Syntax

The two general formats of the table call use start and end times (in Epoch time) and relative time (in milliseconds) respectively.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/table?login=<user_login>
&pass=<md5_hash_password>&tstart=<start_time_epoch_ms>&tend=<end_time_epoch_ms>
&metrics=<metrics>&monid=<slot_id>&group=<dimension>&<dimensionname>
=<dimension_value>

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/table?login=<user_login>
&pass=<md5_hash_password>&rltime=<milliseconds>&metrics=<metrics>&monid=<slot_id>
&group=<dimension>&<dimensionname>=<dimension_value>

Parameters

Name Description Required?
login Login ID of the user Yes
pass MD5 password of API user Yes
metrics Metrics you would like performance data on for this call. Use a comma-separated list to request data for multiple metrics. You can even request the minimum, maximum, average, median, summary, standard deviation, or various percentile values for supported metrics. See Calculations in Availability Test API metrics definitions for all supported calculations and the syntax for requesting them. If you run the info call with the parameter list=metrics, you can check the available metrics and calculations. Yes
rltime Relative time, or time period ending with the current time for which you would like data, in milliseconds Use instead of tstart and tend. Yes (if not using tstart and tend)
tstart The start time in milliseconds in Epoch time. It returns data greater than or equal this date. Must be used with tend. You can use rltime instead of tstart and tend. Yes (if not using rltime)
tend The end time in milliseconds in Epoch time. It returns data strictly lower than this date. Must be used with tstart. Must be used with tstart. You can use rltime instead of tstart and tend. Yes (if not using rltime)
monid Slot ID(s) for which you want data. Specify multiple slot IDs in a comma-separated list. If calling data for multiple monitors, we recommend that you group data by monitor ID (&group=monid) so that output is organized by monitor ID. Yes
group Dimensions by which to group or filter your data (<dimension> in the example above)—you can specify multiple dimensions, e.g., group=continent,country. If you ask to group data but do not specify <dimensionname>=<dimension_value>, data for all possible values of the dimension is returned. group=monid is recommended if multiple Dynatrace measurements are called. No
<dimensionname> Use the name of a dimension and specify dimension values <dimension_value> you want applied to filter data, e.g., country=us,fr,de&type=smartphone requests data for smartphones for the countries United States, France, and Germany. If you run the info call with the parameter list=dimensions, you can check the available dimensions for a particular service. No
header Use header=0 to disable description of metrics returned. No
sort Sort any metric in ascending order using the plus sign + (i.e., sort=+pageviews) or descending order with the minus sign - (i.e., sort=-pageviews). No
limit Allows you to limit the number of records returned, e.g., limit=10. No
skip Skip a certain number of records for pagination, e.g., use skip=100&limit=100 to access records 101 to 200 on page 2. No
format Format for downloading data—defaults to JSON. Use &format=csv for CSV files. No

Example call

This call requests the response time and count metrics for a single slot ID, grouped by city.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/table?login=<user_login>
&pass=<md5_hash_password>&rltime=345600000&metrics=respt,count&monid=2023885
&group=city

Example response

Output includes the automatic bucketing interval applied for the time range requested.

raw

This call allows you to get raw data with no aggregation. Each record represents a test execution.

Syntax

The two general formats of the raw call use start and end times (in Epoch time) and relative time (in milliseconds) respectively.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/raw?login=<user_login>
&pass=<md5_hash_password>&tstart=<start_time_epoch_ms>&tend=<end_time_epoch_ms>
&metrics=<metrics>&monid=<slot_id>&group=<dimension>&<dimensionname>
=<dimension_value>

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/raw?login=<user_login>
&pass=<md5_hash_password>&rltime=<milliseconds>&metrics=<metrics>&monid=<slot_id>
&group=<dimension>&<dimensionname>=<dimension_value>

parameters

Name Description Required?
login Login ID of the user Yes
pass MD5 password of the API user Yes
metrics Metrics you would like performance data on for this call. Use a comma-separated list to request data for multiple metrics. You can even request the minimum, maximum, average, median, summary, standard deviation, or various percentile values for supported metrics. See Calculations in Availability Test API metrics definitions for all supported calculations and the syntax for requesting them. If you run the info call with the parameter list=metrics, you can check the available metrics and calculations. Yes
rltime Relative time, or time period ending with the current time for which you would like data, in milliseconds. Use instead of tstart and tend. Yes (if not using tstart and tend)
tstart The start time in milliseconds in Epoch time. It returns data greater than or equal this date. Must be used with tend. You can use rltime instead of tstart and tend. Yes (if not using rltime)
tend The end time in milliseconds in Epoch time. It returns data strictly lower than this date. Must be used with tstart. You can use rltime instead of tstart and tend. Yes (if not using rltime)
monid Slot ID(s) for which you want data. Specify multiple slot IDs in a comma-separated list. If calling data for multiple monitors, we recommend that you group data by monitor ID (&group=monid) so that output is organized by monitor ID. Yes
group Dimensions by which to group or filter your data (<dimension> in the syntax above). You can specify multiple dimensions, e.g., group=continent,country. If you ask to group data but do not specify <dimensionname>=<dimension_value>, data for all possible values of the dimension is returned. We recommend using group=monid if multiple Dynatrace measurements are called. No
<dimensionname Use the name of a dimension and specify dimension values <dimension_value> you want to apply to filter data; e.g., country=us,fr,de&type=smartphone requests data for smartphones for the countries United States, France, and Germany. If you run the info call with the parameter list=dimensions, you can check the available dimensions for a particular service. No
header Use header=0 to disable description of metrics returned. No
sort Sort any metric in ascending order using the plus sign + (i.e., sort=+pageviews) or descending order with the minus sign - (i.e., sort=-pageviews). No
limit Allows you to limit the number of records returned, e.g., limit=10. No
skip Skip a certain number of records for pagination, e.g., use skip=100&limit=100 to access records 101 to 200 on page 2. No
format Format for downloading data—defaults to JSON. Use &format=csv for CSV files. No

Example call

This call requests the response time and count metrics for a single monitor, by city.

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/raw?login=<user_login>
&pass=<md5_hash_password>&rltime=345600000&metrics=respt,count&monid=2023885
&group=city

Example response

har

This call returns the HAR data for waterfalls of all pages in a data point. You can copy and paste the data into a .har file or an online HAR viewer.

Syntax

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/har?login=<user_login>
&pass=<md5_hash_password>&monid=<slot_id>&agtid=<agent_id>&tgtid=<trans_id>
&mtime=<timestamp_epoch_ms>

Parameters

Name Description Required?
login Login ID of the user Yes
pass MD5 password of API user Yes
monid monitor ID of measurement for which you want data Yes
agtid Agent ID of the data point for which you are requesting HAR data Yes
tgtid monitor ID of measurement for which you want data Yes
mtime The timestamp in milliseconds in Epoch time Yes

Example call

https://ultraapi-prod.dynatrace.com/v3.3/synthetic/har?login=<user_login>
&pass=<md5_hash_password>&monid=2204070&agtid=42432&tgtid=3111675
&mtime=1478153729000

Example output

This sample output shows the beginning of HAR data displayed in the browser.

Error codes

The API returns the HTTP status code 200.

Any errors have messages showing a value and description:

Name Description Value
NOTCONNECTED Not connected to database 1
AGGREGATEERROR Issue during Mongo Aggregate Call 2
TRENDERROR Issue during Trend API call 3
TABLEERROR Issue during Table API call 4
INFOERROR Issue during Info API call 5
BADLIST Specify a correct list in the request 6
CREDENTIALERROR No data found for this user 7
TIMEERROR Update query with smaller range or change bucket type 8
ACTIVEERROR Issue during Active API call 9
CUSTOMPATHERROR Issue during API call 10
UNKOWNERROR Unknown issue during API Call 11
LIMITEXCEEDED Too many API calls 12
POST Not a valid POST request 13
NODATA No data found for this call 14
IRL Issue during account db routing retrieval 15
TIMEOUT The request timed out. Reduce API query or try again later 16

For example, if you log in with faulty credentials, the API call returns "No data found for this user" (CREDENTIALERROR, error value 7):

{ "error" : "No result",
  "reason" : { "code" : 7,
      "description" : "No data found for this user",
      "name" : "CREDENTIALERROR"
    }
}

If the service is unavailable, HTTP status code 503 is returned.