openapi: 3.1.0 info: contact: email: support@telnyx.com description: Telnyx provides global communications and connectivity APIs for developers — including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform. title: Telnyx Access Tokens Clusters API version: 2.0.0 x-endpoint-cost: light servers: - description: Version 2.0.0 of the Telnyx API url: https://api.telnyx.com/v2 security: - bearerAuth: [] tags: - description: Identify common themes and patterns in your embedded documents name: Clusters paths: /ai/clusters: get: operationId: list_all_requested_clusters_public_text_clusters_get parameters: - description: 'Consolidated page parameter (deepObject style). Originally: page[number], page[size]' explode: true in: query name: page schema: properties: number: default: 0 title: Page[Number] type: integer size: default: 20 title: Page[Size] type: integer type: object style: deepObject responses: '200': content: application/json: schema: $ref: '#/components/schemas/ClusteringRequestInfoData' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: List all clusters tags: - Clusters x-latency-category: responsive post: description: Starts a background task to compute how the data in an [embedded storage bucket](https://developers.telnyx.com/api-reference/embeddings/embed-documents) is clustered. This helps identify common themes and patterns in the data. operationId: compute_new_cluster_public_text_clusters_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PublicTextClusteringRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TextClusteringResponseData' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: Compute new clusters tags: - Clusters x-latency-category: responsive /ai/clusters/{task_id}: delete: operationId: delete_cluster_by_task_id_public_text_clusters__task_id__delete parameters: - in: path name: task_id required: true schema: title: Task Id type: string responses: '204': description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: Delete a cluster tags: - Clusters x-latency-category: responsive get: operationId: fetch_cluster_by_task_id_public_text_clusters__task_id__get parameters: - in: path name: task_id required: true schema: title: Task Id type: string - description: The number of nodes in the cluster to return in the response. Nodes will be sorted by their centrality within the cluster. in: query name: top_n_nodes required: false schema: default: 0 title: Top N Nodes type: integer - description: Whether or not to include subclusters and their nodes in the response. in: query name: show_subclusters required: false schema: default: false title: Show Subclusters type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/ClusteringStatusResponseData' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: Fetch a cluster tags: - Clusters x-latency-category: responsive /ai/clusters/{task_id}/graph: get: operationId: fetch_cluster_image_by_task_id_public_text_clusters__task_id__image_get parameters: - in: path name: task_id required: true schema: title: Task Id type: string - in: query name: cluster_id required: false schema: title: Cluster Id type: integer responses: '200': content: image/png: schema: format: binary type: string description: Successful Response - Returns a PNG image of the cluster visualization. '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: Fetch a cluster visualization tags: - Clusters x-latency-category: responsive components: schemas: TaskStatus: enum: - pending - starting - running - completed - failed title: TaskStatus type: string ClusterNode: properties: filename: description: The corresponding source file of your embedded storage bucket that the node is from. type: string text: description: The text of the node. type: string required: - filename - text title: ClusterNode type: object ValidationError: properties: loc: items: anyOf: - type: string - type: integer title: Location type: array msg: title: Message type: string type: title: Error Type type: string required: - loc - msg - type title: ValidationError type: object ClusteringStatusResponseData: properties: data: $ref: '#/components/schemas/ClusteringStatusResponse' required: - data title: ClusteringStatusResponseData type: object RecursiveCluster: properties: cluster_header: type: string cluster_id: type: string cluster_summary: type: string nodes: items: $ref: '#/components/schemas/ClusterNode' type: array subclusters: items: $ref: '#/components/schemas/RecursiveCluster' type: array total_number_of_nodes: type: integer required: - cluster_id - cluster_summary - total_number_of_nodes title: RecursiveCluster type: object ClusteringRequestInfo: properties: bucket: type: string created_at: format: date-time type: string finished_at: format: date-time type: string min_cluster_size: type: integer min_subcluster_size: type: integer status: $ref: '#/components/schemas/TaskStatus' task_id: type: string required: - task_id - status - bucket - created_at - finished_at - min_cluster_size - min_subcluster_size title: ClusteringRequestInfo type: object Meta: properties: page_number: type: integer page_size: type: integer total_pages: type: integer total_results: type: integer required: - total_pages - total_results - page_number - page_size title: Meta type: object TextClusteringResponse: properties: task_id: type: string required: - task_id title: TextClusteringResponse type: object HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' title: Detail type: array title: HTTPValidationError type: object TextClusteringResponseData: properties: data: $ref: '#/components/schemas/TextClusteringResponse' required: - data title: TextClusteringResponseData type: object ClusteringStatusResponse: properties: bucket: type: string clusters: items: $ref: '#/components/schemas/RecursiveCluster' type: array status: $ref: '#/components/schemas/TaskStatus' required: - status - bucket - clusters title: ClusteringStatusResponse type: object PublicTextClusteringRequest: properties: bucket: description: The embedded storage bucket to compute the clusters from. The bucket must already be [embedded](https://developers.telnyx.com/api-reference/embeddings/embed-documents). type: string files: description: Array of files to filter which are included. items: type: string type: array min_cluster_size: default: 25 description: Smallest number of related text chunks to qualify as a cluster. Top-level clusters should be thought of as identifying broad themes in your data. type: integer min_subcluster_size: default: 5 description: Smallest number of related text chunks to qualify as a sub-cluster. Sub-clusters should be thought of as identifying more specific topics within a broader theme. type: integer prefix: description: Prefix to filter whcih files in the buckets are included. type: string required: - bucket title: PublicTextClusteringRequest type: object ClusteringRequestInfoData: properties: data: items: $ref: '#/components/schemas/ClusteringRequestInfo' type: array meta: $ref: '#/components/schemas/Meta' required: - data - meta title: ClusteringRequestInfoData type: object securitySchemes: bearerAuth: scheme: bearer type: http branded-calling_bearerAuth: description: API key passed as a Bearer token in the Authorization header scheme: bearer type: http oauthClientAuth: description: OAuth 2.0 authentication for Telnyx API and MCP integrations flows: authorizationCode: authorizationUrl: https://api.telnyx.com/v2/oauth/authorize refreshUrl: https://api.telnyx.com/v2/oauth/token scopes: admin: Administrative access to Telnyx resources tokenUrl: https://api.telnyx.com/v2/oauth/token clientCredentials: scopes: admin: Administrative access to Telnyx resources tokenUrl: https://api.telnyx.com/v2/oauth/token type: oauth2 outbound-voice-profiles_bearerAuth: bearerFormat: JWT scheme: bearer type: http pronunciation-dicts_bearerAuth: description: Telnyx API v2 key. Obtain from https://portal.telnyx.com scheme: bearer type: http stored-payment-transactions_bearerAuth: bearerFormat: JWT scheme: bearer type: http