{"type":"api","title":"Get path visualization test results by agent and round","meta":{"id":"/apps/pubhub/media/000-v7-apis/5b3454a4300b838cc17f7b2cdc0690fdd15058d5/beddd583-a5f3-3bb9-82a3-77fa650e7a7a","info":{"description":"Get test result metrics for Cloud and Enterprise Agent tests.","title":"Test Results API","version":"7.0.34"},"security":[{"BearerAuth":[]}],"tags":[{"name":"Network Test Results"},{"name":"Web HTTP Server Test Results"},{"name":"Web Page Load Test Results"},{"name":"Web Transactions Test Results"},{"name":"API Test Results"},{"name":"Web FTP Server Test Results"},{"name":"DNS Trace Test Results"},{"name":"DNS Server Test Results"},{"name":"DNSSEC Test Results"},{"name":"Voice SIP Server Test Results"},{"name":"Voice RTP Server Test Results"},{"name":"Network BGP Test Results"}],"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"},"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 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.\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":"getTestPathVisAgentRoundResults","parameters":[{"description":"Test ID","in":"path","name":"testId","required":true,"schema":{"example":"202701","type":"string"}},{"description":"Agent ID","in":"path","name":"agentId","required":true,"schema":{"example":"11","type":"string"}},{"description":"Round ID","in":"path","name":"roundId","required":true,"schema":{"example":"1384309800","type":"string"}},{"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":"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.","explode":true,"in":"query","name":"direction","required":false,"schema":{"description":"Direction of the path trace.","enum":["to-target","from-target"],"example":"to-target","type":"string","$$ref":"#/components/schemas/PathVisDirection"},"style":"form"}],"responses":{"200":{"content":{"application/hal+json":{"schema":{"properties":{"results":{"items":{"properties":{"date":{"description":"Data point date UTC (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"roundId":{"description":"Epoch time (seconds) indicating the start time of the round","example":1384309800,"readOnly":true,"type":"integer"},"_links":{"description":"A links object containing the ThousandEyes App link","properties":{"appLink":{"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"}},"readOnly":true,"type":"object","$$ref":"#/components/schemas/TestResultAppLinks","example":{"appLink":{"href":"https://app.thousandeyes.com/view/tests?__a=105&testId=195&roundId=1692916680&agentId=125"}}},"startTime":{"description":"Epoch time (seconds) indicating the start time of the round","example":1384309800,"readOnly":true,"type":"integer"},"endTime":{"description":"Epoch time (seconds) indicating the end time of the round","example":1384309800,"readOnly":true,"type":"integer"},"agent":{"properties":{"agentId":{"description":"Unique agent ID","example":"281474976710706","readOnly":true,"type":"string"},"agentName":{"description":"Agent name","example":"thousandeyes-stg-va-254","readOnly":true,"type":"string"},"countryId":{"description":"2-digit ISO country code","example":"US","readOnly":true,"type":"string"},"location":{"description":"Location of the agent.","example":"San Francisco Bay Area","readOnly":true,"type":"string"}},"type":"object","$$ref":"#/components/schemas/TestResultAgent"},"server":{"description":"Target server, including port (if method used is TCP)","example":"www.google.com:443","readOnly":true,"type":"string"},"serverIp":{"description":"IP of target server","example":"172.217.170.68","readOnly":true,"type":"string"},"sourceIp":{"description":"IP address of source agent","example":"196.40.106.237","readOnly":true,"type":"string"},"sourcePrefix":{"description":"IP prefix of source agent","example":"196.40.96.0/20","readOnly":true,"type":"string"},"targetIsProxy":{"description":"Specifies whether the traces are targeting a proxy. If not set, it is considered as false.","example":true,"readOnly":true,"type":"boolean"},"direction":{"description":"Direction of the path trace.","enum":["to-target","from-target"],"example":"to-target","type":"string","$$ref":"#/components/schemas/PathVisDirection"},"pathTraces":{"description":"Shows 3 iterations of path trace, with each iteration specified by a pathId","items":{"properties":{"pathId":{"description":"Unique ID of path trace","example":"4711301366345855606023718047703941305741293841502186803","readOnly":true,"type":"string"},"hops":{"description":"Array of hop objects indicating each step in the traceroute","items":{"properties":{"hop":{"description":"Hop index","example":1,"readOnly":true,"type":"integer"},"ipAddress":{"description":"IP address of the hop","example":"196.40.106.237","readOnly":true,"type":"string"},"prefix":{"description":"Prefix of IP address shown in CIDR","example":"196.40.96.0/20","readOnly":true,"type":"string"},"rdns":{"description":"Reverse DNS entry of IP, if available","example":"core-router1.cpt2.host-h.net","readOnly":true,"type":"string"},"network":{"description":"Autonomous System originating the prefix","example":"HETZNER (Pty) Ltd (AS 37153)","readOnly":true,"type":"string"},"responseTime":{"description":"RTT to the hop’s IP in milliseconds","example":1,"readOnly":true,"type":"integer"},"location":{"description":"Location information for the hop","example":"Cape Town, South Africa","readOnly":true,"type":"string"},"mpls":{"description":"Multiprotocol Label Switching information, if available","readOnly":true,"type":"string"}},"type":"object","$$ref":"#/components/schemas/PathVisHop"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/PathVisRoute"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/PathVisDetailTestResult"},"type":"array"},"test":{"additionalProperties":true,"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`.","properties":{"interval":{"default":60,"description":"Interval between test runs in seconds.","enum":[60,120,300,600,900,1800,3600],"example":60,"type":"integer","$$ref":"#/components/schemas/TestInterval"},"alertsEnabled":{"description":"Indicates if alerts are enabled.","example":true,"type":"boolean"},"enabled":{"default":true,"description":"Test is enabled.","example":true,"type":"boolean"},"createdBy":{"description":"User that created the test.","example":"user@user.com","readOnly":true,"type":"string"},"createdDate":{"description":"UTC created date (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"description":{"description":"A description of the test.","example":"ThousandEyes Test","type":"string"},"liveShare":{"description":"Indicates if the test is shared with the account group.","example":false,"readOnly":true,"type":"boolean"},"modifiedBy":{"description":"User that modified the test.","example":"user@user.com","readOnly":true,"type":"string"},"modifiedDate":{"description":"UTC last modification date (ISO date-time format).","example":"2022-07-17T22:00:54Z","format":"date-time","readOnly":true,"type":"string"},"savedEvent":{"description":"Indicates if the test is a saved event.","readOnly":true,"type":"boolean"},"testId":{"description":"Each test is assigned an unique ID; this is used to access test information and results from other endpoints.","example":"281474976710706","readOnly":true,"type":"string"},"testName":{"description":"The name of the test. Test name must be unique.","example":"ThousandEyes Test","type":"string"},"type":{"description":"This is a read only value, as test type is implicit in the test creation url.","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"],"example":"agent-to-server","readOnly":true,"type":"string","$$ref":"#/components/schemas/TestType"},"_links":{"description":"A list of links that can be accessed to get more information","properties":{"self":{"description":"Reference to the test.","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/TestSelfLink","example":{"href":"https://api.thousandeyes.com/v7/tests/{type}/281474976710706"}},"testResults":{"description":"Reference to the test results.","example":[{"href":"https://api.thousandeyes.com/v7/test-results/281474976710706/network"},{"href":"https://api.thousandeyes.com/v7/test-results/281474976710706/path-vis"}],"items":{"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":"array"}},"readOnly":true,"type":"object","$$ref":"#/components/schemas/TestLinks"}},"type":"object","$$ref":"#/components/schemas/SimpleTest"},"_links":{"description":"A links object containing the self link.","properties":{"self":{"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"}},"readOnly":true,"type":"object","$$ref":"#/components/schemas/SelfLinks"}},"type":"object","$$ref":"#/components/schemas/PathVisDetailTestResults"}}},"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"},"default":{"description":"An error occurred"}},"summary":"Get path visualization test results by agent and round","tags":["Network Test Results"],"__originalOperationId":"getTestPathVisAgentRoundResults","security":[{"BearerAuth":[]}],"method":"get","path":"/test-results/{testId}/path-vis/agent/{agentId}/round/{roundId}"}}