{"type":"api","title":"List endpoint network topologies probes","meta":{"id":"/apps/pubhub/media/000-v7-apis/5b3454a4300b838cc17f7b2cdc0690fdd15058d5/85928a65-da17-3012-a6df-bb224dd8278a","info":{"description":"Retrieve results for scheduled and dynamic tests on endpoint agents.","title":"Endpoint Test Results API","version":"7.0.34"},"security":[{"BearerAuth":[]}],"tags":[{"name":"Network Endpoint Scheduled Test Results"},{"name":"HTTP Server Endpoint Scheduled Test Results"},{"name":"Network Dynamic Endpoint Test Results"},{"name":"Real User Endpoint Test Results"},{"name":"Local Network Endpoint Test Results"}],"openapi":"3.0.1","servers":[{"description":"ThousandEyes API production URL","url":"https://api.thousandeyes.com/v7"}],"securitySchemes":{"BearerAuth":{"description":"Bearer authentication token","scheme":"bearer","type":"http"}}},"spec":{"description":"Returns a list of all endpoint local network topologies probes. \nResults from the last round are provided unless an explicit start and end is provided with `startDate`, `endDate` or `window` optional parameters.\n\n## Request body filters\nThis endpoint supports complex filtering using the request body.\nIt is important these filters remain unaltered when making use of pagination, otherwise the results will not be coherent with the original request.\n\n### Multiple filter fields\nWhen multiple filter fields are provided, a logical `AND` is applied between the filters.\n ```\ncurl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter'\n--header 'Authorization: Bearer $token'\n--header 'Content-Type: application/json'\n--data-raw '{\n \"searchFilters\": {\n \"platform\": [ \"mac\" ],\n \"domain\": [ \"thousandeyes.com\" ]\n }}'\n```\n\n### Filter field with multiple values\nWhen a filter field contains multiple values, a logical `OR` is applied between the filter values.\n ```\ncurl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter'\n--header 'Authorization: Bearer $token'\n--header 'Content-Type: application/json'\n--data-raw '{\n \"searchFilters\": {\n \"networkId\": [ \"660b34109d12\", \"660b34109d15\" ]\n }}'\n```\n\n### Combination of request parameters and body filters\n```\ncurl --location --request POST 'https://api.thousandeyes.com/v7/endpoint/test-results/local-networks/topologies/filter?window=12h'\n--header 'Authorization: Bearer $token'\n--header 'Content-Type: application/json'\n--data-raw '{\n \"searchFilters\": {\n \"platform\": [ \"mac\" ],\n \"domain\": [ \"thousandeyes.com\" ],\n \"networkId\": [ \"660b34109d12\", \"660b34109d15\" ]\n }}'\n```\n\n### Warning\nNote that a maximum of 12h worth of data can be retrieved at once. \nIf you need more, you need to make multiple requests.\n\nReturns a `results` array of network topology probes. \nNetwork topology probes shown are from the latest round, or based on the time range specified.\n","operationId":"filterLocalNetworksTestResultsTopologies","parameters":[{"description":"A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.","in":"query","name":"aid","required":false,"schema":{"example":"1234","type":"string"}},{"description":"A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks.\nFor a precise date range, use `startDate` and `endDate`.","in":"query","name":"window","schema":{"example":"12h","pattern":"^\\d+(?:[smhdw]{1})?$","type":"string"}},{"description":"Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.","in":"query","name":"startDate","schema":{"example":"2022-07-17T22:00:54Z","format":"date-time","type":"string"}},{"description":"Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.","in":"query","name":"endDate","schema":{"example":"2022-07-18T22:00:54Z","format":"date-time","type":"string"}},{"description":"(Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter.","in":"query","name":"cursor","schema":{"type":"string","example":null}},{"description":"This parameter is optional and determines whether to expand resources related to local network topologies. By default, no expansion occurs when this query parameter is omitted. To expand a specific resource, such as `systemMetricDetails`, append `?expand=system-metric-detail` to the query.","explode":false,"in":"query","name":"expand","required":false,"schema":{"example":["system-metric-detail"],"items":{"enum":["system-metric-detail"],"example":"system-metric-detail","type":"string","$$ref":"#/components/schemas/ExpandLocalNetworkTopologyOptions"},"type":"array"},"style":"form"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"searchFilters":{"properties":{"location":{"description":"Location of the endpoint agent.","example":["San Francisco Bay Area","Germany"],"items":{"type":"string"},"type":"array"},"connection":{"items":{"enum":["unknown","wireless","ethernet","modem","virtual","loopback","other"],"example":"wireless","type":"string","$$ref":"#/components/schemas/InterfaceHardwareType"},"type":"array"},"platform":{"items":{"description":"OS platform types. Platform \"linux\" was recently renamed to \"roomos\".","enum":["windows","roomos","phoneos","elux","linux","mac","unknown"],"example":"mac","type":"string","$$ref":"#/components/schemas/Platform"},"type":"array"},"gateway":{"description":"Endpoint agent default gateway IP address.","example":["78.153.54.204","78.153.54.206"],"items":{"type":"string"},"type":"array"},"proxyTarget":{"description":"Endpoint agent proxy IP address.","example":["78.153.54.204","78.153.54.206"],"items":{"type":"string"},"type":"array"},"vpnTarget":{"description":"Endpoint agent VPN endpoint IP address.","example":["78.153.54.204","78.153.54.206"],"items":{"type":"string"},"type":"array"},"agentId":{"description":"Endpoint agent ID.","example":["3fde6422-f119-40e1-ae32-d08a1243c038","236e6f18-9637-4a2f-b15f-7aa6a29c9fce"],"items":{"format":"uuid","type":"string"},"type":"array"},"networkId":{"description":"Network ID.","example":["660b34109d12","660b34109d15"],"items":{"type":"string"},"type":"array"},"ssid":{"description":"WiFi SSID.","example":["wifi-name","other-room-wifi"],"items":{"type":"string"},"type":"array"},"bssid":{"description":"WiFi BSSID.","example":["8c:68:c8:a5:0a:8c","0c:51:01:e4:3e:d0"],"items":{"type":"string"},"type":"array"},"type":{"description":"Web site base domain visited during the session.","example":["vpn","proxy"],"items":{"enum":["vpn","proxy","gateway"],"example":"vpn","type":"string","$$ref":"#/components/schemas/NetworkTopologyType"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/EndpointNetworkTopologyResultRequestFilter"}},"type":"object","$$ref":"#/components/schemas/EndpointNetworkTopologyResultRequest"}}}},"responses":{"200":{"content":{"application/hal+json":{"schema":{"properties":{"results":{"items":{"properties":{"agentId":{"description":"Unique ID of endpoint agent, from `/endpoint/agents` endpoint.","example":"861b7557-cd57-4bbb-b648-00bddf88ef49","format":"uuid","readOnly":true,"type":"string"},"date":{"description":"UTC date when endpoint network topology took place (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"networkTopologyId":{"description":"Network topology ID. Each network topology occurrence has a unique ID.","example":"00160:54c3a4b180c6:1490536500:c7a58c49","readOnly":true,"type":"string"},"roundId":{"description":"Epoch time (seconds) indicating the start time of the round.","example":1384309800,"readOnly":true,"type":"integer"},"target":{"description":"IP of the target the network topology was performed against. This is typically a default gateway, proxy or VPN endpoint.","example":"10.0.2.2","readOnly":true,"type":"string"},"targetPort":{"description":"Port of the target the network topology was performed against.","example":80,"readOnly":true,"type":"integer"},"type":{"enum":["vpn","proxy","gateway"],"example":"vpn","type":"string","$$ref":"#/components/schemas/NetworkTopologyType"},"icmpPing":{"properties":{"avgRtt":{"description":"Ping average response time.","example":7,"readOnly":true,"type":"integer"},"maxRtt":{"description":"Ping maximum response time.","example":66,"readOnly":true,"type":"integer"},"meanDevRtt":{"description":"Ping mean standard deviation response time.","example":11,"readOnly":true,"type":"integer"},"minRtt":{"description":"Ping minimum response time.","example":1,"readOnly":true,"type":"integer"},"pktsReceived":{"description":"Ping packets received.","example":10,"readOnly":true,"type":"integer"},"pktsSent":{"description":"Ping packets sent.","example":10,"readOnly":true,"type":"integer"},"error":{"description":"Only present when there is an error.","example":"An operation timed out.","readOnly":true,"type":"string"},"infoFlags":{"example":["TE_INFO_ICMP_BLOCKED_BY_FIREWALL"],"items":{"type":"string"},"readOnly":true,"type":"array"}},"type":"object","$$ref":"#/components/schemas/NetworkPing"},"isIcmpBlocked":{"description":"Set to `true` if network target is blocking ICMP echo (ping) queries.","example":true,"readOnly":true,"type":"boolean"},"tcpConnect":{"properties":{"rtt":{"description":"Represents the number of milliseconds required to establish TCP connectivity with the target","example":77.777,"format":"double","readOnly":true,"type":"number"},"errorCode":{"description":"Only present when there is an error","example":"ERR_TIMED_OUT","readOnly":true,"type":"string"},"error":{"description":"Only present when there is an error","example":"An operation timed out.","readOnly":true,"type":"string"},"infoFlags":{"example":["TE_INFO_ICMP_BLOCKED_BY_FIREWALL"],"items":{"type":"string"},"readOnly":true,"type":"array"}},"type":"object","$$ref":"#/components/schemas/TcpConnect"},"systemMetrics":{"properties":{"startTimeMs":{"description":"The start time of metrics collection, expressed in milliseconds since the Epoch.","example":1581508857327,"format":"int64","readOnly":true,"type":"integer"},"endTimeMs":{"description":"The end time of metrics collection, expressed in milliseconds since the Epoch.","example":1581508867333,"format":"int64","readOnly":true,"type":"integer"},"cpuUtilization":{"properties":{"min":{"description":"The minimum sampled usage value recorded during the monitored period.","example":0.22,"format":"double","maximum":1,"minimum":0,"readOnly":true,"type":"number"},"max":{"description":"The maximum sampled usage value recorded during the monitored period.","example":0.75,"format":"double","maximum":1,"minimum":0,"readOnly":true,"type":"number"},"mean":{"description":"The mean (average) sampled usage value recorded during the monitored period.","example":0.55,"format":"double","maximum":1,"minimum":0,"readOnly":true,"type":"number"},"median":{"description":"The median sampled usage value recorded during the monitored period.","example":0.61,"format":"double","maximum":1,"minimum":0,"readOnly":true,"type":"number"},"stdDev":{"description":"The standard deviation of sampled usage values recorded during the monitored period.","example":0.01,"format":"double","maximum":1,"minimum":0,"readOnly":true,"type":"number"},"count":{"description":"The total number of samples collected during the monitored period.","example":150,"readOnly":true,"type":"integer"}},"type":"object","$$ref":"#/components/schemas/CpuUtilization"},"physicalMemoryUsedBytes":{"properties":{"min":{"description":"The minimum sampled memory usage value recorded during the monitored period.","example":1.2,"format":"double","readOnly":true,"type":"number"},"max":{"description":"The maximum sampled memory usage value recorded during the monitored period.","example":2.5,"format":"double","readOnly":true,"type":"number"},"mean":{"description":"The mean (average) value of memory usage sampled over the monitored period.","example":1.77,"format":"double","readOnly":true,"type":"number"},"median":{"description":"The median value of memory usage sampled over the monitored period.","example":1.85,"format":"double","readOnly":true,"type":"number"},"stdDev":{"description":"The standard deviation of memory usage sampled during the monitored period.","example":0.25,"format":"double","readOnly":true,"type":"number"},"count":{"description":"The total number of samples collected during the monitored period.","example":155,"readOnly":true,"type":"integer"}},"type":"object","$$ref":"#/components/schemas/PhysicalMemoryUsedBytes"},"physicalMemoryTotalBytes":{"description":"Total physical memory of the system.","example":1024,"format":"int64","readOnly":true,"type":"integer"}},"type":"object","$$ref":"#/components/schemas/SystemMetrics"},"systemMetricDetails":{"description":"Details of system metrics that contain top applications by CPU/memory usage.\nNot populated by default.\n","properties":{"topCpuApplications":{"description":"A list of applications that consume more than 2% of the CPU.","items":{"properties":{"name":{"description":"The name of the application.","example":"Webex","type":"string"},"totalCpu":{"description":"The total CPU usage by all application processes.","example":0.5,"format":"double","type":"number"},"totalMemoryPercentage":{"description":"The total percentage of memory used by all application processes.","example":0.22,"format":"double","type":"number"},"totalMemoryBytes":{"description":"The total memory in bytes used by all application processes.","example":1023334,"format":"int64","type":"integer"},"processes":{"description":"A list of application processes.","items":{"properties":{"name":{"description":"The name of the process.","example":"Webex background","type":"string"},"pid":{"description":"The process ID.","example":15632,"type":"integer"},"cpu":{"description":"The CPU usage by the process as a percentage (e.g., 0.5 for 50% CPU usage).","example":0.5,"format":"double","type":"number"},"memoryPercentage":{"description":"The memory usage by the process as a percentage (e.g., 0.22 for 22%).","example":0.22,"format":"double","type":"number"},"memoryBytes":{"description":"The memory usage by the process in bytes.","example":1023334,"format":"int64","type":"integer"}},"type":"object","$$ref":"#/components/schemas/ProcessMetrics"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/ApplicationMetrics"},"readOnly":true,"type":"array"},"topMemoryApplications":{"description":"A list of applications that consume more than 2% of the RAM.","items":{"properties":{"name":{"description":"The name of the application.","example":"Webex","type":"string"},"totalCpu":{"description":"The total CPU usage by all application processes.","example":0.5,"format":"double","type":"number"},"totalMemoryPercentage":{"description":"The total percentage of memory used by all application processes.","example":0.22,"format":"double","type":"number"},"totalMemoryBytes":{"description":"The total memory in bytes used by all application processes.","example":1023334,"format":"int64","type":"integer"},"processes":{"description":"A list of application processes.","items":{"properties":{"name":{"description":"The name of the process.","example":"Webex background","type":"string"},"pid":{"description":"The process ID.","example":15632,"type":"integer"},"cpu":{"description":"The CPU usage by the process as a percentage (e.g., 0.5 for 50% CPU usage).","example":0.5,"format":"double","type":"number"},"memoryPercentage":{"description":"The memory usage by the process as a percentage (e.g., 0.22 for 22%).","example":0.22,"format":"double","type":"number"},"memoryBytes":{"description":"The memory usage by the process in bytes.","example":1023334,"format":"int64","type":"integer"}},"type":"object","$$ref":"#/components/schemas/ProcessMetrics"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/ApplicationMetrics"},"readOnly":true,"type":"array"}},"type":"object","$$ref":"#/components/schemas/SystemMetricDetails"}},"type":"object","$$ref":"#/components/schemas/LocalNetworkTopologyResultBase"},"type":"array","x-paginated-items":true},"startDate":{"description":"(Optional) When passing `window` or `startDate` parameter, the client will also receive the `startDate` field indicating the UTC start date of the data's time range being retrieved (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"endDate":{"description":"(Optional) When passing `window` or `endDate` parameter, the client will also receive the `endDate` field indicating the UTC end date of the data's time range being retrieved (ISO date-time format).","example":"2022-07-18T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"_links":{"description":"A links object containing a related link for forward pagination.","properties":{"next":{"description":"A hyperlink from the containing resource to a URI.","properties":{"href":{"description":"Its value is either a URI [RFC3986] or a URI template [RFC6570].","example":"https://api.thousandeyes.com/v7/link/to/resource/id","type":"string"},"templated":{"description":"Should be true when the link object's \"href\" property is a URI template.","type":"boolean"},"type":{"description":"Used as a hint to indicate the media type expected when dereferencing the target resource.","type":"string"},"deprecation":{"description":"Its presence indicates that the link is to be deprecated at a future date. Its value is a URL that should provide further information about the deprecation.","type":"string"},"name":{"description":"Its value may be used as a secondary key for selecting link objects that share the same relation type.","type":"string"},"profile":{"description":"A URI that hints about the profile of the target resource.","type":"string"},"title":{"description":"Intended for labelling the link with a human-readable identifier","type":"string"},"hreflang":{"description":"Indicates the language of the target resource","type":"string"}},"required":["href"],"type":"object","$$ref":"#/components/schemas/Link"}},"type":"object","$$ref":"#/components/schemas/PaginationNextLink"}},"type":"object","$$ref":"#/components/schemas/LocalNetworkTopologyResults"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"example":{"type":"about:blank","title":"Request validation failed. There are invalid or missing fields","status":400,"detail":"Your request object contains invalid fields.","instance":"/v7","errors":[{"code":"AM-5432","field":"firstName","message":"firstName cannot have fancy characters"},{"code":"DASH-5622","field":"password","message":"Password cannot be blank"}]},"schema":{"properties":{"type":{"description":"A URI reference that identifies the problem type. When this member is not present, its value is assumed to be \"about:blank\".","type":"string"},"title":{"description":"A short, human-readable summary of the problem type.","type":"string"},"status":{"description":"The HTTP status code generated by the origin server for this occurrence of the problem.","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","type":"string"},"errors":{"description":"(Optional) When multiple errors occur, the details for each error are listed.","items":{"properties":{"code":{"description":"(Optional) A unique error type/code that can be referenced in the documentation for further details.","type":"string"},"field":{"description":"Identifies the field that triggered this particular error.","type":"string"},"message":{"description":"A short, human-readable summary of the error.","type":"string"}},"type":"object","$$ref":"#/components/schemas/ValidationErrorItem"},"nullable":true,"type":"array"}},"type":"object","$$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"properties":{"error":{"example":"invalid_token","type":"string"},"error_description":{"example":"Invalid access token","type":"string"}},"type":"object","$$ref":"#/components/schemas/UnauthorizedError"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"properties":{"type":{"description":"A URI reference that identifies the problem type. When this member is not present, its value is assumed to be \"about:blank\".","type":"string"},"title":{"description":"A short, human-readable summary of the problem type.","type":"string"},"status":{"description":"The HTTP status code generated by the origin server for this occurrence of the problem.","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","type":"string"}},"type":"object","$$ref":"#/components/schemas/Error"}}},"description":"Insufficient permissions to query endpoint"},"404":{"content":{"application/problem+json":{"example":{"type":"about:blank","title":"URI Resource Not Found","status":404,"detail":"Details explaining if the 404 error is related to an invalid URI or a wrong ID","instance":"/v7"},"schema":{"properties":{"type":{"description":"A URI reference that identifies the problem type. When this member is not present, its value is assumed to be \"about:blank\".","type":"string"},"title":{"description":"A short, human-readable summary of the problem type.","type":"string"},"status":{"description":"The HTTP status code generated by the origin server for this occurrence of the problem.","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","type":"string"}},"type":"object","$$ref":"#/components/schemas/Error"}}},"description":"Not found"},"429":{"content":{"application/problem+json":{"schema":{"properties":{"type":{"description":"A URI reference that identifies the problem type. When this member is not present, its value is assumed to be \"about:blank\".","type":"string"},"title":{"description":"A short, human-readable summary of the problem type.","type":"string"},"status":{"description":"The HTTP status code generated by the origin server for this occurrence of the problem.","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","type":"string"}},"type":"object","$$ref":"#/components/schemas/Error"}}},"description":"Exhausted rate limit for the organization"},"500":{"content":{"application/problem+json":{"example":{"type":"about:blank","title":"Internal server error","status":500,"detail":"Optional detail about the internal error message.","instance":"/v7"},"schema":{"properties":{"type":{"description":"A URI reference that identifies the problem type. When this member is not present, its value is assumed to be \"about:blank\".","type":"string"},"title":{"description":"A short, human-readable summary of the problem type.","type":"string"},"status":{"description":"The HTTP status code generated by the origin server for this occurrence of the problem.","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","type":"string"}},"type":"object","$$ref":"#/components/schemas/Error"}}},"description":"Internal server error"},"502":{"content":{"application/problem+json":{"schema":{"properties":{"type":{"description":"A URI reference that identifies the problem type. When this member is not present, its value is assumed to be \"about:blank\".","type":"string"},"title":{"description":"A short, human-readable summary of the problem type.","type":"string"},"status":{"description":"The HTTP status code generated by the origin server for this occurrence of the problem.","type":"integer"},"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","type":"string"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","type":"string"}},"type":"object","$$ref":"#/components/schemas/Error"}}},"description":"Bad Gateway"}},"summary":"List endpoint network topologies probes","tags":["Local Network Endpoint Test Results"],"__originalOperationId":"filterLocalNetworksTestResultsTopologies","security":[{"BearerAuth":[]}],"method":"post","path":"/endpoint/test-results/local-networks/topologies/filter"}}