openapi: 3.2.0 info: version: 7.0.100 title: Network Test Results API description: Get test result metrics for Network and Application Synthetics tests. x-provenance: method: harvested authored_by: Cisco ThousandEyes harvested_by: API Evangelist harvested_on: '2026-08-19' first_party: true provider_published: true source_host: pubhub.devnetcloud.com note: 27 OpenAPI 3.0 documents (26 per-area plus a unified 326-operation document) served anonymously from Cisco's DevNet CDN. api.thousandeyes.com itself 401s every path, so the contract is public while the API host is gated. x-evidence: - type: source url: https://pubhub.devnetcloud.com/media/000-v7-apis/docs/reference/ - type: source url: https://developer.cisco.com/docs/thousandeyes/ servers: - description: ThousandEyes API production URL url: https://api.thousandeyes.com/v7 security: - BearerAuth: [] tags: - name: Network Test Results paths: /test-results/{testId}/network: get: tags: - Network Test Results summary: Get network test results description: 'Returns network test results for every agent and round. If no window, start time, or end time is specified, data for the most recent round is returned. If a window or start time is specified, the results might include a round that started just before the specified start time. ' operationId: getTestNetworkResults parameters: - $ref: '#/components/parameters/TestIdPath' - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/Window' - $ref: '#/components/parameters/StartDateParameter' - $ref: '#/components/parameters/EndDateParameter' - $ref: '#/components/parameters/PaginationCursor' - $ref: '#/components/parameters/Direction' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/NetworkTestResults' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '502': $ref: '#/components/responses/502' default: $ref: '#/components/responses/GeneralError' /test-results/{testId}/path-vis: get: tags: - Network Test Results summary: Get path visualization network test results description: "Returns a summary of the path trace data collected during path visualization for a given time range. With each attempt, three tries are made to reach the destination. The entire path is displayed in order. If you do not specify a window or a start and end date, data is displayed for the most recent testing round. \n\nBidirectional agent-to-agent tests also support the `direction` parameter. For example, if agents A, B, and C are testing agent D bidirectionally, and you want results from the route from agent A to agent D, you can use the query `direction=to-target`. For results from agent D to agent A, you can use `direction=from-target`. To get both results for both routes, query without the direction parameter. The source will always be agent A and the destination will be agent D, but the direction field will indicate which trace direction you want test results from.\n" operationId: getTestPathVisResults parameters: - $ref: '#/components/parameters/TestIdPath' - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/Window' - $ref: '#/components/parameters/StartDateParameter' - $ref: '#/components/parameters/EndDateParameter' - $ref: '#/components/parameters/PaginationCursor' - $ref: '#/components/parameters/PathVisDirection' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/PathVisTestResults' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '502': $ref: '#/components/responses/502' default: $ref: '#/components/responses/GeneralError' /test-results/{testId}/path-vis/agent/{agentId}/round/{roundId}: get: tags: - Network Test Results summary: Get path visualization test results by agent and round description: 'Returns a summary of the path trace data collected during path visualization for a given agent and round. With each attempt, three tries are made to reach the destination. The entire path is displayed in order. Bidirectional agent-to-agent tests also support the `direction` parameter. For example, if agents A, B, and C are testing agent D bidirectionally, and you want results from the route from agent A to agent D, you can use the query `direction=to-target`. For results from agent D to agent A, you can use `direction=from-target`. To get both results for both routes, query without the direction parameter. The source will always be agent A and the destination will be agent D, but the direction field will indicate which trace direction you want test results from. ' operationId: getTestPathVisAgentRoundResults parameters: - $ref: '#/components/parameters/TestIdPath' - $ref: '#/components/parameters/AgentIdPath' - $ref: '#/components/parameters/RoundIdPath' - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/PathVisDirection' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/PathVisDetailTestResults' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '502': $ref: '#/components/responses/502' default: $ref: '#/components/responses/GeneralError' components: schemas: PathVisRoute: type: object properties: pathId: type: string description: Unique ID of path trace example: '4711301366345855606023718047703941305741293841502186803' readOnly: true hops: type: array description: Array of hop objects indicating each step in the traceroute items: $ref: '#/components/schemas/PathVisHop' NetworkTestResults: type: object properties: results: x-paginated-items: true type: array items: $ref: '#/components/schemas/NetworkTestResult' test: $ref: '#/components/schemas/SimpleTest' startDate: $ref: '#/components/schemas/StartDate' endDate: $ref: '#/components/schemas/EndDate' _links: $ref: '#/components/schemas/PaginationLinks' ValidationError: type: object allOf: - $ref: '#/components/schemas/Error' - type: object properties: errors: type: - array - 'null' description: (Optional) When multiple errors occur, the details for each error are listed. items: $ref: '#/components/schemas/ValidationErrorItem' PathVisDirection: type: string enum: - to-target - from-target description: Direction of the path trace. example: to-target EndDate: type: string format: date-time example: '2022-07-18T22:00:54Z' 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). readOnly: true PathTrace: type: object properties: ipAddress: type: string description: IP address of the hop example: 196.40.106.237 readOnly: true mss: type: integer description: Maximum segment size in bytes example: 1460 readOnly: true numberOfHops: type: integer description: Number of hops for path trace to destination example: 15 readOnly: true pathId: type: string description: Unique ID of path trace example: '1230899668701775614109128428722974545787322404682781961521' readOnly: true pathMtu: type: integer description: MTU sizes on network from agents to the target example: 1500 readOnly: true responseTime: type: integer description: RTT of the path trace to the destination in milliseconds example: 1500 readOnly: true PathVisDetailTestResult: allOf: - $ref: '#/components/schemas/PathVisBaseTestResult' - type: object properties: pathTraces: type: array description: Shows 3 iterations of path trace, with each iteration specified by a pathId items: $ref: '#/components/schemas/PathVisRoute' TestCreatedDate: type: string format: date-time description: UTC created date (ISO date-time format). example: '2022-07-17T22:00:54Z' readOnly: true AppLinks: type: object description: A links object containing the ThousandEyes App link readOnly: true properties: appLink: $ref: '#/components/schemas/Link' TestCreatedBy: type: string description: User that created the test. example: user@user.com readOnly: true ValidationErrorItem: type: object properties: code: type: string description: (Optional) A unique error type/code that can be referenced in the documentation for further details. field: type: string description: Identifies the field that triggered this particular error. message: type: string description: A short, human-readable summary of the error. TestLinks: type: object description: A list of links that can be accessed to get more information properties: self: $ref: '#/components/schemas/TestSelfLink' testResults: $ref: '#/components/schemas/TestResults' readOnly: true SimpleTest: description: Each test includes additional fields depending on its `type`. Refer `/tests/{type}` endpoint to know the set of fields returned by a given `type`. additionalProperties: true type: object properties: interval: $ref: '#/components/schemas/TestInterval' alertsEnabled: type: boolean description: Indicates if alerts are enabled. example: true enabled: $ref: '#/components/schemas/Enabled' createdBy: $ref: '#/components/schemas/TestCreatedBy' createdDate: $ref: '#/components/schemas/TestCreatedDate' description: type: string description: A description of the test. example: ThousandEyes Test liveShare: type: boolean description: Indicates if the test is shared with the account group. example: false readOnly: true modifiedBy: type: string description: User that modified the test. example: user@user.com readOnly: true modifiedDate: type: string format: date-time description: UTC last modification date (ISO date-time format). readOnly: true example: '2022-07-17T22:00:54Z' savedEvent: type: boolean description: 'Indicates if the test is a saved event. **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect API. ' readOnly: true testId: type: string description: Each test is assigned an unique ID; this is used to access test information and results from other endpoints. readOnly: true example: '281474976710706' testName: type: string description: The name of the test. Test name must be unique. example: ThousandEyes Test type: $ref: '#/components/schemas/TestType' _links: $ref: '#/components/schemas/TestLinks' TestResultAgent: type: object properties: agentId: type: string description: Unique agent ID example: '281474976710706' readOnly: true agentName: type: string description: Agent name example: thousandeyes-stg-va-254 readOnly: true countryId: type: string description: 2-digit ISO country code example: US readOnly: true location: type: string description: Location of the agent. example: San Francisco Bay Area readOnly: true StartDate: type: string format: date-time example: '2022-07-17T22:00:54Z' 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). readOnly: true PathVisTestResult: allOf: - type: object properties: pathTraces: type: array description: Shows all iterations of path trace, with each iteration specified by a pathId items: $ref: '#/components/schemas/PathTrace' - $ref: '#/components/schemas/PathVisBaseTestResult' Enabled: type: boolean description: Test is enabled. example: true default: true TestType: type: string enum: - api - agent-to-agent - agent-to-server - bgp - http-server - page-load - web-transactions - ftp-server - dns-trace - dns-server - dnssec - sip-server - voice description: This is a read only value, as test type is implicit in the test creation url. readOnly: true example: agent-to-server EndTime: type: integer description: Epoch time (seconds) indicating the end time of the round example: 1384309800 readOnly: true PaginationLinks: type: object description: A links object containing pagination related link(s). properties: previous: $ref: '#/components/schemas/Link' next: $ref: '#/components/schemas/Link' self: $ref: '#/components/schemas/Link' TestResultAppLinks: allOf: - $ref: '#/components/schemas/AppLinks' - example: appLink: href: https://app.thousandeyes.com/view/tests?__a=105&testId=195&roundId=1692916680&agentId=125 UnauthorizedError: type: object properties: error: type: string example: invalid_token error_description: type: string example: Invalid access token Link: type: object description: A hyperlink from the containing resource to a URI. required: - href properties: href: type: string description: Its value is either a URI [RFC3986] or a URI template [RFC6570]. example: https://api.thousandeyes.com/v7/link/to/resource/id templated: type: boolean description: Should be true when the link object's "href" property is a URI template. type: type: string description: Used as a hint to indicate the media type expected when dereferencing the target resource. deprecation: type: string 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. name: type: string description: Its value may be used as a secondary key for selecting link objects that share the same relation type. profile: type: string description: A URI that hints about the profile of the target resource. title: type: string description: Intended for labelling the link with a human-readable identifier hreflang: type: string description: Indicates the language of the target resource EpochTimeWindow: type: object properties: startTime: $ref: '#/components/schemas/StartTime' endTime: $ref: '#/components/schemas/EndTime' TestResults: type: array description: Reference to the test results. items: $ref: '#/components/schemas/Link' example: - href: https://api.thousandeyes.com/v7/test-results/281474976710706/network - href: https://api.thousandeyes.com/v7/test-results/281474976710706/path-vis TestDirection: type: string enum: - to-target - from-target - bidirectional description: Direction of the test, which affects how results are shown. default: to-target example: to-target TestInterval: type: integer enum: - 60 - 120 - 300 - 600 - 900 - 1800 - 3600 description: Interval between test runs in seconds. default: 60 example: 60 TestResultErrorDetails: type: string description: Error details, if an error were encountered example: Connection error readOnly: true Error: type: object properties: type: type: string description: A URI reference that identifies the problem type. When this member is not present, its value is assumed to be "about:blank". title: type: string description: A short, human-readable summary of the problem type. status: type: integer description: The HTTP status code generated by the origin server for this occurrence of the problem. detail: type: string description: A human-readable explanation specific to this occurrence of the problem. instance: type: string description: A URI reference that identifies the specific occurrence of the problem. PathVisBaseTestResult: allOf: - $ref: '#/components/schemas/TestResult' - $ref: '#/components/schemas/EpochTimeWindow' - type: object properties: agent: $ref: '#/components/schemas/TestResultAgent' server: type: string description: Target server, including port (if method used is TCP) example: www.google.com:443 readOnly: true serverIp: type: string description: IP of target server example: 172.217.170.68 readOnly: true sourceIp: type: string description: IP address of source agent example: 196.40.106.237 readOnly: true sourcePrefix: type: string description: IP prefix of source agent example: 196.40.96.0/20 readOnly: true targetIsProxy: type: boolean description: Specifies whether the traces are targeting a proxy. If not set, it is considered as false. example: true readOnly: true direction: $ref: '#/components/schemas/PathVisDirection' PathVisDetailTestResults: type: object properties: results: type: array items: $ref: '#/components/schemas/PathVisDetailTestResult' test: $ref: '#/components/schemas/SimpleTest' _links: $ref: '#/components/schemas/SelfLinks' TestSelfLink: allOf: - $ref: '#/components/schemas/Link' - description: Reference to the test. example: href: https://api.thousandeyes.com/v7/tests/{type}/281474976710706 TestResult: type: object properties: date: type: string description: Data point date UTC (ISO date-time format). format: date-time example: '2022-07-17T22:00:54Z' readOnly: true roundId: type: integer description: Epoch time (seconds) indicating the start time of the round example: 1384309800 readOnly: true _links: $ref: '#/components/schemas/TestResultAppLinks' PathVisTestResults: type: object properties: results: x-paginated-items: true type: array items: $ref: '#/components/schemas/PathVisTestResult' test: $ref: '#/components/schemas/SimpleTest' startDate: $ref: '#/components/schemas/StartDate' endDate: $ref: '#/components/schemas/EndDate' _links: $ref: '#/components/schemas/PaginationLinks' SelfLinks: type: object description: A links object containing the self link. readOnly: true properties: self: $ref: '#/components/schemas/Link' StartTime: type: integer description: Epoch time (seconds) indicating the start time of the round example: 1384309800 readOnly: true PathVisHop: type: object properties: hop: type: integer description: Hop index example: 1 readOnly: true ipAddress: type: string description: IP address of the hop example: 196.40.106.237 readOnly: true prefix: type: string description: Prefix of IP address shown in CIDR example: 196.40.96.0/20 readOnly: true rdns: type: string description: Reverse DNS entry of IP, if available example: core-router1.cpt2.host-h.net readOnly: true network: type: string description: Autonomous System originating the prefix example: HETZNER (Pty) Ltd (AS 37153) readOnly: true responseTime: type: integer description: RTT to the hop’s IP in milliseconds example: 1 readOnly: true location: type: string description: Location information for the hop example: Cape Town, South Africa readOnly: true mpls: type: string description: Multiprotocol Label Switching information, if available readOnly: true NetworkTestResult: allOf: - type: object properties: availableBandwidth: type: number description: The bandwidth from the client to the server measured in Mbps. This value is not available if bandwidth testing is disabled, if no value could be calculated, or if the target is a proxy. example: 9.100464 format: double readOnly: true avgLatency: type: number description: Average RTT for packets sent to destination example: 167.04 format: double readOnly: true bandwidth: type: number example: 4.3313155 format: double readOnly: true capacity: type: number description: The capacity from the client to the server measured in Mbps. This value is not available if bandwidth testing is disabled, if no value could be calculated, or if the target is a proxy. example: 210.10854 format: double readOnly: true jitter: type: number description: Standard deviation of latency example: 0.076808 format: double readOnly: true loss: type: number description: Percentage of packets not reaching the destination. This field is omitted when no loss measurement is available. example: 0 format: double readOnly: true maxLatency: type: number description: Maximum RTT for packets sent to destination example: 168 format: double readOnly: true minLatency: type: number description: Minimum RTT for packets sent to destination example: 167 format: double readOnly: true proxyLoss: type: number description: Percentage of packets not reaching proxy. example: 2.5 format: float readOnly: true proxyAverageLatency: type: number description: Average RTT for packets sent to proxy, in milliseconds. example: 45 format: float readOnly: true proxyMinLatency: type: number description: Minimum RTT for packets sent to proxy, in milliseconds. example: 40 format: float readOnly: true proxyMaxLatency: type: number description: Maximum RTT for packets sent to proxy, in milliseconds. example: 50 format: float readOnly: true proxyJitter: type: number description: Standard deviation of proxy latency, in milliseconds. example: 1.2 format: float readOnly: true packetsBySecond: type: array description: Number of packets sent and received in a second. example: - [] - - 0 - - 2 - - 2 - 1 - - 1 - 1 items: type: array items: type: integer readOnly: true agent: $ref: '#/components/schemas/TestResultAgent' date: type: string description: Data point date in UTC (ISO date-time format). format: date-time example: '2022-07-17T22:00:54Z' readOnly: true roundId: type: integer description: Epoch time (seconds) indicating the start time of the round example: 1384309800 readOnly: true serverIp: type: string description: IP of target server example: 50.18.127.223 readOnly: true server: type: string description: Target server, including port (if method used is TCP) example: www.thousandeyes.com:80 readOnly: true healthScore: type: number description: A normalized value (0.0-1.0) representing the network connection health of the test target. Returns negative values as error codes. -1.0 indicates there was insufficient data to calculate the health score. example: 0.98 direction: $ref: '#/components/schemas/TestDirection' errorDetails: allOf: - $ref: '#/components/schemas/TestResultErrorDetails' description: Error details. This field is omitted when no error occurs. - $ref: '#/components/schemas/TestResult' - $ref: '#/components/schemas/EpochTimeWindow' parameters: AgentIdPath: name: agentId description: Agent ID required: true in: path schema: type: string example: '11' TestIdPath: name: testId description: Test ID required: true in: path schema: type: string example: '202701' Direction: name: direction in: query style: form description: 'Choose the direction for the metrics you want: [`from-target`, `to-target`, `bidirectional`]. This applies when you''re doing bidirectional Agent-to-Agent tests. For bidirectional data, you''ll get combined results; otherwise, you''ll get data for one direction. If you try to get unidirectional test data with an incorrect direction parameter, it will trigger an error response.' schema: $ref: '#/components/schemas/TestDirection' StartDateParameter: name: startDate in: query 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`. schema: type: string format: date-time example: '2022-07-17T22:00:54Z' PathVisDirection: name: direction in: query style: form description: 'Choose the direction for the metrics you want: [`from-target`, `to-target`]. This applies when you''re doing bidirectional Agent-to-Agent tests. Omitting the parameter will default the results to both `from-target` and `to-target` values (bidirectional); otherwise, you''ll get data for one direction. If you try to get unidirectional test data with an incorrect direction parameter, it will trigger an error response.' schema: $ref: '#/components/schemas/PathVisDirection' EndDateParameter: name: endDate in: query 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`. schema: type: string format: date-time example: '2022-07-18T22:00:54Z' Window: name: window in: query 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. For a precise date range, use `startDate` and `endDate`.' schema: type: string pattern: ^\d+(?:[smhdw]{1})?$ example: 12h PaginationCursor: name: cursor in: query example: null description: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of this parameter. schema: type: string example: null AccountGroupId: name: aid in: query 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. required: false schema: type: string example: '1234' RoundIdPath: name: roundId description: Round ID required: true in: path schema: type: string example: '1384309800' responses: '502': description: Bad Gateway content: application/problem+json: schema: $ref: '#/components/schemas/Error' GeneralError: description: An error occurred '429': description: Exhausted rate limit for the organization content: application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Error' 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 '500': description: Internal server error content: application/problem+json: schema: $ref: '#/components/schemas/Error' example: type: about:blank title: Internal server error status: 500 detail: Optional detail about the internal error message. instance: /v7 '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' 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 '403': description: Insufficient permissions to query endpoint content: application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer authentication token externalDocs: description: Find out more about Test Results url: https://docs.thousandeyes.com/product-documentation/getting-started/getting-started-with-cloud-and-enterprise-agent-tests#interpreting-test-results