Dynatrace Synthetic API reference version 3.2

Overview

Dynatrace's new version of the REST API allows you direct access to results data and measurement meta-data (such as sites used and URLs measured) for your Dynatrace synthetic measurements in real time.

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

Main features

The new version of the REST API supports:

  • 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.

You can control the level of monitoring based on how you group data. For example, if you request user experience time (uxtme) and group by page, page-level data is returned.

Supported products

You must be a Dynatrace customer to use the API methods. The following monitoring products are currently supported by the Version 3.2 API:

  • Backbone
  • Last Mile
  • Private Last Mile
  • Mobile

How to issue requests

The new version of the API uses a REST architecture—you issue API commands as HTTP GET requests. You may do this machine-to-machine or interactively by constructing the URL in a browser.

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

https://ultraapi-prod.dynatrace.com/v3.2/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.2/synthetic
  • The API method invoked, /<request-type>?, e.g., `/info?
  • 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>?, is not preceded by & (login=<user_name> above); all subsequent parameters are preceded by &, e.g., &pass=<md5_hash_password>.

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=uxtme,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 Dynatrace 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.

Request types

The new version of the API uses a few request types to handle all data requests.

See API Methods version 3.2 below for more details.

info

Get information such as slot details, details about the agent infrastructure, 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 new version of 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.2/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.
  • monitors - Details on monitors providing monitor ID, name slots – More details on monitors associated with a user account, including monitorId ID, monitor type, name, browser, page names, and URLs.
  • agents – List of all Dynatrace Synthetic sites.
  • 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.2/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.

{
	meta: {
		list: "metrics",
		dbtime: 33,
		apiversion: "3.0.8.201610261647.138720-336"
	},  "data": [
    {
      "mask": "css_3_o_c",
      "name": "3rd Party CSS Count",
      "desc": "Total number of 3rd Party CSS Files",
      "unit": "number",
      "actiontype": "legacy",
      "supportedproduct": [
        "backbone",
        "lastmile",
        "privatelastmile",
        "mobile"
      ],
      "supportedlevel": [
        "script",
        "page"
      ],
      "supportedcomputation": {
        "raw": [
          "min",
          "max",
          "avg",
          "sum",
          "stdev",
          "percentile",
          "median"
        ],
        "aggregated": [
          "avg",
          "sum"
        ]
      }
    },

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.

Example call

This call queries information about the monitor (measurements) associated with an account.

https://ultraapi-prod.dynatrace.com/v3.2/synthetic/info?list=monitors
&login=<user_login>&pass=<md5_hash_password>
Example response

The return data includes information about measurement creation, expiration, and last update (in ISO format). Measurement frequency is reported in seconds.

{
	meta: {
		list: "slots",
		dbtime: 257,
		apiversion: "3.0.8.201610261647.138720-336"
	},
	data: [
		    {
      "type": "slot",
      "ttl": 3888000,
      "pages": {
        "1": {
          "uiName": "Digital Performance Management and Application Performance Monitoring | Dynatrace",
          "name": "Digital Performance Management and Application Performance Monitoring | Dynatrace"
        }
      },
      "monid": 28191133,
      "mname": "www.dynatrace.com - 08-Sep-2016 01:01:22 - 1 - FF Agent",
      "uiname": "www.dynatrace.com - 08-Sep-2016 01:01:22 - 1 - FF Agent",
      "bname": "Firefox",
      "dtype": "desktop",
      "accountid": 14594,
      "mtype": "backbone",
      "mcreated": "2016-09-08T17:01:35.666Z",
      "mupdated": "2016-09-12T14:12:42.626Z",
      "mfrequency": 900,
      "magentcount": 4,
      "mscripttimestamp": "2016-09-12T14:12:42.596Z"
    },

This is a response snippet listing one single-page measurement; the full response lists all measurements associated with the account making the API call.

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 below use start and end times (in Epoch time) and relative time (in milliseconds) respectively.

https://ultraapi-prod.dynatrace.com/v3.2/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.2/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 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; to see the countries and cities in which you have measurements running, use list=agents. No
header header=0 disables 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 user experience time and count metrics for a single slot ID with bucketing of an hour.

https://ultraapi-prod.dynatrace.com/v3.2/synthetic/trend?
login=<user_login>&pass=<md5_hash_password>&tstart=1444068249750&tend=1444413849750
&metrics=uxtme,count&monid=2023883&bucket=hour"
Example response
{
    "meta": {
        "bucket": "hour",
        "monid": "2023885",
        "company": "xxxxxx",
        "tstart": 1444068249750,
        "tend": 1444413849750,
        "mask": "uxtme,count",
        "metrics": {
            "uxtme": {
                "desc": "Full User Experience time as reported by the browser",
                "unit": "ms",
                "name": "User Experience"
            },
            "count": {
                "desc": "Number of total hits or datapoints",
                "unit": "number",
                "name": "Total number of hits"
            }
        },
        "limit": 10000,
        "dbtime": 14,
        "apiversion": "3.0.11"
    },
    "data": [
        {
            "mtime": 1444100400000,
            "uxtme": 4210,
            "count": 1
        },
        {
            "mtime": 1444104000000,
            "uxtme": 6308.333333333333,
            "count": 3
        },
        {
            "mtime": 1444107600000,
            "uxtme": 20701.4,
            "count": 5
        },
        {
            "mtime": 1444136400000,
            "uxtme": 4754.333333333333,
            "count": 3
        },
        {
            "mtime": 1444154400000,
            "uxtme": 5908.9,
            "count": 10
        },
        {
            "mtime": 1444158000000,
            "uxtme": 9968.736842105263,
            "count": 19
        },
        {
            "mtime": 1444165200000,
            "uxtme": 5950.88,
            "count": 25
        },
        {
            "mtime": 1444183200000,
            "uxtme": 13313,
            "count": 9
        },
        {
            "mtime": 1444186800000,
            "uxtme": 12059.083333333334,
            "count": 12
        },
        {
            "mtime": 1444190400000,
            "uxtme": 9162.8,
            "count": 25
        },
        {
            "mtime": 1444194000000,
            "uxtme": 8570.882352941177,
            "count": 34
        },
        {
            "mtime": 1444258800000,
            "uxtme": 4949,
            "count": 3
        }
    ]
}

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 below use start and end times (in Epoch time) and relative time (in milliseconds) respectively.

https://ultraapi-prod.dynatrace.com/v3.2/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.2/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. SeeCalculations in 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 header=0 disables 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 user experience time and count metrics for a single slot ID, grouped by city.

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

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

{
    "meta": {
        "bucket": "hour",
        "group": {
            "city": {
                "desc": "City where the agent is located",
                "type": "string",
                "name": "City"
            }
        },
        "monid": "2023885",
        "company": "xxxxxx",
        "tstart": 1444064400000,
        "tend": 1444410000000,
        "metrics": {
            "uxtme": {
                "desc": "Full User Experience time as reported by the browser",
                "unit": "ms",
                "name": "User Experience"
            },
            "count": {
                "desc": "Number of total hits or datapoints",
                "unit": "number",
                "name": "Total number of hits"
            }
        },
        "limit": 10000,
        "dbtime": 11,
        "apiversion": "3.0.11"
    },
    "data": [
        {
            "city": "paris",
            "uxtme": 5181.777777777777,
            "count": 18
        },
        {
            "city": "san francisco",
            "uxtme": 3816.1923076923076,
            "count": 26
        },
        {
            "city": "taipei",
            "uxtme": 7661.851851851852,
            "count": 27
        },
        {
            "city": "tokyo",
            "uxtme": 6309.88,
            "count": 25
        },
        {
            "city": "boston",
            "uxtme": 4519.7037037037035,
            "count": 27
        },
        {
            "city": "seoul",
            "uxtme": 7019.96,
            "count": 25
        },
        {
            "city": "philadelphia",
            "uxtme": 4042.0833333333335,
            "count": 24
        },
        {
            "city": "hong kong",
            "uxtme": 7510.5,
            "count": 24
        },
        {
            "city": "madrid",
            "uxtme": 6792.208333333333,
            "count": 24
        },
        {
            "city": "chennai",
            "uxtme": 10641.384615384615,
            "count": 26
        },
        {
            "city": "amsterdam",
            "uxtme": 5791.619047619048,
            "count": 21
        },
        {
            "city": "los angeles",
            "uxtme": 3855.9615384615386,
            "count": 26
        },
        {
            "city": "singapore",
            "uxtme": 10047.2,
            "count": 21
        },
        {
            "city": "sydney",
            "uxtme": 15861.148148148148,
            "count": 27
        },
        {
            "city": "berlin",
            "uxtme": 6083.909090909091,
            "count": 22
        },
        {
            "city": "stockholm",
            "uxtme": 6349.260869565217,
            "count": 23
        },
        {
            "city": "detroit",
            "uxtme": 4136.375,
            "count": 24
        }
    ]
}

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.2/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 If you run the info call with the parameter list=agents, you can check the available agents and their locations and IDs. 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.2/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.

{
	log: {
		browser: {
			comment: "",
			version: "",
			name: "chrome"
		},
		creator: {
			comment: "",
			version: "13.0",
			name: "txp"
		},
		\_sdim: {
			model: "windows",
			state: "il",
			edesc: "Transaction Timed Out",
			aid: 42432,
			aname: "chicago centurylink txp",
			city: "chicago",
			esubgroup: "exec",
			name: "step test web-recorder txp script prod val 2",
			ie: -99000,
			tid: 3111675,
			btd: 626076929,
			idesc: "Transaction Timed Out",
			sid: 2204070,
			nbpages: 2,
			so: "P",
			ins: 115015,
			agreement: 158188,
			avail: 1,
			cid: 88805,
			egroup: "tout",
			country: "us",
			tts: "2016-11-03T06:15:29.000Z",
			ee: -99000,
			device: "desktop",
			continent: "north america",
			success: 0,
			cname: "dynatrace production"
		},

scoe

This call returns the reference or error screenshot (screen capture on error) for a page in a measurement. By default, the scoe call returns the error screenshot. The addition of the optional ref parameter returns the reference screenshot.

Syntax

The code examples below show the syntax for requesting an error and reference screenshot, respectively.

https://ultraapi-prod.dynatrace.com/v3.2/synthetic/scoe?login=<user_login>
&pass=<md5_hash_password>&monid=<slot_id>&agtid=<agent_id>&tgtid=<trans_id>
&pgeid=<page_number>&mtype=<service_type>&mtime=<timestamp_epoch_ms>

https://ultraapi-prod.dynatrace.com/v3.2/synthetic/scoe?login=<user_login>
&pass=<md5_hash_password>&monid=<slot_id>&agtid=<agent_id>&tgtid=<trans_id>
&pgeid=<page_number>&mtype=<service_type>&mtime=<timestamp_epoch_ms>&ref=1
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 If you run the info call with the parameter list=agents, you can check the available agents and their locations and IDs. Yes
tgtid monitor ID of measurement for which you want data Yes
pgeid Page ID of the page with the screenshot—enter a numerical value. Yes
mtype Service type, i.e., txp, app, or mwp. Yes
mtime The timestamp in milliseconds in Epoch time Yes
ref Provide a value of 1 to request the reference screenshot. No
Example call

This call requests the error screenshot for a page in a specific data point as defined by its monitor ID, agent ID, target ID, and timestamp.

https://ultraapi-prod.dynatrace.com/v3.2/synthetic/scoe?login=<user_login>
&pass=<md5_hash_password>&monid=2204070&agtid=42432&tgtid=3111675
&pgeid=1&mtype=txp&mtime=1478153729000
Example response

The output is an image displayed in your browser window.

Error codes

The Dynatrace API returns the HTTP status codes 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.