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