openapi: 3.0.1
security:
- BearerAuth: []
servers:
- description: ThousandEyes API production URL
url: https://api.thousandeyes.com/v7
info:
title: API Token Management API
description: Manage your ThousandEyes OpenAPI bearer token.
version: 7.0.100
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: API Token
paths:
/api-tokens:
post:
tags:
- API Token
summary: Regenerate API token
operationId: regenerateApiToken
description: "Regenerates the bearer token for your account.\n\n- Authenticate with a valid, unexpired bearer token.\n\
- The new token is valid for 2 years from the time it is issued.\n- The previous token remains valid until the earlier\
\ of:\n - 14 days after regeneration.\n - Its original expiration time.\n\n- You cannot regenerate another token\
\ while both the new and previous tokens are valid. If you attempt to do so, the operation returns `409 Conflict`.\n"
responses:
'201':
description: OK
content:
application/hal+json:
schema:
$ref: '#/components/schemas/ApiToken'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'409':
description: The user has reached the maximum number of allowed tokens.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
'500':
$ref: '#/components/responses/500'
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Bearer authentication token
schemas:
ApiToken:
type: object
properties:
bearerToken:
type: string
description: The API token for your account.
example: 123e4567-e89b-12d3-a456-426614174000
readOnly: true
validUntil:
type: string
format: date-time
description: The date and time when the generated API token will expire.
example: '2024-12-31T23:59:59Z'
readOnly: true
UnauthorizedError:
type: object
properties:
error:
type: string
example: invalid_token
error_description:
type: string
example: Invalid access token
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.
responses:
'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'
'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