Agents & Monitors
Agents
List all Agents
v6 |
v7 |
GET
/v6/agents |
GET
/v7/agents |
Response
Body |
|
Enterprise Agent Example { "agents": [ { "agentId":
661766, "agentName":
"Albany, NY (Spectrum)", "agentType":
"Enterprise", "countryId":
"US", "enabled": 1, "keepBrowserCache":
0, "verifySslCertificates":
1, "ipAddresses":
[ "10.40.3.200" ], "interfaceIpMapping":
[ { "interfaceName":
"eth0", "ipAddresses":
[
"10.40.3.200" ] } ], "lastSeen":
"2024-11-14 05:10:51", "location": "New
York", "network": "Road
Runner HoldCo LLC (AS 11351)", "prefix":
"45.46.0.0/15", "publicIpAddresses":
[ "45.47.161.100" ], "targetForTests":
"spectrum.example.net", "agentState":
"Online", "utilization": 54, "ipv6Policy": "FORCE_IPV4", "hostname": "teva-spectrum-one", "createdDate":
"2022-09-09 19:04:16", "errorDetails": [] } ] } Cloud Example { "agents": [ { "agentId":
3, "agentName":
"Singapore", "agentType":
"Cloud", "countryId":
"SG", "targetOnly":
0, "ipAddresses":
[ "2607:f3a0:a008:30::30:1", "64.29.136.133" ], "location":
"Singapore" } ] } Enterprise Cluster Example { "agents": [ { "agentId":
1381277, "agentName":
"EA Cluster", "agentType":
"Enterprise Cluster", "clusterMembers":
[ { "errorDetails": [], "ipAddresses":
[
"10.40.2.29" ], "lastSeen":
"2024-11-14 05:56:12", "memberId":
1389581, "name": "localhost.localdomain", "network":
"UUNETVerizon Business/UUnet
(AS 701)", "prefix":
"71.244.112.0/20", "publicIpAddresses":
[ "71.244.115.50" ], "targetForTests":
"10.40.2.29", "agentState":
"Online", "utilization":
0 } ], "countryId":
"US", "enabled": 1, "keepBrowserCache":
0, "verifySslCertificates":
1, "location": "New
York", "utilization": 0, "ipv6Policy": "FORCE_IPV4", "createdDate":
"2024-10-04 17:36:29" } ] } |
Enterprise Agent Example { "agents": [ { "agentId":
"661766", "agentName":
"Albany, NY (Spectrum)", "agentType":
"enterprise", "countryId":
"US", "enabled": true, "keepBrowserCache":
false, "verifySslCertificates":
true, "ipAddresses":
[ "10.40.3.200" ], "interfaceIpMapping":
[ { "interfaceName":
"eth0", "ipAddresses":
[
"10.40.3.200" ] } ], "lastSeen":
"2024-11-14T05:09:50Z", "location": "New
York", "network": "Road
Runner HoldCo LLC (AS 11351)", "prefix":
"45.46.0.0/15", "publicIpAddresses":
[ "45.47.161.100" ], "targetForTests":
"spectrum.example.net", "agentState":
"online", "utilization": 54, "ipv6Policy": "force-ipv4", "hostname": "teva-spectrum-one", "createdDate":
"2022-09-09T19:04:16Z" } ] } Cloud Example { "agents":
[ { "agentId": "3", "agentName": "Singapore", "agentType": "cloud", "countryId": "SG", "ipAddresses": [ "2607:f3a0:a008:30::30:1",
"64.29.136.133" ],
"location": "Singapore" } ] } Enterprise Cluster Example (Expanded
cluster member) { "agents": [ { "agentId":
"1381277", "agentName":
"EA Cluster", "agentType":
"enterprise-cluster", "clusterMembers":
[ { "ipAddresses":
[
"10.40.2.29" ], "lastSeen":
"2024-11-14T05:56:12Z", "memberId":
"1389581", "name": "localhost.localdomain", "network":
"UUNETVerizon Business/UUnet
(AS 701)", "prefix":
"71.244.112.0/20", "publicIpAddresses":
[ "71.244.115.50" ], "targetForTests":
"10.40.2.29", "agentState":
"online", "utilization":
0, } ], "countryId":
"US", "enabled": true, "keepBrowserCache":
false, "verifySslCertificates":
true, "location": "New
York", "utilization": 0, "ipv6Policy": "force-ipv4", "createdDate":
"2024-10-04T17:36:29Z" } ] } |
Comments: 1. The
values for the `agentTypes` query parameter have
changed from ["CLOUD", "ENTERPRISE", "ENTERPRISE_CLUSTER"]
to ["cloud", "enterprise-cluster", "enterprise"] Enterprise Agent Type 2. The type for the `agentId`
and `memberId` fields has changed from integer to
string. 3. The type for the `enabled`, `verifySslCertificates`,
and `keepBrowserCache` fields has changed from
integer to boolean. 4. The values for the `agentState`,
`agentType`, and `ipv6Policy` fields are now all
lowercase, and spaces/underscores have been replaced with hyphens. a. For `agentState`, the
values have changed from ["Online",
"Offline", "Disabled"] to ["online",
"offline", "disabled"] b. For
`agentType`, the value has changed from "Enterprise"
to "enterprise" c. For
`ipv6Policy`, the values have changed from ["FORCE_IPV4",
"PREFER_IPV6" or "FORCE_IPV6"] to
["force-ipv4", "prefer-ipv6", "force-ipv6"] 5. The timestamp
format for the `lastSeen` and `createdDate`
fields has changed. o v6: Date and
time in the format "YYYY-MM-DD HH:MM:SS" o v7: ISO 8601
format with timezone (e.g.,
"2024-11-14T05:09:50Z") 6. The `errorDetails` field is only present if an enterprise
agent presents at least one error. Cloud Agent Type 7. The type for the `agentId`
field has changed from integer to string. 8. The values
for the `agentType` have changed from
"Cloud" to "cloud" 9. The `targetOnly` field has been removed. Enterprise Cluster Type 10.
v6
responses always include cluster members, v7 requires `expand=cluster-member` query param to include
cluster members in the response. 11.
The values
for the `agentState`, `agentType`,
and `ipv6Policy` fields are now all lowercase, and spaces/underscores have
been replaced with hyphens. o
For `agentState`, the values have changed from ["Online",
"Offline", "Disabled"] to ["online",
"offline", "disabled"] o
For `agentType`,
the value has changed from "Enterprise Cluster" to
"enterprise-cluster" o
For `ipv6Policy`, the values have
changed from ["FORCE_IPV4", "PREFER_IPV6" or
"FORCE_IPV6"] to ["force-ipv4", "prefer-ipv6",
"force-ipv6"] 12.
The type for
the `agentId` field has changed from integer to
string. 13.
The type for
the `enabled`, `verifySslCertificates`, and `keepBrowserCache` fields has changed from integer to boolean. 14.
The
timestamp format for the `lastSeen` and `createdDate` fields has changed. o v6: Date and
time in the format "YYYY-MM-DD HH:MM:SS" o v7: ISO 8601
format with timezone (e.g.,
"2024-11-14T05:09:50Z") 15.
The `errorDetails` field
is only present if an enterprise agent presents at least one error. |
|
|
Get an Agent
v6 |
v7 |
GET
/v6/agents/{agentId} |
GET
/v7/agents/{agentId} |
Response
Body |
|
Enterprise Agent { "agents": [ { "accountGroups": [ {
"accountGroupName": "Demo – Example
User",
"aid": 164691 } ], "agentId": 661766, "agentName": "Albany, NY (Spectrum)", "agentType": "Enterprise", "countryId": "US",
"enabled": 1, "keepBrowserCache": 0, "verifySslCertificates": 1, "ipAddresses": [
"10.40.3.200" ], "interfaceIpMapping": [ {
"interfaceName": "eth0",
"ipAddresses": [
"10.40.3.200" ] } ], "groups": [ {
"name": "IPv4 Compatible", "groupId": -3 }, {
"name": "Enterprise", "groupId": -1 } ], "lastSeen": "2024-11-14
06:20:26",
"location": "New York",
"network": "Road Runner HoldCo
LLC (AS 11351)",
"prefix": "45.46.0.0/15", "publicIpAddresses": [
"45.47.161.100" ], "targetForTests": "spectrum.example.net", "agentState": "Online", "tests": [],
"utilization": 55,
"ipv6Policy": "FORCE_IPV4",
"hostname": "teva-spectrum-one", "createdDate": "2022-09-09
19:04:16", "notificationRules":
[], "errorDetails": [] } ] } Enterprise Agent
Cluster { "agents": [ { "accountGroups": [ {
"accountGroupName": "Demo – Example
User",
"aid": 164691 } ], "agentId": 1381277, "agentName": "EA Cluster", "agentType": "Enterprise
Cluster", "clusterMembers": [ {
"errorDetails":
[],
"ipAddresses": [
"10.40.2.29" ],
"lastSeen": "2024-11-14 06:43:40",
"memberId": 1389581,
"name": "localhost.localdomain",
"network": "UUNETVerizon
Business/UUnet (AS 701)",
"prefix": "71.244.112.0/20",
"publicIpAddresses": [
"71.244.115.50" ],
"targetForTests":
"10.40.2.29",
"agentState": "Online",
"utilization": 0 } ], "countryId": "US",
"enabled": 1, "keepBrowserCache": 0, "verifySslCertificates": 1, "groups": [ {
"name": "Enterprise",
"groupId":
-1 }, {
"name": "Enterprise Cluster",
"groupId":
-6 }, {
"name": "IPv4 Compatible",
"groupId":
-3 } ],
"location": "New York", "tests": [],
"utilization": 0,
"ipv6Policy": "FORCE_IPV4", "createdDate": "2024-10-04
17:36:29", "notificationRules":
[] } ] } Cloud Agent { "agents": [ { "agentId": 3, "agentName": "Singapore", "agentType": "Cloud", "countryId": "SG", "targetOnly": 0, "ipAddresses": [
"64.29.136.136", "2607:f3a0:a008:30::30:4", ], "groups": [ {
"name": "IPv4 Compatible",
"groupId":
-3 }, {
"name": "Dual Chromium",
"groupId":
-11 }, {
"name": "Cloud",
"groupId":
-2 } ],
"location": "Singapore" } ] } |
Enterprise
Agent { "accountGroups":
[ { "accountGroupName":
"Demo – Example User", "aid": "164691" } ], "agentId":
"661766", "agentName":
"Albany, NY (Spectrum)", "agentType":
"enterprise", "countryId":
"US", "enabled": true, "keepBrowserCache":
false, "verifySslCertificates":
true, "ipAddresses":
[ "10.40.3.200" ], "interfaceIpMapping":
[ { "interfaceName":
"eth0", "ipAddresses":
[ "10.40.3.200" ] } ], "labels": [ { "labelId": "-1", "name":
"Enterprise" }, { "labelId": "-3", "name": "IPv4
Compatible" } ], "lastSeen":
"2024-11-14T06:21:26Z", "location": "New
York", "network": "Road Runner HoldCo LLC (AS 11351)", "prefix":
"45.46.0.0/15", "publicIpAddresses":
[ "45.47.161.100" ], "targetForTests":
"spectrum.example.net", "agentState":
"online", "utilization": 55, "ipv6Policy": "force-ipv4", "hostname": "teva-spectrum-one", "createdDate":
"2022-09-09T19:04:16Z" } Enterprise
Agent Cluster { "accountGroups": [ { "accountGroupName": "Demo – Example User",
"aid": "164691" } ], "agentId": "1381277", "agentName": "EA Cluster", "agentType": "enterprise-cluster", "clusterMembers": [ { "ipAddresses": [
"10.40.2.29" ], "lastSeen": "2024-11-14T06:44:41Z", "memberId": "1389581",
"name": "localhost.localdomain",
"network": "UUNETVerizon
Business/UUnet (AS 701)",
"prefix": "71.244.112.0/20", "publicIpAddresses": [
"71.244.115.50" ], "targetForTests": "10.40.2.29", "agentState": "online",
"utilization": 0 } ], "countryId": "US", "enabled":
true, "keepBrowserCache": false, "verifySslCertificates": true, "labels": [ { "labelId": "-1",
"name": "Enterprise" }, { "labelId": "-6",
"name": "Enterprise Cluster" }, { "labelId": "-3",
"name": "IPv4 Compatible" } ],
"location": "New York",
"ipv6Policy": "force-ipv4",
"utilization": 0, "createdDate": "2024-10-04T17:36:29Z" } Cloud Agent {
"agentId": "3",
"agentName":
"Singapore",
"agentType": "cloud",
"countryId": "SG",
"ipAddresses": [ "64.29.136.136", "2607:f3a0:a008:30::30:4"
],
"labels": [ { "labelId": "-11", "name": "Dual
Chromium" }, { "labelId": "-2", "name":
"Cloud" }, { "labelId": "-3", "name": "IPv4
Compatible" }
],
"location": "Singapore", } |
Comments: Enterprise Agents, Enterprise Cluster
and Cloud Agents 1. The response is no longer structured as a list of
`agents` objects at the top-most level. Instead, a single agent object is
returned. 2. The type of the `aid` field inside `accountGroups` has changed from an integer to a string. 3. The type of the `agentId`
field has changed from an integer to a string. 4. The type for the `enabled`, `verifySslCertificates`,
and `keepBrowserCache` fields has changed from
integer to boolean. 5. The values for the `agentState`,
`agentType`, and `ipv6Policy` fields are now all
lowercase, and spaces/underscores have been replaced with hyphens. o
For `agentState`, the values have changed from ["Online",
"Offline", "Disabled"] to ["online",
"offline", "disabled"] o
For `agentType`,
the value has changed from ["Cloud", "Enterprise",
"Enterprise Cluster"] to ["cloud", "enterprise",
"enterprise-cluster"] o
For `ipv6Policy`, the values have
changed from ["FORCE_IPV4", "PREFER_IPV6" or "FORCE_IPV6"]
to ["force-ipv4", "prefer-ipv6", "force-ipv6"] 6. The `groups` field has been renamed to `labels`. The
`groupId` field has been renamed to `labelId`, and its type has changed from integer to
string. 7. The timestamp
format for the `lastSeen` and `createdDate`
fields has changed. o v6: Date and
time in the format "YYYY-MM-DD HH:MM:SS" o v7: ISO 8601
format with timezone (e.g.,
"2024-11-14T05:09:50Z") 8. The `errorDetails` field is only present if an enterprise
agent presents at least one error. 9. The `targetOnly` field has been removed. Assigned tests, notification
rules, and cluster-members assigned are no longer returned by default unless
you include the `expand` query parameter in the request. Acceptable values
for the `expand` query parameter are ["cluster-member","test","notification-rule"]. |
Update an Agent
v6 |
v7 |
POST /v6/agents/{agentId}/update |
PUT /v7/agents/{agentId} |
Request
Body |
|
{ "agentName": "my updated agent name", "accountGroups": [
{"aid": 315},
{"aid": 362}
],
"tests": [
{"testId": 12065},
{"testId": 817}
],
"enabled": 1, "ipv6Policy":
"FORCE_IPV4", "keepBrowserCache": 1, "targetForTests": "1.2.3.4", "localResolutionPrefixes": [
"10.2.3.6/32",
"10.1.1.6/32" ] } |
{ "agentName": "thousandeyes-stg-va-254", "accountGroups": [
"1234", "1" ],
"tests": [ "12313145",
"12345" ],
"enabled": true,
"ipv6Policy": "force-ipv4", "keepBrowserCache": true, "targetForTests": "1.1.1.1", "localResolutionPrefixes": [ "10.2.3.3/24",
"10.2.3.3/25" ] } |
Response
Body |
|
|
|
Comments: 1. The URL and method have changed. 2. The
format of the value for the `accountGroups` field
has changed, it now accepts an array of account group IDs as strings. 3. The
format of the value for the `tests` field has changed, it now accepts an
array of test IDs as strings. 4. The
data type of the `enabled` and ` keepBrowserCache` fields
has changed from integer to boolean. 5. The
values for the `ipv6Policy` field have changed from ["FORCE_IPV4",
"PREFER_IPV6" or "FORCE_IPV6"] to
["force-ipv4", "prefer-ipv6", "force-ipv6"] |
Delete an Agent
v6 |
v7 |
POST /v6/agents/{agentId}/delete |
DELETE /v7/agents/{agentId} |
Comments: 1. The URL and method have changed. |
List all BGP Monitors
v6 |
v7 |
GET
/v6/bgp-monitors |
GET
/v7/monitors |
Response
Body |
|
{ "bgpMonitors": [ { "monitorId":
12345, "network": "JSC Datalogika (AS 8849)", "ipAddress":
"2407:d140:1:1fe::7ed2:1f31", "countryId":
"SG", "monitorName":
"Singapore-20", "monitorType":
"Public" } ] } |
{ "monitors":
[ { "countryId":
"SG", "monitorId":
"12345", "monitorName":
"Singapore-20", "monitorType":
"public", "ipAddress":
"2407:d140:1:1fe::7ed2:1f31", "network": "JSC Datalogika (AS 8849)" } ] } |
Comments: 1. The
URL has changed. 2. The
`bgpMonitors` field has been renamed to `monitors`.
3. The
type of the `monitorId` field has changed from
integer to string. |
Agent Clusters
Add Members
v6 |
v7 |
POST
/v6/agents/{agentId}/add-to-cluster |
POST
/v7/agents/{agentId}/cluster/assign |
Request
Body |
|
[agentId] |
{"agents":[ agentId ]} |
Response
Body |
|
See
“Get an Agent” above |
See
“Get an Agent” above |
Comments: 1. The
URL has changed. 2. The
format of the request body has changed from a list of agent
IDs, to an object with a single key, `agents`, mapped to a value which
is an array of agent IDs. |
Remove Members
v6 |
v7 |
POST
/v6/agents/{agentId}/remove-from-cluster |
POST
/v7/agents/{agentId}/cluster/unassign |
Request
Body |
|
[agentId] |
{"members":[ agentId ]} |
Response
Body |
|
See
“Get an Agent” above |
See
“Get an Agent” above |
Comments: 1. The
URL has changed. 2. The
format of the request body has changed from a list of agent
IDs, to an object with a single key, `members`, mapped to a value
which is an array of agent IDs. |
Convert to Agents
v6 |
v7 |
POST
/v6/agents/{agentId}/remove-from-cluster |
POST
/v7/agents/{agentId}/cluster/unassign |
Request
Body |
|
[agentId1,agentId2] |
{"members":[ agentId1, agentId2 ]} |
Response
Body |
|
See
“Get an Agent” above |
See
“Get an Agent” above |
Comments: 1. The
URL has changed. 2. The
format of the request body has changed from a list of agent
IDs, to an object with a single key, `members`, mapped to a value
which is an array of agent IDs. |
Agent Proxies
List Agent Proxies
v6 |
v7 |
GET
/v6/agents/proxies |
GET
/v7/agents/proxies |
Request
Body |
|
N/A |
N/A |
Response
Body |
|
{ "agentProxies":
[ { "proxyId":
698565, "aid": 159645, "proxyName": "Test a Proxy", "proxyType": "STATIC", "proxyLocation":
"http://www.someproxy.com:80", "proxyUser": "", "proxyPassword": "", "proxyBypassList": [ "www.noproxy.com" ], "proxyAuthType":
"PROXY_AUTH_TYPE_UNKNOWN", "flagLocal": false, "lastModified":
"2024-07-23 22:48:03" } ] } |
{ "agentProxies":
[ { "aid": "159645", "authType": "unknown", "bypassList": [ "www.noproxy.com" ], "lastModified":
"2024-07-23T22:48:03Z", "location":
"http://www.someproxy.com:80", "isLocalConfigured": false, "name":
"Test a Proxy", "password":
"", "proxyId":
"698565", "type":
"static", "user":
"" } ] } |
Comments: 1. The
`proxyName` field has been renamed to `name`. 2. The
`proxyType` field has been renamed to `type`. 3. The
`proxyLocation` field has been renamed to
`location`. 4. The
`proxyUser` field has been renamed to `user`. 5. The
`proxyPassword` field has been renamed to
`password`. 6. The
`proxyAuthType` field has been renamed to `authType`. 7. The
`flagLocal` field has been renamed to `isLocalConfigured`. 8. The
`proxyBypassList` field has been renamed to `bypassList`. 9. The
type of the `aid` and `proxyId` fields has changed
from integer to string. 10.
The values for the `type` and `authType` field are now lowercase. o Values
for the `type` field have changed from ["STATIC", "PAC"]
to ["static", "pac"] o Values
for the `authType` field have changed from ["BASIC",
"NTLM", "UNKNOWN"] to ["basic", "ntlm", "unknown"] 11.
The format of the `lastModified`
field has changed: o v6:
Date and time in the format "YYYY-MM-DD HH:MM:SS" o v7:
ISO 8601 format with timezone (e.g.,
"2020-03-27T00:11:46Z") 12.
The `bypassList`
field is only present when it is not empty. |
Agent Notification Rules
Get an Agent Notification Rule
v6 |
v7 |
GET
/v6/agent-notification-rules/{ruleId} |
GET
/v7/agents/notification-rules/{notificationRuleId} |
Response
Body |
|
{ "agentAlertRules": [ { "default":
1, "expression": "((lastContact >= 30 min))", "notifyOnClear":
0, "ruleId":
1234, "ruleName":
"Default Agent Offline Notification", "notifications": { "email": { "message":
"Test", "recipient": [
"noreply@thousandeyes.com" ] }, "thirdParty":
[ { "channel":
"@primoz", "integrationId": "sl-57", "integrationName": "Slack Primoz", "integrationType": "SLACK", "target":
"https://hooks.slack.com/services/asd/B2YRWA2RL/uL3lz43qxi1HyTDD3dRC" } ], "webhook": [ { "integrationId": "wb-41", "integrationName": "Test Hooks", "integrationType": "WEBHOOK", "target":
"https://example.com/hook" } ] }, "agents": [] } ] } |
{ "ruleId":
"281474976710706", "ruleName":
"Default Agent Offline Notification", "expression": "((lastContact >= 30 min))", "notifyOnClear":
true, "isDefault": false, "notifications": { "email": { "message": "This
test is failing, check as soon as possible.", "recipients":
[
"user1@thousandeyes.com", "user2@cisco.com" ] }, "thirdParty":
[ { "integrationId":
"sl-57", "integrationName":
"integrationSlack1", "integrationType":
"slack", "target":
"https://hooks.slack.com/services/asd/0VqDYEpidpHVAK397x8P", "channel": "#slackChannel" } ], "webhook": [ { "integrationId":
"wb-41", "integrationName":
"integrationWebhook1", "integrationType":
"webhook", "target": "
https://example.com/hook ", } ] }, "agents": [] } |
Comments: 1. The
` agentAlertRules`
field has been removed at the top-most level, and the response is no longer
an array, it is a single object. 2. The
`default` field has been renamed to `isDefault`,
and its type has changed from integer to boolean. 3. The
type of the `ruleId` field has changed from integer
to string. 4. The
type of the `notifyOnClear` field has changed from
integer to boolean. 5. For
`email` notifications, the `recipient` field has been renamed to
`recipients`. 6. For
`thirdParty` and `webhook` notifications, the
values of the `integrationType` field have changed
to lowercase. |
List all Agent Notification Rules
v6 |
v7 |
GET
v6/agent-notification-rules |
GET
/v7/agents/notification-rules |
Request
Body |
|
N/A |
N/A |
Response
Body |
|
{ "agentAlertRules":
[ { "ruleId":
221802, "ruleName":
"Default Agent Offline Notification", "expression": "((lastContact >= 30 min))", "notifyOnClear":
0, "default":
1 } ] } |
{ "agentAlertRules":
[ { "isDefault": true, "ruleId":
"221802", "ruleName":
"Default Agent Offline Notification", "expression": "((lastContact >= 30 min))", "notifyOnClear":
false } ] } |
Comments: 1. The
type of the `ruleId` field has changed from integer
to string. 2. The
type of the `notifyOnClear` field has changed from
integer to boolean. 3. The
`default` field has been renamed to `isDefault`,
and its type has changed from integer to boolean. |