This is a preview of our upcoming API version 7, subject to change without notice.
At this time, APIv6 is the recommended API version to use.

Dashboards

GET /v7/dashboards Dashboard list

This endpoint returns a list of dashboards configured in ThousandEyes in the context of the user’s login account group. Use this response to find a dashboard in your account group, which can be used to pull data of the specific dashboard.

Optional (Querystring) Parameters

  • aid={aid} optional and requires the user to be assigned to the target account group. Specifies the account group context of the request, obtained from the /account-groups endpoint. Specifying this parameter without the user being assigned to the target account will result in an error response. See Account group context for more information

Request

  • no request body

Response

Sends back an array of dashboards configured in the current account group. Each dashboard contains the following fields:

Field NameData TypeNotes
dashboardIdstringunique ID of the dashboard
titlestringtitle of the dashboard
descriptionstringdescription of the dashboard
isBuiltInbooleantrue for built-in dashboards, false for user-created dashboards
accountIdintegerID of the account that the dashboard belongs to
createdByintegerID of the user that created the dashboard
modifiedByintegerID of the user that last modified the dashboard
modifiedDatedateTimethe date/time when the dashboard was last modified
isPrivatebooleantrue if this dashboard is private
isDefaultForUserbooleantrue if this dashboard is the default for the user, false otherwise
isDefaultForAccountbooleantrue if this dashboard is the default for the account group, false otherwise
apiLinkstringlink to the dashboard

Example

$ curl https://api.thousandeyes.com/v7/dashboards.json \ -u noreply@thousandeyes.com:g351mw5xqhvkmh1vq6zfm51c62wyzib2

HTTP/1.1 200 OK Server: nginx Date: Mon, 03 Sep 2019 18:00:00 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: no-store X-Organization-Rate-Limit-Limit: 240 X-Organization-Rate-Limit-Remaining: 225 X-Organization-Rate-Limit-Reset: 1492076520 Strict-Transport-Security: max-age=31536000 X-Server-Name: 1-2

Body

[ { "dashboardId": "5e20da3b72fce8003257bcba", "title": "Dashboard Title A", "isBuiltIn": false, "accountId": 11, "createdBy": 6828, "modifiedBy": 6828, "modifiedDate": "2020-01-16 22:06:38", "isPrivate": false, "isDefaultForUser": false, "isDefaultForAccount": false, "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e20da3b72fce8003257bcba" }, ... ]

For error responses, see the response status codes documentation.

GET /v7/dashboards/{dashboardId} Dashboard detail

This endpoint returns a list of widgets configured in a ThousandEyes dashboard in addition to the dashboard’s metadata.

Optional (Querystring) Parameters

  • aid={aid} optional and requires the user to be assigned to the target account group. Specifies the account group context of the request, obtained from the /account-groups endpoint. Specifying this parameter without the user being assigned to the target account will result in an error response. See Account group context for more information

Request

  • {dashboardId} the ID of the desired dashboard which can be found from the /dashboards endpoint.
  • no request body

Response

Returns dashboard metadata information and associated widget list. Each widget will contain these properties in its configuration.

Field NameData TypeNotes
dashboardIdstringunique ID of the dashboard
titlestringtitle of the dashboard
createdByintegerID of the user who created the dashboard, as returned by the /v7/users API endpoint
modifiedByintegerID of the user who last modified the dashboard, as returned by the /v7/users API endpoint
modifiedDatestringYYYY-MM-DD HH:mm:ss formatted date of last dashboard modification time, shown in UTC
descriptionstringdescription of the dashboard
isBuiltInbooleantrue for built-in reports, false for user-created reports
accountIdintegerID of the account that the dashboard belongs to
isPrivatebooleantrue if this dashboard is private
isDefaultForUserbooleantrue if this dashboard is the default for the user, false otherwise
isDefaultForAccountbooleantrue if this dashboard is the default for the account group, false otherwise
widgetsarrayan array of widget objects
apiLinkstringlink to the dashboard

The data returned for every widget will depend on the widget type. For Report widgets, refer to the Reports section of the documentation. Dashboard widgets will contain the following common properties:

Field NameData TypeNotes
idstringunique widget identifier inside the report. Note: Only unique within the same report, not across all reports
typestringwidget type: Agent Status, Alert List, Color Grid, Alert Grid, Test Table
visualModestring(optional, defaults to Full) Visual mode in the UI: Full or Half screen
fixedTimespanobject(optional) fixed timespan to do aggregation over. Specified with a value and unit (Days, Hours, or Minutes).
titlestring(optional, defaults to widget type string) widget title
isEmbeddedbooleantrue if widget is marked as embedded, false otherwise
embedUrlstringif widget is marked as embedded, embedUrl is provided
apiLinkstringlink to the data of the widget

Each dashboard widget object will have some of these fields, depending on the widget type as they appear in the UI.

Agent Status

Field NameData TypeNotes
agentsstringtype of agent: Enterprise or Endpoint
showstringownership of agents: Owned Agents or All Assigned Agents

Alert List

Field NameData TypeNotes
alertTypesarraylist of alert types configured in the widget. An empty list means all alert types.
limitTointegerlimit the number of alerts to be shown in the widget
activeWithinobjecttimespan during which alerts had to be active to be shown in the widget

Color Grid

Field NameData TypeNotes
dataSourcestringdata source of widget. Can be Alerts, Cloud & Enterprise Agents, Devices, Endpoint Agents, etc.
metricGroupstringmetric group of widget as it appears in the UI. Can be Web - HTTP Server, Voice - SIP Server, Network - Agent to Agent, etc. Note: May not be required in some cases
metricstringmetric of widget. Can be Response Time, Total Error Count, Page Load Time, Marker Time, Packet Loss, Throughput, etc.
directionstringdirection of agent to agent metric: Source to Target, Target to Source, or Both Directions. (Required for some metrics)
measureobjectmeasure configuration of the widget
cardsstringProperty name to aggregate by. Can be Tests, Test Labels, Continents, Countries, etc.
groupCardsBystringProperty name to group cards by. Can be Tests, Test Labels, Continents, Countries, etc.
minScalefloat(optional) minimum scale configured in the widget
maxScalefloat(optional) maximum scale configured in the widget
unitstring(optional) Typically this is automatically configured. Possible options: Kbps, Mbps, Gbps, Kpps, Mpps, Gpps
columnsinteger(optional) number of columns: 1 or 2
limitinteger(optional) limit configured in the widget
sortBystringProperty to sort by: Value or Alphabetical. Exception: Multi-metric table widget
sortDirectionstringDirection to sort by: Ascending or Descending
filtersarray of filter mappings(optional) where the widget is filtered, filters property is shown. Each filter mapping will map a filter name to a list of filtered values. Filter keys can be Agents, Agent Labels, Tests, Monitors, etc. The list for each key holds the IDs of the property, i.e. testIds, agentIds, etc.

Test Table

Field NameData TypeNotes
filterobjectmultisearch filter (see below). Valid keys for filters: Anything, Test Name, Target, Test ID, Test Type, Label ID
excludeobjectmultisearch filter (see below)

Alert Grid

Field NameData TypeNotes
filterobjectmultisearch filter (see below). Valid keys for filters: Anything, Test Name, Test Type, Agent Name
excludeobjectmultisearch filter (see below)

Multi Search Filter

Field NameData TypeNotes
filterslistlist of object pairs with a key and a value as shown in the app.
typestringstring that defines the logical operator to be applied to filters: all or any

Example

$ curl https://api.thousandeyes.com/v7/dashboards/1.json \ -u noreply@thousandeyes.com:g351mw5xqhvkmh1vq6zfm51c62wyzib2

HTTP/1.1 200 OK Server: nginx Date: Mon, 03 Sep 2019 18:00:00 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: no-store X-Organization-Rate-Limit-Limit: 240 X-Organization-Rate-Limit-Remaining: 232 X-Organization-Rate-Limit-Reset: 1492076520 Strict-Transport-Security: max-age=31536000 X-Server-Name: 1-2

Body

{ "dashboardId": "5e1f7a99143ae6004fdc3bb4", "title": "Dashboard API", "isBuiltIn": false, "accountId": 11, "createdBy": 6103, "modifiedBy": 6103, "modifiedDate": "2020-01-16 21:09:09", "isPrivate": false, "isDefaultForUser": true, "isDefaultForAccount": false, "widgets": [ { "id": "xtzbr", "type": "Color Grid", "title": "Color Grid", "visualMode": "Full", "dataSource": "Cloud & Enterprise Agents", "metricGroup": "Web - HTTP Server", "metric": "Response Time", "measure": { "type": "Mean" }, "fixedTimespan": { "value": 1, "unit": "Hours" }, "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4/xtzbr", "cards": "Tests", "groupCardsBy": "Agents", "columns": 1, "sortBy": "Value", "sortDirection": "Ascending" }, { "id": "vxqve", "type": "Agent Status", "title": "Agent Status", "visualMode": "Full", "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4/vxqve", "agents": "Enterprise Agents", "show": "Owned Agents" }, { "id": "0kepj", "type": "Alert List", "title": "Alert List", "visualMode": "Full", "fixedTimespan": { "value": 2, "unit": "Days" }, "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4/0kepj", "alertTypes": [ "Voice - RTP Stream", "DNS+ Server", "Network - End-to-End (Server)", "EndpointWeb - HTTP Server", "Web - FTP Server", "Voice - SIP Server", "Device Interface", "Web - Page Load", "DNS Server", "DNS+ Domain", "Web - Transaction", "Endpoint - End-to-End (Server)", "Network - End-to-End (Agent)", "Network - Path Trace", "Endpoint - Path Trace", "DNSSEC", "Web - HTTP Server", "Device", "Web - Transaction (Classic)", "DNS Trace", "Routing - BGP" ], "limitTo": 10, "activeWithin": 3600 }, { "id": "ghhli", "type": "Alert Grid", "title": "Alert Grid", "visualMode": "Full", "fixedTimespan": { "value": 5, "unit": "Minutes" }, "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4/ghhli", "alertType": "Agents", "filter": { "filters": [ { "key": "Test Type", "value": "DnsServer" } ], "type": "all" }, "exclude": { "filters": [ { "key": "Anything", "value": "Some string" } ], "type": "any" } }, { "id": "o6mjm", "type": "Test Table", "title": "Tests", "visualMode": "Full", "fixedTimespan": { "value": 12, "unit": "Hours" }, "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4/o6mjm", "filter": { "filters": [ { "key": "Test Name", "value": "123" } ], "type": "all" }, "exclude": { "filters": [ { "key": "Label ID", "value": "25236" } ], "type": "all" } } ], "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4" }

For error responses, see the response status codes documentation.

GET /v7/dashboards/{dashboardId}/{widgetId} Dashboard widget data

This endpoint returns the raw data shown in a particular widget of a given dashboard.

Optional (Querystring) Parameters

  • aid={aid} optional, changes the account group context of the current request. If an invalid account group ID is specified as a parameter, the response will come back as an HTTP/400 error.
  • rows={integer} optional, the number of elements to receive per page. Only available for Alert List and Test Table Widget.
  • page={integer} optional, specifies the page number for the data response. Only available in Test Table widget.
  • sortProperty={string} optional, specifies the property to sort by. Only available for Alert List and Test Table Widget. See below for accepted values for each widget.
  • sortDirection={string} optional, specifies the direction to sort by. Only available for Alert List and Test Table Widget. The possible values are Ascending or Descending. The default value is Descending.

Request

  • {dashboardId} the ID of the dashboard you’re interested in.

  • {widgetId} the ID of the widget for which to retrieve data.

  • no request body

Response

Sends back a list of data elements associated with the dashboard. For Report widgets refer to the Reports page in the documentation. For Dashboard widgets, the data is returned with the following fields:

Field NameData TypeNotes
dateFromdateTimethe start of the data shown in the API output
dateTodateTimeend of the data window shown in the API output
binSizeintegerduration of each bin (if applicable)
groupLabelsarray of group labelssee groupLabel fields below (if widget groups by any property)
data.pointsarray of data pointssee data point below
dataarray of non-aggregated pointssee below for Test Table, Alert Grid, Alert List and Agent Status
statusstringMessage for not fully configured widget or no data

The fields in data.point are the following:

Field NameData TypeNotes
timestampintegertimestamp of the aggregated data point
numberOfDataPointsintegernumber of test data points aggregated into the widget data point
valuefloataggregated value
groupsarray of group property and valuethis corresponds to the groups used for the aggregation

The fields returned in data are dependent on the widget:

Agent Status

Field NameData TypeNotes
summaryobjectobject with a summary of how many agents are online, offline and disabled
agentsarraylist of agents

Each agent in the agent status data response will contain these properties

Field NameData TypeNotes
agentIdstringID of the agent
statusstringONLINE, OFFLINE or DISABLED
ipInfoobjectinformation about the IP of the agent if Enterprise or operating system version for Endpoint
agentNamestringname of the agent
locationobjectcontains the latitude, longitude and locationName of the agent

Alert List

This widget accepts the following query params to paginate the response:

  • rows={integer} optional, the number of alerts in the response. The default value is the limitBy configured for the widget.
  • sortProperty={string} optional, specifies the property to sort by. The possible values are alertStatus or startTime. The default value is alertStatus
Field NameData TypeNotes
totalAlertsintegertotal number of alerts that were active within the timespan configured
activeAlertsintegernumber of the alerts that are still active
alertsarrayarray of alerts

Each alert in the alert list data response will contain these properties

Field NameData TypeNotes
activebooleantrue or false
alertIdintegerid of the alert
testIdintegerid of the test
sourceIdintegerid of the agent, monitor or device producing the alert
sourceNamestringname of the agent, monitor or device producing the alert
alertRulestringname of the alert rule that this alert belongs to
alertTypestringname of the alert type
startTimestringdate when the alert was first active
durationInSecondsintegernumber of seconds the alert was active. If it’s still active, this number will increase every second.

Alert Grid

Field NameData TypeNotes
alertTypestringtype of alerts: Agent or BGP
totalAlertsintegertotal number of alerts that were active in the last 24 hours
numActiveAlertsintegernumber of the alerts that are active
numClearedOrDisabledAlertsInLastDayintegernumber of alerts that were cleared or disabled in the last 24 hours
alertsarrayarray of source alerts

Each source alert in the alert grid data response will contain these properties

Field NameData TypeNotes
isActivebooleantrue or false
alertIdintegerid of the alert
testIdintegerid of the test
prefixIdintegerid of the monitor prefix
sourceIdintegerid of the agent or monitor or device producing the alert
alertTypestringname of the alert type
startTimestringdate when the alert was first active
durationintegernumber of seconds the alert was active. Max is 24 hours
locationstringname of the location of the agent or monitor producing the alert

Test Table

This widget accepts the following query params to paginate the response:

  • rows={integer} optional, the number of alerts in the response. The default value is 10.
  • page={integer} optional, specifies the page number for the data response. The default value is 1.
  • sortProperty={string} optional, specifies the property to sort by. The possible values are alertStatus, testName or testType. The ordering may differ from the web application. The default value is alertStatus.
Field NameData TypeNotes
testsarraylist of test

Each test in the test table data response will contain these properties

Field NameData TypeNotes
testIdintegerid of the test
testNamestringname of the test
targetstringtarget configured in the test
testTypestringtype of test
alertStatusintegernumber of active alerts for the test
isSharedbooleanflag set to true if the test has been shared
graphletsarraylist of timeseries points for test metrics in the last 12 hours

Each graphlet object will contain these properties

Field NameData TypeNotes
metricstringname of the metric
testIdintegerid of the test
pointsarraylist of x and y datapoints where x is the timestamp of the point and y is the value

Example

$ curl https://api.thousandeyes.com/v7/dashboards/2/vlvb1.json \ -u noreply@thousandeyes.com:g351mw5xqhvkmh1vq6zfm51c62wyzib2

HTTP/1.1 200 OK Server: nginx Date: Mon, 02 Sep 2019 18:00:00 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: no-store X-Organization-Rate-Limit-Limit: 240 X-Organization-Rate-Limit-Remaining: 235 X-Organization-Rate-Limit-Reset: 1492076520 Strict-Transport-Security: max-age=31536000 X-Server-Name: 1-2

Body

Color Grid

{ "dateFrom": "2020-01-16 22:15:00", "dateTo": "2020-01-16 23:15:00", "groupLabels": [], "binSize": 300, "data": { "points": [ { "timestamp": 1579216200, "numberOfDataPoints": 3270, "value": 344.00582535755046, "groups": [ { "groupProperty": "Continents", "groupValue": "AS" } ] }, { "timestamp": 1579216200, "numberOfDataPoints": 5082, "value": 156.37737466049668, "groups": [ { "groupProperty": "Continents", "groupValue": "EU" } ] }, ... ] } }

Alert Grid

{ "dateFrom": "2020-01-15 23:25:13", "dateTo": "2020-01-16 23:25:13", "binSize": 300, "data": { "alertGridData": { "alertType": "Agents", "alerts": [ { "testId": 68185, "sourceId": 37, "alertId": 1422994, "isActive": true, "alertType": "PathTrace", "location": "Singapore", "startTime": "2019-08-06 16:50:18", "duration": 86400 }, { "testId": 68185, "sourceId": 813, "alertId": 1422994, "isActive": true, "alertType": "PathTrace", "location": "Tokyo, Japan", "startTime": "2019-08-06 16:50:11", "duration": 86400 }, ... ], "totalAlerts": 14, "numActiveAlerts": 14, "numClearedOrDisabledAlertsInLastDay": 0 } } }

Alert List

{ "dateFrom": "2020-01-16 22:28:52", "dateTo": "2020-01-16 23:28:52", "data": { "alertsData": { "totalAlerts": 590, "activeAlerts": 483, "alerts": [ { "alertId": 2004945, "testId": 56512, "ruleId": 281724, "alertSource": "AI Team Web Http Test 2", "alertRule": "AI dynamic baseline verification 11-21", "alertType": "Web - HTTP Server", "startTime": "2020-01-16 23:28:05", "durationInSeconds": 47, "active": true }, { "alertId": 2004941, "testId": 67035, "ruleId": 202156, "alertSource": "A2A uni CEA-13201 T10 Copy", "alertRule": "Delay always on", "alertType": "Network - Path Trace", "startTime": "2020-01-16 23:26:07", "durationInSeconds": 165, "active": true }, ... ] } } }

Test Table

{ "pages": { "next": "https://api.thousandeyes.com/v7/dashboards/5e2f669636256d0053617499/cogto?page=2" }, "dateFrom": "2020-01-30 17:04:10", "dateTo": "2020-01-31 05:04:10", "binSize": 300, "data": { "tests": [ { "testId": 68256, "testName": "$$$", "target": "https://www.google.com", "testType": "Web - HTTP Server", "alertStatus": 24, "isShared": true, "graphlets": [ { "metric": "Availability", "testId": 68256, "points": [ { "x": 1580403900, "y": 0.0 }, ... ] }, { "metric": "Response Time", "testId": 68256, "points": [ { "x": 1580406780, "y": 128.249 }, ... ] } ] }, ... ] } }

Agent Status

{ "dateTo": "2020-01-31 05:07:18", "binSize": 300, "data": { "summary": { "online": 10, "offline": 2, "disabled": 3 }, "agents": [ { "agentId": "6522", "status": "OFFLINE", "ipInfo": { "publicIp": "172.58.92.31", "privateIp": "172.17.0.3" }, "agentName": "0c3898000117", "location": { "latitude": 37.77493, "longitude": -122.41942, "locationName": "San Francisco, California, US" } }, ... ] } }

For error responses, see the response status codes documentation.

POST /v7/dashboards/create Creating a dashboard

This endpoint creates a new dashboard for the Login Account Group. User must have the Edit dashboard templates for all users in account group permission (Account Admin) or Edit own dashboard templates permission (Regular User) to create dashboards.

Optional (Querystring) Parameters

  • aid={aid} optional and requires the user to be assigned to the target account group, specifies the account group context of the request, obtained from the /account-groups endpoint. Specifying this parameter without the user being assigned to the target account will result in an error response. See Account group context for more information.

Request

A Dashboard object with or without Widgets. See Dashboard Detail for reference.

Response

Sends back the created dashboard configured in the current account group. Each dashboard contains the following fields:

Field NameData TypeNotes
dashboardIdstringunique ID of the dashboard
titlestringtitle of the dashboard
isBuiltInbooleantrue for built-in dashboards, false for user-created dashboards
accountIdintegerID of the account that the dashboard belongs to
createdByintegerID of the user that created the dashboard
modifiedDatedateTimethe date/time when the dashboard was last modified
isPrivatebooleantrue if this dashboard is private
isDefaultForUserbooleantrue if this dashboard is the default for the user, false otherwise
isDefaultForAccountbooleantrue if this dashboard is the default for the account group, false otherwise
widgetsarray of widget objectsan array of widget objects
apiLinkstringlink to the dashboard

The user can specify custom widget ids if they prefer to do so. These IDs have to match a 5 characters alphanumeric string and be unique across all widgets in the dashboard. Alternatively, the widget ids will be generated for them.

Example

$ curl https://api.thousandeyes.com/v7/dashboards/create \ -d '{ "title": "HTTP Server Widgets" }' \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -u noreply@thousandeyes.com:g351mw5xqhvkmh1vq6zfm51c62wyzib2

HTTP/1.1 200 OK Server: nginx Date: Mon, 03 Sep 2019 18:00:00 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: no-store X-Organization-Rate-Limit-Limit: 240 X-Organization-Rate-Limit-Remaining: 237 X-Organization-Rate-Limit-Reset: 1492076520 Strict-Transport-Security: max-age=31536000 X-Server-Name: 1-2

Body

{ "dashboardId": "5e1f7a99143ae6004fdc3bb4", "title": "HTTP Server Widgets", "isBuiltIn": false, "accountId": 1, "createdBy": 1, "isPrivate": false, "isDefaultForUser": false, "isDefaultForAccount": false, "widgets": [...], "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4" }

For error responses, see the response status codes documentation.

POST /v7/dashboards/{dashboardId}/update Updating a dashboard

This endpoint updates an existing dashboard for the account group that the user belongs to. Users with the Edit dashboard templates for all users in account group permission (Account Admin) can update any dashboard. Users with Edit own dashboard templates permission (Regular User) can only update the dashboards they have created.

  • Note: This endpoint will do a FULL update, replacing the existing dashboard template with the object sent in the request. If a partial update is required, it’s recommended to first retrieve the dashboard, modify the dashboard object and then send it on the update.

Optional (Querystring) Parameters

  • aid={aid} optional and requires the user to be assigned to the target account group. Specifies the account group context of the request, obtained from the /account-groups endpoint. Specifying this parameter without the user being assigned to the target account will result in an error response. See Account group context for more information

Request

  • {dashboardId} the ID of the dashboard you’re interested in.

A Dashboard object with or without Widgets. See Dashboard Detail for reference.

Response

Sends back the updated dashboard. Each dashboard contains the following fields:

Field NameData TypeNotes
dashboardIdstringunique ID of the dashboard
titlestringtitle of the dashboard
isBuiltInbooleantrue for built-in dashboards, false for user-created dashboards
accountIdintegerID of the account that the dashboard belongs to
createdByintegerID of the user that created the dashboard
modifiedDatedateTimethe date/time when the dashboard was last modified
isPrivatebooleantrue if this dashboard is private
isDefaultForUserbooleantrue if this dashboard is the default for the user, false otherwise
isDefaultForAccountbooleantrue if this dashboard is the default for the account group, false otherwise
widgetsarray of widget objectsan array of widget objects
apiLinkstringlink to the dashboard

The user can specify custom widgetIds if they prefer to do so. These IDs have to match a 5 characters alphanumeric string and be unique across all widgets in the dashboard. Alternatively, the widgetIds will be generated for them.

Example

$ curl https://api.thousandeyes.com/v7/dashboards/1/update \ -d '{ "title": "New Dashboard Updated" }' \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -u noreply@thousandeyes.com:g351mw5xqhvkmh1vq6zfm51c62wyzib2

HTTP/1.1 200 OK Server: nginx Date: Mon, 03 Sep 2019 18:00:00 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: no-store X-Organization-Rate-Limit-Limit: 240 X-Organization-Rate-Limit-Remaining: 238 X-Organization-Rate-Limit-Reset: 1492076520 Strict-Transport-Security: max-age=31536000 X-Server-Name: 1-2

Body

[ { "dashboardId": "5e1f7a99143ae6004fdc3bb4", "title": "HTTP Server Widgets", "isBuiltIn": false, "accountId": 1, "createdBy": 1, "isPrivate": false, "isDefaultForUser": false, "isDefaultForAccount": false, "widgets": [...], "apiLink": "https://api.thousandeyes.com/v7/dashboards/5e1f7a99143ae6004fdc3bb4" }, ... ]

For error responses, see the response status codes documentation.

POST /v7/dashboards/{dashboardId}/delete Deleting a dashboard

Deletes the specified dashboard in ThousandEyes, based on the dashboardId provided in the API request. Users with the Edit dashboard templates for all users in account group permission (Account Admin) can delete any dashboard. Users with Edit own dashboard templates permission (Regular User) can only delete the dashboards they have created.

Optional (Querystring) Parameters

  • aid={aid} optional and requires the user to be assigned to the target account group, specifies the account group context of the request, obtained from the /account-groups endpoint. Specifying this parameter without the user being assigned to the target account will result in an error response. See Account group context for more information

Request

  • {dashboardId} the ID of the dashboard you would like to delete

Response

If the dashboard is successfully deleted, an HTTP 204 NO CONTENT response will be returned. If user lacks the permissions to delete the dashboard, an HTTP 401 UNAUTHORIZED response will be returned.

Response has no body.

Example

Please note, dashboard deletion is not allowed on the Sandbox API account, and will not work if attempted. The following example is presented for documentation and reference purposes only.

$ curl https://api.thousandeyes.com/v7/dashboards/1/delete \ -u noreply@thousandeyes.com:g351mw5xqhvkmh1vq6zfm51c62wyzib2

HTTP/1.1 204 No Content Server: nginx Date: Mon, 03 Sep 2019 18:00:00 GMT Content-Type: application/json;charset=UTF-8 Connection: keep-alive Cache-Control: no-store X-Organization-Rate-Limit-Limit: 970 X-Organization-Rate-Limit-Remaining: 968 X-Organization-Rate-Limit-Reset: 1489585680 Strict-Transport-Security: max-age=31536000 X-Server-Name: 1-3

For error responses, see the response status codes documentation.