Synthetics
Security Monitoring is now available Security Monitoring is now available

Synthetics

Datadog Synthetics uses simulated user requests and browser rendering to help you ensure uptime, identify regional issues, and track your application performance. Datadog Synthetics tests come in two different flavors, API tests and browser tests. You can use Datadog’s API to manage both test types programmatically.

For more information about Synthetics, see the Synthetics overview.

Create a test

post https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests

Overview

Create a Synthetic test.

Arguments

Query Strings

Name

Type

Description

from_test_id

string

Public ID of the test to clone, undefined if the test is newly created.

Request

Body Data (required)

Details of the test to create.

Expand All

Field

Type

Description

config

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

created_at

string

The test creation date.

created_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

locations

[string]

Array of locations used to run the test.

message

string

Notification message associated with the test.

modified_at

string

Last timestamp the test was modified.

modified_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

monitor_id

int64

The associated monitor ID.

name

string

Name of the test.

options

object

Object describing the extra options for a Synthetic test.

accept_self_signed

boolean

For browser test, whether or not the test should allow self signed certificate.

allow_insecure

boolean

Allows loading insecure content for an HTTP request.

device_ids

[string]

Array with the different device IDs used to run the test.

follow_redirects

boolean

For API SSL test, whether or not the test should follow redirects.

min_failure_duration

int64

Minimum amount of time before declaring the test has failed.

min_location_failed

int64

Minimum amount of locations that are allowed to fail for the test.

retry

object

Object describing the retry strategy to apply to a Synthetic test.

count

int64

The amount of location that needs to fail for the test to be retried.

interval

double

The interval over which the amount of location needed to fail for the test to be retried.

tick_every

enum

The frequency at which to run the Synthetic test. Allowed enum values: 60,300,900,1800,3600,21600,43200,86400,604800

public_id

string

The test public ID.

status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

subtype

enum

The sub-type of the Synthetic API test, either http or ssl. Allowed enum values: http,ssl

tags

[string]

Array of tags attached to the test.

type

enum

Type of the Synthetic test, either api or browser. Allowed enum values: api,browser

{
  "config": {
    "assertions": [
      {
        "operator": "string",
        "property": "string",
        "target": {},
        "type": "string"
      }
    ],
    "request": {
      "basicAuth": {
        "password": "string",
        "username": "string"
      },
      "body": "string",
      "headers": {
        "<any-key>": "string"
      },
      "host": "string",
      "method": "string",
      "port": "integer",
      "query": {},
      "timeout": "number",
      "url": "string"
    },
    "variables": [
      {
        "example": "string",
        "id": "string",
        "name": "string",
        "pattern": "string",
        "type": "string"
      }
    ]
  },
  "created_at": "string",
  "created_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "locations": [],
  "message": "string",
  "modified_at": "string",
  "modified_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "monitor_id": "integer",
  "name": "string",
  "options": {
    "accept_self_signed": false,
    "allow_insecure": false,
    "device_ids": [],
    "follow_redirects": false,
    "min_failure_duration": "integer",
    "min_location_failed": "integer",
    "retry": {
      "count": "integer",
      "interval": "number"
    },
    "tick_every": "integer"
  },
  "public_id": "string",
  "status": "string",
  "subtype": "string",
  "tags": [],
  "type": "string"
}

Response

OK - Returns the created test details.

Object containing details about your Synthetic test.

Expand All

Field

Type

Description

config

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

created_at

string

The test creation date.

created_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

locations

[string]

Array of locations used to run the test.

message

string

Notification message associated with the test.

modified_at

string

Last timestamp the test was modified.

modified_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

monitor_id

int64

The associated monitor ID.

name

string

Name of the test.

options

object

Object describing the extra options for a Synthetic test.

accept_self_signed

boolean

For browser test, whether or not the test should allow self signed certificate.

allow_insecure

boolean

Allows loading insecure content for an HTTP request.

device_ids

[string]

Array with the different device IDs used to run the test.

follow_redirects

boolean

For API SSL test, whether or not the test should follow redirects.

min_failure_duration

int64

Minimum amount of time before declaring the test has failed.

min_location_failed

int64

Minimum amount of locations that are allowed to fail for the test.

retry

object

Object describing the retry strategy to apply to a Synthetic test.

count

int64

The amount of location that needs to fail for the test to be retried.

interval

double

The interval over which the amount of location needed to fail for the test to be retried.

tick_every

enum

The frequency at which to run the Synthetic test. Allowed enum values: 60,300,900,1800,3600,21600,43200,86400,604800

public_id

string

The test public ID.

status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

subtype

enum

The sub-type of the Synthetic API test, either http or ssl. Allowed enum values: http,ssl

tags

[string]

Array of tags attached to the test.

type

enum

Type of the Synthetic test, either api or browser. Allowed enum values: api,browser

{
  "config": {
    "assertions": [
      {
        "operator": "string",
        "property": "string",
        "target": {},
        "type": "string"
      }
    ],
    "request": {
      "basicAuth": {
        "password": "string",
        "username": "string"
      },
      "body": "string",
      "headers": {
        "<any-key>": "string"
      },
      "host": "string",
      "method": "string",
      "port": "integer",
      "query": {},
      "timeout": "number",
      "url": "string"
    },
    "variables": [
      {
        "example": "string",
        "id": "string",
        "name": "string",
        "pattern": "string",
        "type": "string"
      }
    ]
  },
  "created_at": "string",
  "created_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "locations": [],
  "message": "string",
  "modified_at": "string",
  "modified_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "monitor_id": "integer",
  "name": "string",
  "options": {
    "accept_self_signed": false,
    "allow_insecure": false,
    "device_ids": [],
    "follow_redirects": false,
    "min_failure_duration": "integer",
    "min_location_failed": "integer",
    "retry": {
      "count": "integer",
      "interval": "number"
    },
    "tick_every": "integer"
  },
  "public_id": "string",
  "status": "string",
  "subtype": "string",
  "tags": [],
  "type": "string"
}

- JSON format is wrong - Creation failed

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Test quota is reached

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Curl command
curl -X post https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \
-d @- << EOF
{
  "config": {
    "assertions": [
      {
        "operator": null,
        "type": null
      }
    ],
    "request": {
      "basicAuth": {
        "password": null,
        "username": null
      }
    },
    "variables": [
      {
        "name": null,
        "type": null
      }
    ]
  }
}
EOF

                                        

Delete tests

post https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/delete

Overview

Delete multiple Synthetic tests by ID.

Request

Body Data (required)

Public ID list of the Synthetic tests to be deleted.

Expand All

Field

Type

Description

public_ids

[string]

An array of Synthetic test IDs you want to delete.

{
  "public_ids": []
}

Response

OK.

Response object for deleting Synthetic tests.

Expand All

Field

Type

Description

deleted_tests

[object]

Array of objects containing a deleted Synthetic test ID with the associated deletion timestamp.

deleted_at

date-time

Deletion timestamp of the Synthetic test ID.

public_id

string

The Synthetic test ID deleted.

{
  "deleted_tests": [
    {
      "deleted_at": "2019-09-19T10:00:00.000Z",
      "public_id": "string"
    }
  ]
}

- JSON format is wrong - Test cannot be deleted as it's used elsewhere (as a sub-test or in an uptime widget) - Some IDs are not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Tests to be deleted can't be found - Synthetics is not activated for the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Curl command
curl -X post https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/delete \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \
-d @- << EOF
{}
EOF

                                        
from datadog import initialize, api

options = {
    'api_key': '<DATADOG_API_KEY>',
    'app_key': '<DATADOG_APPLICATION_KEY>'
}

test_ids = ['<SYNTHETICS_TEST_PUBLIC_ID_1>','<SYNTHETICS_TEST_PUBLIC_ID_2>']

initialize(**options)

api.Synthetics.delete_test(id=test_ids)
require 'dogapi'

api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'

dog = Dogapi::Client.new(api_key, app_key)

test_ids = ['<SYNTHETICS_TEST_PUBLIC_ID_1>','<SYNTHETICS_TEST_PUBLIC_ID_2>']

dog.delete_synthetics_tests('test_ids' => test_ids)

Edit a test

put https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/{public_id}

Overview

Edit the configuration of a Synthetic test.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the test to get details from.

Request

Body Data (required)

New test details to be saved.

Expand All

Field

Type

Description

config

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

created_at

string

The test creation date.

created_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

locations

[string]

Array of locations used to run the test.

message

string

Notification message associated with the test.

modified_at

string

Last timestamp the test was modified.

modified_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

monitor_id

int64

The associated monitor ID.

name

string

Name of the test.

options

object

Object describing the extra options for a Synthetic test.

accept_self_signed

boolean

For browser test, whether or not the test should allow self signed certificate.

allow_insecure

boolean

Allows loading insecure content for an HTTP request.

device_ids

[string]

Array with the different device IDs used to run the test.

follow_redirects

boolean

For API SSL test, whether or not the test should follow redirects.

min_failure_duration

int64

Minimum amount of time before declaring the test has failed.

min_location_failed

int64

Minimum amount of locations that are allowed to fail for the test.

retry

object

Object describing the retry strategy to apply to a Synthetic test.

count

int64

The amount of location that needs to fail for the test to be retried.

interval

double

The interval over which the amount of location needed to fail for the test to be retried.

tick_every

enum

The frequency at which to run the Synthetic test. Allowed enum values: 60,300,900,1800,3600,21600,43200,86400,604800

public_id

string

The test public ID.

status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

subtype

enum

The sub-type of the Synthetic API test, either http or ssl. Allowed enum values: http,ssl

tags

[string]

Array of tags attached to the test.

type

enum

Type of the Synthetic test, either api or browser. Allowed enum values: api,browser

{
  "config": {
    "assertions": [
      {
        "operator": "string",
        "property": "string",
        "target": {},
        "type": "string"
      }
    ],
    "request": {
      "basicAuth": {
        "password": "string",
        "username": "string"
      },
      "body": "string",
      "headers": {
        "<any-key>": "string"
      },
      "host": "string",
      "method": "string",
      "port": "integer",
      "query": {},
      "timeout": "number",
      "url": "string"
    },
    "variables": [
      {
        "example": "string",
        "id": "string",
        "name": "string",
        "pattern": "string",
        "type": "string"
      }
    ]
  },
  "created_at": "string",
  "created_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "locations": [],
  "message": "string",
  "modified_at": "string",
  "modified_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "monitor_id": "integer",
  "name": "string",
  "options": {
    "accept_self_signed": false,
    "allow_insecure": false,
    "device_ids": [],
    "follow_redirects": false,
    "min_failure_duration": "integer",
    "min_location_failed": "integer",
    "retry": {
      "count": "integer",
      "interval": "number"
    },
    "tick_every": "integer"
  },
  "public_id": "string",
  "status": "string",
  "subtype": "string",
  "tags": [],
  "type": "string"
}

Response

OK

Object containing details about your Synthetic test.

Expand All

Field

Type

Description

config

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

created_at

string

The test creation date.

created_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

locations

[string]

Array of locations used to run the test.

message

string

Notification message associated with the test.

modified_at

string

Last timestamp the test was modified.

modified_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

monitor_id

int64

The associated monitor ID.

name

string

Name of the test.

options

object

Object describing the extra options for a Synthetic test.

accept_self_signed

boolean

For browser test, whether or not the test should allow self signed certificate.

allow_insecure

boolean

Allows loading insecure content for an HTTP request.

device_ids

[string]

Array with the different device IDs used to run the test.

follow_redirects

boolean

For API SSL test, whether or not the test should follow redirects.

min_failure_duration

int64

Minimum amount of time before declaring the test has failed.

min_location_failed

int64

Minimum amount of locations that are allowed to fail for the test.

retry

object

Object describing the retry strategy to apply to a Synthetic test.

count

int64

The amount of location that needs to fail for the test to be retried.

interval

double

The interval over which the amount of location needed to fail for the test to be retried.

tick_every

enum

The frequency at which to run the Synthetic test. Allowed enum values: 60,300,900,1800,3600,21600,43200,86400,604800

public_id

string

The test public ID.

status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

subtype

enum

The sub-type of the Synthetic API test, either http or ssl. Allowed enum values: http,ssl

tags

[string]

Array of tags attached to the test.

type

enum

Type of the Synthetic test, either api or browser. Allowed enum values: api,browser

{
  "config": {
    "assertions": [
      {
        "operator": "string",
        "property": "string",
        "target": {},
        "type": "string"
      }
    ],
    "request": {
      "basicAuth": {
        "password": "string",
        "username": "string"
      },
      "body": "string",
      "headers": {
        "<any-key>": "string"
      },
      "host": "string",
      "method": "string",
      "port": "integer",
      "query": {},
      "timeout": "number",
      "url": "string"
    },
    "variables": [
      {
        "example": "string",
        "id": "string",
        "name": "string",
        "pattern": "string",
        "type": "string"
      }
    ]
  },
  "created_at": "string",
  "created_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "locations": [],
  "message": "string",
  "modified_at": "string",
  "modified_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "monitor_id": "integer",
  "name": "string",
  "options": {
    "accept_self_signed": false,
    "allow_insecure": false,
    "device_ids": [],
    "follow_redirects": false,
    "min_failure_duration": "integer",
    "min_location_failed": "integer",
    "retry": {
      "count": "integer",
      "interval": "number"
    },
    "tick_every": "integer"
  },
  "public_id": "string",
  "status": "string",
  "subtype": "string",
  "tags": [],
  "type": "string"
}

- JSON format is wrong - Updating sub-type is forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test is not owned by the user - Test can't be found

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
# Curl command curl -X put https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/${public_id} \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \ -d @- << EOF { "config": { "assertions": [ { "operator": null, "type": null } ], "request": { "basicAuth": { "password": null, "username": null } }, "variables": [ { "name": null, "type": null } ] } } EOF

Get a list of tests

get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests

Overview

Get the list of all Synthetic tests (can be filtered by type).

Arguments

Query Strings

Name

Type

Description

check_type

string

API or browser to filter the list by test type, undefined to get the unfiltered list.

Response

OK - Returns the list of all Synthetic tests (properly filtered by type).

Object containing an array of Synthetic tests configuration.

Expand All

Field

Type

Description

tests

[object]

Array of Synthetic tests configuration.

config

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

created_at

string

The test creation date.

created_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

locations

[string]

Array of locations used to run the test.

message

string

Notification message associated with the test.

modified_at

string

Last timestamp the test was modified.

modified_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

monitor_id

int64

The associated monitor ID.

name

string

Name of the test.

options

object

Object describing the extra options for a Synthetic test.

accept_self_signed

boolean

For browser test, whether or not the test should allow self signed certificate.

allow_insecure

boolean

Allows loading insecure content for an HTTP request.

device_ids

[string]

Array with the different device IDs used to run the test.

follow_redirects

boolean

For API SSL test, whether or not the test should follow redirects.

min_failure_duration

int64

Minimum amount of time before declaring the test has failed.

min_location_failed

int64

Minimum amount of locations that are allowed to fail for the test.

retry

object

Object describing the retry strategy to apply to a Synthetic test.

count

int64

The amount of location that needs to fail for the test to be retried.

interval

double

The interval over which the amount of location needed to fail for the test to be retried.

tick_every

enum

The frequency at which to run the Synthetic test. Allowed enum values: 60,300,900,1800,3600,21600,43200,86400,604800

public_id

string

The test public ID.

status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

subtype

enum

The sub-type of the Synthetic API test, either http or ssl. Allowed enum values: http,ssl

tags

[string]

Array of tags attached to the test.

type

enum

Type of the Synthetic test, either api or browser. Allowed enum values: api,browser

{
  "tests": [
    {
      "config": {
        "assertions": [
          {
            "operator": "string",
            "property": "string",
            "target": {},
            "type": "string"
          }
        ],
        "request": {
          "basicAuth": {
            "password": "string",
            "username": "string"
          },
          "body": "string",
          "headers": {
            "<any-key>": "string"
          },
          "host": "string",
          "method": "string",
          "port": "integer",
          "query": {},
          "timeout": "number",
          "url": "string"
        },
        "variables": [
          {
            "example": "string",
            "id": "string",
            "name": "string",
            "pattern": "string",
            "type": "string"
          }
        ]
      },
      "created_at": "string",
      "created_by": {
        "email": "string",
        "handle": "string",
        "id": "integer",
        "name": "string"
      },
      "locations": [],
      "message": "string",
      "modified_at": "string",
      "modified_by": {
        "email": "string",
        "handle": "string",
        "id": "integer",
        "name": "string"
      },
      "monitor_id": "integer",
      "name": "string",
      "options": {
        "accept_self_signed": false,
        "allow_insecure": false,
        "device_ids": [],
        "follow_redirects": false,
        "min_failure_duration": "integer",
        "min_location_failed": "integer",
        "retry": {
          "count": "integer",
          "interval": "number"
        },
        "tick_every": "integer"
      },
      "public_id": "string",
      "status": "string",
      "subtype": "string",
      "tags": [],
      "type": "string"
    }
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Synthetics is not activated for the user.

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Curl command
curl -X get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}"

                                        
from datadog import initialize, api

options = {
    'api_key': '<DATADOG_API_KEY>',
    'app_key': '<DATADOG_APPLICATION_KEY>'
}

initialize(**options)

api.Synthetics.get_all_tests()
require 'dogapi'

api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'

dog = Dogapi::Client.new(api_key, app_key)

dog.get_all_synthetics_tests()

Get a test configuration

get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/{public_id}

Overview

Get the detailed configuration associated with a Synthetics test.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the test to get details from.

Response

OK

Object containing details about your Synthetic test.

Expand All

Field

Type

Description

config

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

created_at

string

The test creation date.

created_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

locations

[string]

Array of locations used to run the test.

message

string

Notification message associated with the test.

modified_at

string

Last timestamp the test was modified.

modified_by

object

Object describing the author or a Synthetic test.

email

string

Email of the author.

handle

string

Handle of the author.

id

int64

Unique ID of the author.

name

string

Name of the author.

monitor_id

int64

The associated monitor ID.

name

string

Name of the test.

options

object

Object describing the extra options for a Synthetic test.

accept_self_signed

boolean

For browser test, whether or not the test should allow self signed certificate.

allow_insecure

boolean

Allows loading insecure content for an HTTP request.

device_ids

[string]

Array with the different device IDs used to run the test.

follow_redirects

boolean

For API SSL test, whether or not the test should follow redirects.

min_failure_duration

int64

Minimum amount of time before declaring the test has failed.

min_location_failed

int64

Minimum amount of locations that are allowed to fail for the test.

retry

object

Object describing the retry strategy to apply to a Synthetic test.

count

int64

The amount of location that needs to fail for the test to be retried.

interval

double

The interval over which the amount of location needed to fail for the test to be retried.

tick_every

enum

The frequency at which to run the Synthetic test. Allowed enum values: 60,300,900,1800,3600,21600,43200,86400,604800

public_id

string

The test public ID.

status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

subtype

enum

The sub-type of the Synthetic API test, either http or ssl. Allowed enum values: http,ssl

tags

[string]

Array of tags attached to the test.

type

enum

Type of the Synthetic test, either api or browser. Allowed enum values: api,browser

{
  "config": {
    "assertions": [
      {
        "operator": "string",
        "property": "string",
        "target": {},
        "type": "string"
      }
    ],
    "request": {
      "basicAuth": {
        "password": "string",
        "username": "string"
      },
      "body": "string",
      "headers": {
        "<any-key>": "string"
      },
      "host": "string",
      "method": "string",
      "port": "integer",
      "query": {},
      "timeout": "number",
      "url": "string"
    },
    "variables": [
      {
        "example": "string",
        "id": "string",
        "name": "string",
        "pattern": "string",
        "type": "string"
      }
    ]
  },
  "created_at": "string",
  "created_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "locations": [],
  "message": "string",
  "modified_at": "string",
  "modified_by": {
    "email": "string",
    "handle": "string",
    "id": "integer",
    "name": "string"
  },
  "monitor_id": "integer",
  "name": "string",
  "options": {
    "accept_self_signed": false,
    "allow_insecure": false,
    "device_ids": [],
    "follow_redirects": false,
    "min_failure_duration": "integer",
    "min_location_failed": "integer",
    "retry": {
      "count": "integer",
      "interval": "number"
    },
    "tick_every": "integer"
  },
  "public_id": "string",
  "status": "string",
  "subtype": "string",
  "tags": [],
  "type": "string"
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test is not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
# Curl command curl -X get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/${public_id} \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}"
from datadog import initialize, api

options = {
    'api_key': '<DATADOG_API_KEY>',
    'app_key': '<DATADOG_APPLICATION_KEY>'
}

test_id = '<SYNTHETICS_TEST_PUBLIC_ID>'

initialize(**options)

api.Synthetics.get_test(id=test_id)
require 'dogapi'

api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'

test_id = '<SYNTHETICS_TEST_PUBLIC_ID>'

dog = Dogapi::Client.new(api_key, app_key)

dog.get_synthetics_test('test_id'  => test_id)

Get a test result (API)

get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/{public_id}/results/{result_id}

Overview

Get a specific full result from a given (API) Synthetic test.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the API test to which the target result belongs.

result_id [required]

string

The ID of the result to get.

Response

OK

Object returned describing a API test result.

Expand All

Field

Type

Description

check

object

Object describing the API test configuration.

config [required]

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

check_time

double

When the API test was conducted.

check_version

int64

Version of the API test used.

probe_dc

string

Locations for which to query the API test results.

result

object

Object containing results for your Synthetic API test.

cert

object

Object describing the SSL certificate used for a Synthetic test.

cipher

string

Cipher used for the connection.

exponent

double

Exponent associated to the certificate.

extKeyUsage

[string]

Array of extensions and details used for the certificate.

fingerprint

string

MD5 digest of the DER-encoded Certificate information.

fingerprint256

string

SHA-1 digest of the DER-encoded Certificate information.

issuer

object

Object describing the issuer of a SSL certificate.

C

string

Country Name that issued the certificate.

CN

string

Common Name that issued certificate.

L

string

Locality that issued the certificate.

O

string

Organization that issued the certificate.

OU

string

Organizational Unit that issued the certificate.

ST

string

State Or Province Name that issued the certificate.

modulus

string

Modulus associated to the SSL certificate private key.

protocol

string

TLS protocol used for the test.

serialNumber

string

Serial Number assigned by Symantec to the SSL certificate.

subject

object

Object describing the SSL certificate used for the test.

C

string

Country Name associated with the certificate.

CN

string

Common Name that associated with the certificate.

L

string

Locality associated with the certificate.

O

string

Organization associated with the certificate.

OU

string

Organizational Unit associated with the certificate.

ST

string

State Or Province Name associated with the certificate.

altName

string

Subject Alternative Name associated with the certificate.

validFrom

date-time

Date from which the SSL certificate is valid.

validTo

date-time

Date until which the SSL certificate is valid.

errorCode

enum

Error code that can be returned by a Synthetic test. Allowed enum values: NO_ERROR,UNKNOWN,DNS,SSL,TIMEOUT,DENIED,INCORRECT_ASSERTION

errorMessage

string

The API test error message.

eventType

enum

Status of a Synthetic test. Allowed enum values: not_scheduled,scheduled,started,finished,finished_with_error

httpStatusCode

int64

The API test HTTP status code.

requestHeaders

object

Request header object used for the API test.

<any-key>

object

Requested request header.

responseBody

string

Response body returned for the API test.

responseHeaders

object

Response headers returned for the API test.

<any-key>

object

Returned request header.

responseSize

int64

Global size in byte of the API test response.

timings

object

Object containing all metrics and their values collected for a Synthetic API test. Learn more about those metrics in Synthetics documentation.

dns

double

The duration in millisecond of the DNS lookup.

download

double

The time in millisecond to download the response.

firstByte

double

The time in millisecond to first byte.

handshake

double

The duration in millisecond of the TLS handshake.

redirect

double

The time in millisecond spent during redirections.

ssl

double

The duration in millisecond of the TLS handshake.

tcp

double

Time in millisecond to establish the TCP connection.

total

double

The overall time in millisecond the request took to be processed.

wait

double

Time spent in millisecond waiting for a response.

result_id

string

ID of the API test result.

status

enum

The status of your Synthetic monitor.

  • O for not triggered
  • 1 for triggered
  • 2 for no data Allowed enum values: 0,1,2
{
  "check": {
    "config": {
      "assertions": [
        {
          "operator": "string",
          "property": "string",
          "target": {},
          "type": "string"
        }
      ],
      "request": {
        "basicAuth": {
          "password": "string",
          "username": "string"
        },
        "body": "string",
        "headers": {
          "<any-key>": "string"
        },
        "host": "string",
        "method": "string",
        "port": "integer",
        "query": {},
        "timeout": "number",
        "url": "string"
      },
      "variables": [
        {
          "example": "string",
          "id": "string",
          "name": "string",
          "pattern": "string",
          "type": "string"
        }
      ]
    }
  },
  "check_time": "number",
  "check_version": "integer",
  "probe_dc": "string",
  "result": {
    "cert": {
      "cipher": "string",
      "exponent": "number",
      "extKeyUsage": [],
      "fingerprint": "string",
      "fingerprint256": "string",
      "issuer": {
        "C": "string",
        "CN": "string",
        "L": "string",
        "O": "string",
        "OU": "string",
        "ST": "string"
      },
      "modulus": "string",
      "protocol": "string",
      "serialNumber": "string",
      "subject": {
        "C": "string",
        "CN": "string",
        "L": "string",
        "O": "string",
        "OU": "string",
        "ST": "string",
        "altName": "string"
      },
      "validFrom": "2019-09-19T10:00:00.000Z",
      "validTo": "2019-09-19T10:00:00.000Z"
    },
    "errorCode": "string",
    "errorMessage": "string",
    "eventType": "string",
    "httpStatusCode": "integer",
    "requestHeaders": {
      "<any-key>": {}
    },
    "responseBody": "string",
    "responseHeaders": {
      "<any-key>": {}
    },
    "responseSize": "integer",
    "timings": {
      "dns": "number",
      "download": "number",
      "firstByte": "number",
      "handshake": "number",
      "redirect": "number",
      "ssl": "number",
      "tcp": "number",
      "total": "number",
      "wait": "number"
    }
  },
  "result_id": "string",
  "status": "integer"
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test or result is not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
export result_id="CHANGE_ME"
# Curl command curl -X get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/${public_id}/results/${result_id} \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}"
from datadog import initialize, api

options = {
    'api_key': '<DATADOG_API_KEY>',
    'app_key': '<DATADOG_APPLICATION_KEY>'
}

test_id = '<SYNTHETICS_TEST_PUBLIC_ID>'
result_id = '<TEST_RESULT_ID>'

initialize(**options)

api.Synthetics.get_result(id=test_id, result_id=result_id)
require 'dogapi'

api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'

test_id = '<SYNTHETICS_TEST_PUBLIC_ID>'
result_id = '<TEST_RESULT_ID>'


dog = Dogapi::Client.new(api_key, app_key)

dog.get_synthetics_result('test_id'  => test_id , 'result_id'  => result_id)

Get a test result (browser)

get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/browser/{public_id}/results/{result_id}

Overview

Get a specific full result from a given (browser) Synthetic test.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the browser test to which the target result belongs.

result_id [required]

string

The ID of the result to get.

Response

OK

Object returned describing a browser test result.

Expand All

Field

Type

Description

check

object

Object describing the browser test configuration.

config [required]

object

Configuration object for a Synthetic test.

assertions [required]

[object]

Array of assertions used for the test.

operator [required]

enum

Assertion operator to apply. Allowed enum values: contains,doesNotContain,is,isNot,lessThan,matches,doesNotMatch,validates,isInMoreThan

property

string

The associated assertion property.

target

object

Target to apply the assertion to. It can be a string, a number, or a Date.

type [required]

enum

Type of the assertion. Allowed enum values: body,header,statusCode,certificate,responseTime,property

request [required]

object

Object describing the Synthetic test request.

basicAuth

object

Object to handle basic authentication when performing the test.

password [required]

string

Password to use for the basic authentication.

username [required]

string

Username to use for the basic authentication.

body

string

Body to include in the test.

headers

object

Headers to include when performing the test.

<any-key>

string

A single Header.

host

string

Host name to perform the test with.

method

enum

The HTTP method. Allowed enum values: GET,POST,PATCH,PUT,DELETE,HEAD,OPTIONS

port

int64

Port to use when performing the test.

query

object

Query to use for the test.

timeout

double

Timeout in millisecond for the test.

url

string

URL to perform the test with.

variables

[object]

Array of variables used for the test.

example

string

Example for the variable.

id

string

ID for the variable.

name [required]

string

Name of the variable.

pattern

string

Pattern of the variable.

type [required]

enum

Type of browser test variable. Allowed enum values: element,email,global,text

check_time

double

When the browser test was conducted.

check_version

int64

Version of the browser test used.

probe_dc

string

Location from which the browser test was performed.

result

object

Object containing results for your Synthetic browser test.

browserType

string

Type of browser device used for the browser test.

browserVersion

string

Browser version used for the browser test.

device

object

Object describing the device used to perform the Synthetic test.

height [required]

int64

Screen height of the device.

id [required]

enum

The device ID. Allowed enum values: laptop_large,tablet,mobile_small

isMobile

boolean

Whether or not the device is a mobile.

name [required]

string

The device name.

width [required]

int64

Screen width of the device.

duration

double

Global duration in second of the browser test.

error

string

Error returned for the browser test.

passed

boolean

Whether or not the browser test was conducted.

receivedEmailCount

int64

The amount of email received during the browser test.

startUrl

string

Starting URL for the browser test.

stepDetails

[object]

Array containing the different browser test steps.

browserErrors

[object]

Array of errors collected for a browser test.

description [required]

string

Description of the error.

name [required]

string

Name of the error.

statusCode

int64

Status Code of the error.

type [required]

enum

Error type returned by a browser test. Allowed enum values: network,js

checkType

enum

Type of assertion to apply in an API test. Allowed enum values: equals,notEquals,contains,notContains,startsWith,notStartsWith,greater,lower,greaterEquals,lowerEquals,matchRegex

description

string

Description of the test.

duration

double

Total duration in millisecond of the test.

error

string

Error returned by the test.

playingTab

enum

Navigate between different tabs for your browser test. Allowed enum values: -1,0,1,2,3

resources

[object]

Array of resources collected by the test.

duration

double

Number of time the resource was collected.

method

string

HTTP method associated to the resource.

size

int64

Size of the resource in bytes.

status

int64

Status Code of the resource.

timestamp

double

Timestamp of the resource collection.

traceId

string

Trace ID associated with the resource if any.

type [required]

enum

Document type to apply an assertion against. Allowed enum values: document,stylesheet,fetch,image,script,xhr,other

url

string

URL of the resource.

screenshotBucketKey

boolean

Whether or not screenshots where collected by the test.

skipped

boolean

Whether or not to skip this step.

snapshotBucketKey

boolean

Whether or not snapshots where collected by the test.

stepId

int64

The step ID.

subTestStepDetails

[object]

If this steps include a sub-test. Subtests documentation.

timeToInteractive

double

Time before starting the step.

type

enum

Step type used in your Synthetic test. Allowed enum values: assertCurrentUrl,assertElementContent,assertElementPresent,assertEmail,assertPageContains,assertPageLacks,click,extractVariable,goToEmailLink,goToUrl,goToUrlAndMeasureTti,hover,playSubTest,pressKey,refresh,selectOption,typeText,uploadFiles,wait

url

string

URL to perform the step against.

value

object

Value for the step.

warnings

[object]

Warning collected that didn't failed the step.

message [required]

string

Message for the warning.

type [required]

enum

User locator used. Allowed enum values: user_locator

thumbnailsBucketKey

boolean

Whether or not a thumbnail is associated with the browser test.

timeToInteractive

double

Time in second to wait before the browser test starts after reaching the start URL.

result_id

string

ID of the browser test result.

status

enum

The status of your Synthetic monitor.

  • O for not triggered
  • 1 for triggered
  • 2 for no data Allowed enum values: 0,1,2
{
  "check": {
    "config": {
      "assertions": [
        {
          "operator": "string",
          "property": "string",
          "target": {},
          "type": "string"
        }
      ],
      "request": {
        "basicAuth": {
          "password": "string",
          "username": "string"
        },
        "body": "string",
        "headers": {
          "<any-key>": "string"
        },
        "host": "string",
        "method": "string",
        "port": "integer",
        "query": {},
        "timeout": "number",
        "url": "string"
      },
      "variables": [
        {
          "example": "string",
          "id": "string",
          "name": "string",
          "pattern": "string",
          "type": "string"
        }
      ]
    }
  },
  "check_time": "number",
  "check_version": "integer",
  "probe_dc": "string",
  "result": {
    "browserType": "string",
    "browserVersion": "string",
    "device": {
      "height": "integer",
      "id": "string",
      "isMobile": false,
      "name": "string",
      "width": "integer"
    },
    "duration": "number",
    "error": "string",
    "passed": false,
    "receivedEmailCount": "integer",
    "startUrl": "string",
    "stepDetails": [
      {
        "browserErrors": [
          {
            "description": "string",
            "name": "string",
            "statusCode": "integer",
            "type": "string"
          }
        ],
        "checkType": "string",
        "description": "string",
        "duration": "number",
        "error": "string",
        "playingTab": "integer",
        "resources": [
          {
            "duration": "number",
            "method": "string",
            "size": "integer",
            "status": "integer",
            "timestamp": "number",
            "traceId": "string",
            "type": "string",
            "url": "string"
          }
        ],
        "screenshotBucketKey": false,
        "skipped": false,
        "snapshotBucketKey": false,
        "stepId": "integer",
        "subTestStepDetails": [],
        "timeToInteractive": "number",
        "type": "string",
        "url": "string",
        "value": {},
        "warnings": [
          {
            "message": "string",
            "type": "string"
          }
        ]
      }
    ],
    "thumbnailsBucketKey": false,
    "timeToInteractive": "number"
  },
  "result_id": "string",
  "status": "integer"
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test or result is not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
export result_id="CHANGE_ME"
# Curl command curl -X get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/browser/${public_id}/results/${result_id} \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}"

Get the test's latest results summaries (API)

get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/{public_id}/results

Overview

Get the last 50 test results summaries for a given Synthetics API test.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the test for which to search results for.

Query Strings

Name

Type

Description

from_ts

integer

Timestamp from which to start querying results.

to_ts

integer

Timestamp up to which to query results.

probe_dc

array

Locations for which to query results.

Response

OK

Object with the latest Synthetic API test run.

Expand All

Field

Type

Description

last_timestamp_fetched

int64

Timestamp of the latest API test run.

results

[object]

Result of the latest API test run.

check_time

double

Last time the API test was performed.

probe_dc

string

Location from which the API test was performed.

result

object

Result of the last API test run.

timings

object

Object containing all metrics and their values collected for a Synthetic API test. Learn more about those metrics in Synthetics documentation.

dns

double

The duration in millisecond of the DNS lookup.

download

double

The time in millisecond to download the response.

firstByte

double

The time in millisecond to first byte.

handshake

double

The duration in millisecond of the TLS handshake.

redirect

double

The time in millisecond spent during redirections.

ssl

double

The duration in millisecond of the TLS handshake.

tcp

double

Time in millisecond to establish the TCP connection.

total

double

The overall time in millisecond the request took to be processed.

wait

double

Time spent in millisecond waiting for a response.

result_id

string

ID of the API test result.

status

enum

The status of your Synthetic monitor.

  • O for not triggered
  • 1 for triggered
  • 2 for no data Allowed enum values: 0,1,2
{
  "last_timestamp_fetched": "integer",
  "results": [
    {
      "check_time": "number",
      "probe_dc": "string",
      "result": {
        "timings": {
          "dns": "number",
          "download": "number",
          "firstByte": "number",
          "handshake": "number",
          "redirect": "number",
          "ssl": "number",
          "tcp": "number",
          "total": "number",
          "wait": "number"
        }
      },
      "result_id": "string",
      "status": "integer"
    }
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test is not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
# Curl command curl -X get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/${public_id}/results \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}"
from datadog import initialize, api

options = {
    'api_key': '<DATADOG_API_KEY>',
    'app_key': '<DATADOG_APPLICATION_KEY>'
}

test_id = '<SYNTHETICS_TEST_PUBLIC_ID>'

initialize(**options)

api.Synthetics.get_results(id=test_id)
require 'dogapi'

api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'

test_id = '<SYNTHETICS_TEST_PUBLIC_ID>'

dog = Dogapi::Client.new(api_key, app_key)

dog.get_synthetics_results('test_id'  => test_id)

Get the test's latest results summaries (browser)

get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/browser/{public_id}/results

Overview

Get the last 50 test results summaries for a given Synthetics Browser test.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the browser test for which to search results for.

Query Strings

Name

Type

Description

from_ts

integer

Timestamp from which to start querying results.

to_ts

integer

Timestamp up to which to query results.

probe_dc

array

Locations for which to query results.

Response

OK

Object with the latest Synthetic browser test run.

Expand All

Field

Type

Description

last_timestamp_fetched

int64

Timestamp of the latest browser test run.

results

[object]

Result of the latest browser test run.

check_time

double

Last time the browser test was performed.

probe_dc

string

Location from which the Browser test was performed.

result

object

Object with the result of the last browser test run.

device

object

Object describing the device used to perform the Synthetic test.

height [required]

int64

Screen height of the device.

id [required]

enum

The device ID. Allowed enum values: laptop_large,tablet,mobile_small

isMobile

boolean

Whether or not the device is a mobile.

name [required]

string

The device name.

width [required]

int64

Screen width of the device.

duration

double

Length in second of the browser test run.

errorCount

int64

Amount of errors collected for a single browser test run.

stepCountCompleted

int64

Amount of browser test steps completed before failing.

stepCountTotal

int64

Total amount of browser test steps.

result_id

string

ID of the browser test result.

status

enum

The status of your Synthetic monitor.

  • O for not triggered
  • 1 for triggered
  • 2 for no data Allowed enum values: 0,1,2
{
  "last_timestamp_fetched": "integer",
  "results": [
    {
      "check_time": "number",
      "probe_dc": "string",
      "result": {
        "device": {
          "height": "integer",
          "id": "string",
          "isMobile": false,
          "name": "string",
          "width": "integer"
        },
        "duration": "number",
        "errorCount": "integer",
        "stepCountCompleted": "integer",
        "stepCountTotal": "integer"
      },
      "result_id": "string",
      "status": "integer"
    }
  ]
}

forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test is not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
# Curl command curl -X get https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/browser/${public_id}/results \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}"

Pause or start a test

put https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/{public_id}/status

Overview

Pause or start a Synthetics test by changing the status.

Arguments

Path Parameters

Name

Type

Description

public_id [required]

string

The public ID of the Synthetic test to update.

Request

Body Data (required)

Status to set the given Synthetic test to.

Expand All

Field

Type

Description

new_status

enum

Define whether you want to start (live) or pause (paused) a Synthetic test. Allowed enum values: live,paused

{
  "new_status": "string"
}

Response

OK - Returns a boolean indicating if the update was successful.

Expand All

Field

Type

Description

No response body

{}

JSON format is wrong.

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

- Synthetic is not activated for the user - Test is not owned by the user

Error response object.

Expand All

Field

Type

Description

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example


                                        # Path parameters
export public_id="CHANGE_ME"
# Curl command curl -X put https://api.datadoghq.comhttps://api.datadoghq.eu/api/v1/synthetics/tests/${public_id}/status \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \ -d @- << EOF {} EOF