Update Synthetic API Monitoring Job API

This page describes the API used to update the Synthetic API monitoring jobs.

Update an API Monitoring Job

Updates an API monitoring job with the specified JSON payload.

Resource URL

PUT /v1/synthetic/api/schedule/<id>

Request/Response Format

JSON

Example

Request
{
"_id": "job_id",
"version": 2,
"scheduleRunConfigs": [
{
"rate": {
"value": 15,
"unit": "MINUTES"
},
"daysOfWeek": [
"SUN",
"WED",
"FRI",
"MON",
"THUR",
"SAT",
"TUES"
],
"timezone": "UTC"
}
],
"userEnabled": true,
"systemEnabled": true,
"type": "ALL_BROWSERS",
"rate": {
"value": 15,
"unit": "MINUTES"
},
"daysOfWeek": [
"SUN",
"WED",
"FRI",
"MON",
"THUR",
"SAT",
"TUES"
],
"timezone": "UTC",
"description": "appd1",
"appKey": "appkey",
"scheduleMode": "NONE",
"script": {
"contentType": "INLINE_PYTHON_3",
"script": "pageUrl = \"http://www.appdynamics.com\"\ndriver.get(pageUrl)\nassert \"AppDynamics\" in driver.title, \"Title should contain AppDynamics\""
},
"browserCodes": [
"Chrome"
],
"chromeVersions": [
"86"
],
"locationCodes": [
"M50"
],
"failOnPageError": true,
"captureVisualMetrics": true,
"simulateMobileBrowser": false,
"networkProfile": {
"name": "Native",
"downloadKbps": 5000,
"uploadKbps": 1000,
"roundtripTimeMillis": 28,
"packetLossPercent": 0,
"isDefault": false
},
"timeoutSeconds": 30,
"state": {
"lastFireTime": "2022-04-01T04:49:46.544Z"
},
"projectedUsage": {
"projectedDailyRuns": 96,
"projectedMonthlyRuns": 2880
},
"performanceCriteria": {
"retestOnWarning": false,
"retestOnCritical": false,
"criterion": []
},
"composableConfig": {
"numBeforeConfirmedError": 0,
"resourceErrorDetection": {
"ignoreWhen": {
"resourceUrlContains": [],
"resourceMimeType": []
},
"onlyWhen": {
"resourceUrlContains": [],
"resourceMimeType": []
}
}
},
"created": "2022-04-01T04:49:46.538Z",
"updated": "2022-04-01T04:50:13.325Z"
}
Response
{
"_id": "job_id",
"version": 1,
"scheduleRunConfigs": [
{
"rate": {
"value": 1,
"unit": "MINUTES"
},
"daysOfWeek": [
"WED",
"FRI",
"SUN",
"SAT",
"TUES",
"MON",
"THUR"
],
"timezone": "UTC"
}
],
"userEnabled": true,
"systemEnabled": true,
"type": "ALL_BROWSERS",
"rate": {
"value": 15,
"unit": "MINUTES"
},
"daysOfWeek": [
"WED",
"FRI",
"SUN",
"SAT",
"TUES",
"MON",
"THUR"
],
"timezone": "UTC",
"description": "https://appdynamics.com",
"appKey": "appKey",
"scheduleMode": "NONE",
"url": "https://appdynamics.com",
"browserCodes": [
"Chrome"
],
"chromeVersions": [
"86"
],
"locationCodes": [
"BOM",
"M50"
],
"failOnPageError": true,
"captureVisualMetrics": true,
"simulateMobileBrowser": false,
"networkProfile": {
"name": "Native",
"downloadKbps": 5000,
"uploadKbps": 1000,
"roundtripTimeMillis": 28,
"packetLossPercent": 0,
"isDefault": false
},
"timeoutSeconds": 15,
"state": {
"lastFireTime": "2022-04-06T05:57:16.000Z",
"nextFireTime": "2022-04-06T06:00:16.000Z"
},
"projectedUsage": {
"projectedDailyRuns": 2880,
"projectedMonthlyRuns": 86400
},
"performanceCriteria": {
"retestOnWarning": false,
"retestOnCritical": false,
"criterion": []
},
"composableConfig": {
"numBeforeConfirmedError": 0,
"resourceErrorDetection": {
"ignoreWhen": {
"resourceUrlContains": [],
"resourceMimeType": []
},
"onlyWhen": {
"resourceUrlContains": [],
"resourceMimeType": []
}
}
},
"created": "2022-04-05T05:30:36.426Z",
"updated": "2022-04-05T05:30:36.426Z"
}

Enable or Disable an API Monitoring Job

You can enable or disable an API monitoring job by updating the following values:

ActionField NameValue

Enable an API monitoring job

userEnabled

true
Disable an API monitoring job userEnabled false

Response Parameter

Parameter NameParameter TypeValueDescriptionMandatory Request

id

String

Job ID of an API monitoring job

Unique identifier of an API monitoring job.

To get the job ID:

  1. Log in to Controller and navigate to User Experience > API Monitoring > <Collection Name> > Jobs.
  2. Hover over the job name and click the copy icon to copy the job or schedule ID.
Yes
versionnumber

Whenever a job is updated, the value of the version increases by a factor of one.

A job with "version" :

No
scheduleRunConfigs -No
rate -No
value number

Minutes: 1 - 60

Hours: 1 - 24

Days: "null"

No
unit StringMinutes, Hours, or DaysNo
daysOfWeek String "SUN", "MON", "TUES", "WED", "THUR", "FRI", "SAT" No
timeRange StringBetween hh:mm AM/PM to hh:mm AM/PMNo
timezone String "UTC" GMT +/-hh:mmNo
startTime Stringdd/mm/yyyy hh:mm AM/PMNo
endTime Stringdd/mm/yyyy hh:mm AM/PMNo
userEnabled Booleantrue or false No
systemEnabled BooleanThis field gets disabled when the license exhausts.No
type StringNo
rate StringNo
value NumberNo
unit StringNo
daysOfWeek StringNo
timeRange StringNo
timezone StringNo
description StringNo
startTime StringNo
endTime StringNo
appKey StringApplication 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.
No
scheduleMode StringNo
url String"null" or URL to monitor

The URL that you want to monitor.

When you use this parameter, the value of the script parameter must be null.

No
script String

"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 parameter must be null.

No
contentType String "null" or "INLINE_PYTHON_3"

If the url value is not null (URL job), the content type is null

If the script value is not null (script job), the content type is "INLINE_PYTHON_3"

No
script String "null" or Python script Python-based selenium script for the scripted jobsNo
credentialPlaceholders StringNo
apiMetadata StringScript object of the web monitoring jobNo
browserCodes String

Use the following Synthetic internal browser codes:

  • Chrome: Chrome
  • Internet Explorer: IE11
  • Firefox: Firefox
  • Mobile: Chrome.DeviceEmulation
Yes
chromeVersions StringChrome browser version 86Yes
locationCodes String

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

Yes
failOnPageError BooleanNo
captureVisualMetrics Booleantrue or false No
simulateMobileBrowser Booleantrue or false No

networkProfile

String"name": "Native", "downloadKbps": 5000, "uploadKbps": 1000, "roundtripTimeMillis": 28, "packetLossPercent": 0, "isDefault": falseNo

name

StringCustom, Pixel, iPad, iPhone SEName of the deviceNo

description

String

If the name is Custom: User agent

If the name field is not Custom: "null"

Mozilla/5.0 (Linux; Android 7.0; SAMSUNG SM-G950F Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/5.2 Chrome/51.0.2704.106 Mobile Safari/537.36No
downloadKbps NumberNumberDownload bandwidth in kbpsNo
uploadKbps NumberNumberUpload bandwidth in kbpsNo
roundtripTimeMillis NumberNumberLatency in millisecondsNo
packetLossPercent Number0 - 100Packet loss percentageNo
isDefault Booleantrue or false No
timeoutSeconds Number5 - 300SecondsNo
state -No
lastFireTime StringNo
nextFireTime StringNo
projectedUsage -No
projectedDailyRuns NumberNo
projectedMonthlyRuns NumberNo
performanceCriteria -No
retestOnWarning Booleantrue or false Re-test on warning eventNo
retestOnCritical Booleantrue or false Re-test on critical eventNo
criterion StringNo
composableConfig -You can use this parameter to configure:
  • Custom Retry
  • Availability Rules
No
numBeforeConfirmedError Number0, 1, 2, 3, 5, or 10Number of retriesNo
resourceErrorDetection -No
ignoreWhen -No
resourceUrlContains StringComma separated listList of resource URLsNo
resourceMimeType StringNo
onlyWhen -No
resourceUrlContains StringComma separated listList of resource URLsNo
resourceMimeType StringNo
created StringNo
updated StringNo

Response Status Codes

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