ThousandEyes Test Snapshots API
Creates a new test snapshot in ThousandEyes.
Creates a new test snapshot in ThousandEyes.
openapi: 3.0.1
security:
- BearerAuth: []
servers:
- description: ThousandEyes API production URL
url: https://api.thousandeyes.com/v7
info:
version: 7.0.100
title: Test Snapshots API
description: Creates a new test snapshot in ThousandEyes.
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/
tags:
- name: Test Snapshots
paths:
/tests/{testId}/snapshot:
post:
tags:
- Test Snapshots
summary: Create test snapshot
description: 'This operation creates a test snapshot based on the properties provided in the POST data.
* To use this endpoint, you need the `Create snapshot shares` permission.
* You can create a maximum of 5 snapshots per organization within a 5-minute interval.
* Snapshots generated through this operation have a 30-day expiration period.
* The time range specified with the `from` and `to` parameters must adhere to one of the following intervals: 1, 2,
4, 6, 12, 24, or 48 hours.
* The `endDate` field of the snapshot must be set to the present or a past date.
* Certain regions may not have public snapshots enabled for compliance reasons. In that case you will get a 403 Forbidden
as a response.
**Note**: This operation does not support the creation of operation Agent snapshots.
'
operationId: createTestSnapshot
parameters:
- $ref: '#/components/parameters/TestIdPath'
- $ref: '#/components/parameters/AccountGroupId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SnapshotRequest'
responses:
'201':
description: Created
content:
application/hal+json:
schema:
$ref: '#/components/schemas/SnapshotResponse'
'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:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Bearer authentication token
schemas:
SnapshotRequest:
type: object
required:
- displayName
- startDate
- endDate
properties:
displayName:
type: string
description: Snapshot title.
example: Snapshot created through API
startDate:
type: string
format: date-time
description: The start date for the snapshot in UTC time, formatted in ISO date-time.
example: '2023-06-06T00:00:00Z'
endDate:
type: string
format: date-time
description: The end date for the snapshot in UTC time, formatted in ISO date-time.
example: '2023-06-06T01:00:00Z'
isPublic:
type: boolean
description: 'Set to `true` for saved events and `false` for share links. Its default value is `false`.
**Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect
API.'
example: false
SnapshotResponse:
type: object
properties:
id:
type: string
description: Snapshot ID.
example: wdiac
startRoundId:
type: integer
description: The start time of the test snapshot, represented in epoch time format (in seconds).
example: 1538784000
readOnly: true
endRoundId:
type: integer
description: The end time of the test snapshot, represented in epoch time format (in seconds).
example: 1538787600
readOnly: true
roundId:
type: integer
description: The selected time of the test snapshot, represented in epoch time format (in seconds).
example: 1538784000
readOnly: true
shareDate:
type: string
format: date-time
description: The date when the test snapshot was created in UTC time, formatted in ISO date-time.
example: '2023-06-06T00:00:00Z'
sourceTestId:
type: string
description: Snapshot test ID.
example: '281474976710706'
testId:
type: string
description: Snapshot test ID.
example: '281474976710801'
uid:
type: string
description: User ID.
example: '281474976810911'
displayName:
type: string
description: Snapshot title.
example: Snapshot created through API
extraParams:
type: string
description: Extra parameters.
example: params
test:
$ref: '#/components/schemas/SnapshotTest'
_links:
$ref: '#/components/schemas/SnapshotLinks'
SnapshotTest:
allOf:
- $ref: '#/components/schemas/UnexpandedTest'
- $ref: '#/components/schemas/UnexpandedInstantTest'
SnapshotLinks:
allOf:
- $ref: '#/components/schemas/AppAndSelfLinks'
- example:
self:
href: http://api.thousandeyes.com/v7/tests/227103/snapshot
appLink:
href: https://app.stg.thousandeyes.com/view/tests/?testId=227103&__a=105
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.
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.
ValidationError:
type: object
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
errors:
nullable: true
type: array
description: (Optional) When multiple errors occur, the details for each error are listed.
items:
$ref: '#/components/schemas/ValidationErrorItem'
UnauthorizedError:
type: object
properties:
error:
type: string
example: invalid_token
error_description:
type: string
example: Invalid access token
TestInterval:
type: integer
enum:
- 60
- 120
- 300
- 600
- 900
- 1800
- 3600
description: Interval between test runs in seconds.
default: 60
example: 60
Enabled:
type: boolean
description: Test is enabled.
example: true
default: true
UnexpandedTest:
type: object
properties:
interval:
$ref: '#/components/schemas/TestInterval'
alertsEnabled:
type: boolean
description: Indicates if alerts are enabled.
example: true
enabled:
$ref: '#/components/schemas/Enabled'
TestCreatedBy:
type: string
description: User that created the test.
example: user@user.com
readOnly: true
TestCreatedDate:
type: string
format: date-time
description: UTC created date (ISO date-time format).
example: '2022-07-17T22:00:54Z'
readOnly: 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
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
TestSelfLink:
allOf:
- $ref: '#/components/schemas/Link'
- description: Reference to the test.
example:
href: https://api.thousandeyes.com/v7/tests/{type}/281474976710706
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
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
UnexpandedInstantTest:
type: object
properties:
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'
AppAndSelfLinks:
type: object
description: A links object containing the ThousandEyes App link
readOnly: true
properties:
appLink:
$ref: '#/components/schemas/Link'
self:
$ref: '#/components/schemas/Link'
parameters:
TestIdPath:
name: testId
description: Test ID
required: true
in: path
schema:
type: string
example: '202701'
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'
responses:
'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
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/UnauthorizedError'
'403':
description: Insufficient permissions to query endpoint
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
'429':
description: Exhausted rate limit for the organization
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'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
'502':
description: Bad Gateway
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
GeneralError:
description: An error occurred