Create Multiple Synthetic API Monitoring Jobs API

This page describes the API used to create multiple Synthetic API monitoring jobs using a single API request.

Create Multiple API Monitoring Jobs

Creates multiple API monitoring jobs with the specified JSON payload.

Resource URL

POST <api_server_URL>/v1/synthetic/api/schedule/batch

Request/Response Format

JSON

Example:

Request
{
"schedules": [
{
"scheduleRunConfigs": [
{
"rate": {
"value": 15,
"unit": "MINUTES"
},
"daysOfWeek": [
"SUN",
"WED",
"THUR",
"FRI",
"MON",
"TUES",
"SAT"
],
"timezone": "UTC"
}
],
"description": "jobUI",
"apiMetadata": {
"script": {
"contentType": "JAVASCRIPT",
"script": "// Javascript based API Monitoring Test\n\nconst assert = require(\"assert\");\n(async () => {\n    var response = await client.get(\"<URL>\");\n    assert.equal(response.statusCode, 200);\n    assert.equal(response.statusMessage, \"OK\");\n    for(var key in response.headers) {\n        console.log(`${key} : ${response.headers[key]}`);\n    }\n    assert.equal(response.body, \"response body\");\n})()"
}
},
"browserCodes": [
"API"
],
"chromeVersions": [],
"locationCodes": [
"M50"
],
"timeoutSeconds": 15,
"appKey": "appKey",
"composableConfig": {
"numBeforeConfirmedError": 0,
"resourceErrorDetection": {
"ignoreWhen": {
"resourceUrlContains": [],
"resourceMimeType": []
},
"onlyWhen": {
"resourceUrlContains": [],
"resourceMimeType": []
}
}
},
"performanceCriteria": {
"retestOnWarning": false,
"retestOnCritical": false,
"warningCriterion": [],
"criticalCriterion": []
}
}
]
}
Response
[
{
"status": "200",
"errorMessage": "null",
"scheduleId": "ID"
},
{
"status": "422",
"errorMessage": "timeout field value exceeds range",
"scheduleId": "null"
}
]

Request Parameters

Parameter NameParameter TypeValueDescriptionMandatory Request
scheduleRunConfigs-&#160;&#160;No
rate-&#160;&#160;No
valuenumber

Minutes: 1 - 60

Hours: 1 - 24

Days: "null"

&#160;No
unitStringMinutes, Hours, or Days&#160;No
daysOfWeekString"SUN", "MON", "TUES", "WED", "THUR", "FRI", "SAT"&#160;No
timeRangeString&#160;Between hh:mm AM/PM to hh:mm AM/PMNo
timezoneString"UTC"GMT +/-hh:mmNo
startTimeString&#160;dd/mm/yyyy hh:mm AM/PMNo
endTimeString&#160;dd/mm/yyyy hh:mm AM/PMNo
descriptionStringJob nameName of the jobYes
urlString"null" or URL to monitor

The URL that you want to monitor.

When you use this parameter, the value of the script

No
scriptString

"null"

If you have a scripted job, specify the python-based selenium script used for simulating the user flow or behavior.

When you use this parameter, the value of the url

No
apiMetadataStringScript object of the web monitoring job&#160;Yes
contentTypeString&#160;&#160;Yes
scriptString&#160;&#160;Yes
browserCodesString

Use the following Synthetic internal browser codes:

  • Chrome: Chrome
  • Internet Explorer: IE11
  • Firefox: Firefox
  • Mobile: Chrome.DeviceEmulation
&#160;No
chromeVersionsStringChrome browser version 86&#160;No
locationCodesString

Synthetic internal location codes of each agent location. See Location Codes.

&#160;Yes
timeoutSecondsNumber&#160;&#160;No

appKey

String

Application key

You can get the application key from the Controller.

  1. Navigate to User Experience > API Monitoring.
  2. Hover over the collection name and click the copy icon to copy the Collection Key. The Collection Key is the Application Key.
Yes

networkProfile

String&#160;"name": "Native", "downloadKbps": 5000, "uploadKbps": 1000, "roundtripTimeMillis": 28, "packetLossPercent": 0, "isDefault": falseNo
composableConfig-&#160;You can use this parameter to configure:
  • Custom Retry
  • Availability Rules
No
numBeforeConfirmedErrorNumber0, 1, 2, 3, 5, or 10Number of retriesNo
resourceErrorDetection-&#160;&#160;No
ignoreWhen-&#160;&#160;No
resourceUrlContainsStringComma-separated listList of resource URLsNo
resourceMimeTypeString&#160;&#160;No
onlyWhen-&#160;&#160;No
resourceUrlContainsStringComma-separated listList of resource URLsNo
resourceMimeTypeString&#160;&#160;No
deviceEmulationProfileString&#160;&#160;No
requestHeaderString&#160;&#160;No
performanceCriteria-&#160;&#160;No
retestOnWarningBooleantrue or false Re-test on warning eventNo
retestOnCriticalBooleantrue or false Re-test on critical eventNo
warningCriterionString&#160;&#160;No
criticalCriterionString&#160;&#160;No

Response Status Codes

Code Description
200Success
401Unauthorized
402Exceeded job limit
422Validation failure
429Throttled
500Internal server error