Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/thousandeyes-network-test-results-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
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 fou
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thousandeyes/refs/heads/main/openapi/thousandeyes-network-test-results-api-openapi.yml