openapi: 3.2.0 info: version: 7.0.100 title: Web Transactions 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: Web Transactions Test Results paths: /test-results/{testId}/web-transactions: get: tags: - Web Transactions Test Results summary: Get web transactions test results description: 'Returns test results for web transactions. 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: getTestWebTransactionResults 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' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/WebTransactionTestResults' '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}/web-transactions/agent/{agentId}/round/{roundId}: get: tags: - Web Transactions Test Results summary: Get web transactions test results by agent and round description: 'Returns test results for web transactions for a given agent and round. ' operationId: getTestWebTransactionAgentRoundResults parameters: - $ref: '#/components/parameters/TestIdPath' - $ref: '#/components/parameters/AgentIdPath' - $ref: '#/components/parameters/RoundIdPath' - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/WebTransactionDetailTestResults' '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}/web-transactions/agent/{agentId}/round/{roundId}/page/{pageId}: get: tags: - Web Transactions Test Results summary: Get detailed web transactions test result by agent, round, and page description: 'Returns a page of web transaction test results for an agent and round. ' operationId: getTestWebTransactionAgentRoundPageResults parameters: - $ref: '#/components/parameters/TestIdPath' - $ref: '#/components/parameters/AgentIdPath' - $ref: '#/components/parameters/RoundIdPath' - $ref: '#/components/parameters/PageIdPath' - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/WebTransactionPageDetailTestResults' '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}/web-transactions/agent/{agentId}/round/{roundId}/console-logs: get: tags: - Web Transactions Test Results summary: Get console logs test results by agent and round description: 'Returns console logs for the specified test, agent, and round ID. ' operationId: getTestConsoleLogsAgentRoundResults parameters: - $ref: '#/components/parameters/TestIdPath' - $ref: '#/components/parameters/AgentIdPath' - $ref: '#/components/parameters/RoundIdPath' - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: OK content: application/hal+json: schema: $ref: '#/components/schemas/ConsoleLogsTestResults' '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: 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' 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' 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' PageIdPath: name: pageId description: Web page ID required: true in: path schema: type: string example: '281474976710706' 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' schemas: 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' WebTransactionDetailTestResults: type: object properties: results: type: array items: $ref: '#/components/schemas/WebTransactionDetailTestResult' test: $ref: '#/components/schemas/SimpleTest' _links: $ref: '#/components/schemas/PaginationLinks' ConsoleLogs: type: object description: Console logs captured during script execution to help troubleshoot transaction issues. properties: level: type: string description: Severity level of the log, or UNKNOWN if the log is system-generated. example: INFO timestamp: type: integer format: int64 description: Unix epoch time, in milliseconds, when the log entry was captured. example: 1715880042123 value: type: string description: Log message. example: 'Uncaught TypeError: Cannot read property attr of undefined' 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 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 WebTransactionPageDetailTestResult: allOf: - $ref: '#/components/schemas/WebTransactionDetailTestResult' - type: object properties: har: $ref: '#/components/schemas/PageHar' Marker: type: object properties: name: type: string description: Name assigned to marker in transaction script example: SearchForWebdriver readOnly: true duration: type: integer description: Total time recorded by marker in milliseconds example: 1360 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. WebTransactionTestResult: allOf: - $ref: '#/components/schemas/TestResult' - $ref: '#/components/schemas/EpochTimeWindow' - type: object properties: agent: $ref: '#/components/schemas/TestResultAgent' componentErrors: type: integer description: Number of components which did not successfully load example: 5 readOnly: true transactionTime: type: integer description: Elapsed execution time of the web transaction script in milliseconds example: 2379 readOnly: true errorType: type: string description: Type of error encountered; corresponds to phase of connection example: None readOnly: true errorDetails: $ref: '#/components/schemas/TestResultErrorDetails' 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 Page: type: object properties: pageNum: type: integer description: Page index example: 0 readOnly: true pageName: type: string description: Meta title value for page visited example: Google readOnly: true componentCount: type: integer description: Number of components on target page example: 136 readOnly: true errorCount: type: integer description: Number of errors encountered during page load example: 0 readOnly: true duration: type: number format: float description: Time spent on page in milliseconds example: 1117.5660001039505 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 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 ConsoleLogsTestResults: type: object readOnly: true properties: results: type: array items: $ref: '#/components/schemas/ConsoleLogsResult' test: $ref: '#/components/schemas/SimpleTest' _links: $ref: '#/components/schemas/PaginationLinks' ConsoleLogsResult: allOf: - $ref: '#/components/schemas/TestResult' - type: object properties: agent: $ref: '#/components/schemas/TestResultAgent' consoleLogs: type: array items: $ref: '#/components/schemas/ConsoleLogs' 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. 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' WebTransactionPageDetailTestResults: type: object properties: results: type: array items: $ref: '#/components/schemas/WebTransactionPageDetailTestResult' test: $ref: '#/components/schemas/SimpleTest' _links: $ref: '#/components/schemas/PaginationLinks' WebTransactionDetailTestResult: allOf: - $ref: '#/components/schemas/WebTransactionTestResult' - type: object properties: markers: type: array items: $ref: '#/components/schemas/Marker' pages: type: array items: $ref: '#/components/schemas/Page' StartTime: type: integer description: Epoch time (seconds) indicating the start time of the round example: 1384309800 readOnly: true WebTransactionTestResults: type: object properties: results: x-paginated-items: true type: array items: $ref: '#/components/schemas/WebTransactionTestResult' test: $ref: '#/components/schemas/SimpleTest' startDate: $ref: '#/components/schemas/StartDate' endDate: $ref: '#/components/schemas/EndDate' _links: $ref: '#/components/schemas/PaginationLinks' PageHar: type: object description: See [HAR specification](http://www.softwareishard.com/blog/har-12-spec/) for details readOnly: true example: log: creator: name: ThousandEyes DB Exporter entries: - pageref: page_0 request: headers: - name: :authority value: google.com - name: :method value: GET - name: :path value: / - name: :scheme value: https - name: accept value: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 - name: accept-encoding value: gzip, deflate, br - name: accept-language value: en-US,en;q=0.9 - name: upgrade-insecure-requests value: '1' - name: user-agent value: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.83 Safari/537.36 - name: x-thousandeyes-agent value: 'yes' method: GET url: https://google.com/ response: bodySize: 220 content: mimeType: text/html size: 220 headers: - name: alt-svc value: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000 - name: cache-control value: public, max-age=2592000 - name: content-length value: '220' - name: content-type value: text/html; charset=UTF-8 - name: date value: Fri, 15 Nov 2019 16:41:54 GMT - name: expires value: Sun, 15 Dec 2019 16:41:54 GMT - name: location value: https://www.google.com/ - name: server value: gws - name: status value: '301' - name: x-frame-options value: SAMEORIGIN - name: x-xss-protection value: '0' headersSize: 471 redirectURL: '' status: 301 statusText: MOVED_PERMANENTLY serverIPAddress: 172.217.6.110 startedDateTime: '2019-11-15T16:41:54.798Z' time: 71 timings: blocked: 2 connect: 16 dns: 1 receive: 1 send: 0 ssl: 14 wait: 50 - pageref: page_0 request: headers: - name: :authority value: www.google.com - name: :method value: GET - name: :path value: / - name: :scheme value: https - name: accept value: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 - name: accept-encoding value: gzip, deflate, br - name: accept-language value: en-US,en;q=0.9 - name: upgrade-insecure-requests value: '1' - name: user-agent value: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.83 Safari/537.36 - name: x-thousandeyes-agent value: 'yes' method: GET url: https://www.google.com/ response: bodySize: 65214 content: mimeType: text/html size: 225039 headers: - name: alt-svc value: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000 - name: cache-control value: private, max-age=0 - name: content-encoding value: br - name: content-length value: '65214' - name: content-type value: text/html; charset=UTF-8 - name: date value: Fri, 15 Nov 2019 16:41:54 GMT - name: expires value: '-1' - name: p3p value: CP="This is not a P3P policy! See g.co/p3phelp for more info." - name: server value: gws - name: set-cookie value: (removed) - name: status value: '200' - name: strict-transport-security value: max-age=31536000 - name: x-frame-options value: SAMEORIGIN - name: x-xss-protection value: '0' headersSize: 915 redirectURL: '' status: 200 statusText: OK serverIPAddress: 172.217.4.196 startedDateTime: '2019-11-15T16:41:54.870Z' time: 182 timings: blocked: 2 connect: 4 dns: 0 receive: 58 send: 0 ssl: 2 wait: 118 pages: - id: page_0 pageTimings: onContentLoad: 367 onLoad: 737 responseCode: 0 startedDateTime: '2019-11-15T16:41:54.796Z' title: Google version: '1.2' 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