Telnyx Embeddings API

Embed documents and perform text searches

OpenAPI Specification

telnyx-embeddings-api-openapi.yml Raw ↑
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 Embeddings 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: Embed documents and perform text searches
  name: Embeddings
paths:
  /ai/embeddings:
    get:
      description: Retrieve tasks for the user that are either `queued`, `processing`, `failed`, `success` or `partial_success` based on the query string. Defaults to `queued` and `processing`.
      operationId: GetTasksByStatus
      parameters:
      - description: List of task statuses i.e. `status=queued&status=processing`
        in: query
        name: status
        required: false
        schema:
          default:
          - processing
          - queued
          description: List of task statuses i.e. `status=queued&status=processing`
          items:
            type: string
          title: Status
          type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackgroundTasksQueryResponseData'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get Tasks by Status
      tags:
      - Embeddings
      x-latency-category: responsive
    post:
      description: "Perform embedding on a Telnyx Storage Bucket using the a embedding model.\nThe current supported file types are:\n- PDF\n- HTML\n- txt/unstructured text files\n- json\n- csv\n- audio / video (mp3, mp4, mpeg, mpga, m4a, wav, or webm ) - Max of 100mb file size.\n\nAny files not matching the above types will be attempted to be embedded as unstructured text.\n\nThis process can be slow, so it runs in the background and the user can check\nthe status of the task using the endpoint `/ai/embeddings/{task_id}`.\n\n **Important Note**: When you update documents in a Telnyx Storage bucket, their associated embeddings are automatically kept up to date. If you add or update a file, it is automatically embedded. If you delete a file, the embeddings are deleted for that particular file.\n\nYou can also specify a custom `loader` param. Currently the only supported loader value is\n`intercom` which loads Intercom article jsons as specified by [the Intercom article API](https://developers.intercom.com/docs/references/rest-api/api.intercom.io/Articles/article/)\nThis loader will split each article into paragraphs and save additional parameters relevant to Intercom docs, such as\n`article_url` and `heading`. These values will be returned by the `/v2/ai/embeddings/similarity-search` endpoint in the `loader_metadata` field."
      operationId: PostEmbedding
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmbeddingBucketRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbeddingResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Embed documents
      tags:
      - Embeddings
      x-latency-category: responsive
  /ai/embeddings/buckets:
    get:
      description: Get all embedding buckets for a user.
      operationId: GetEmbeddingBuckets
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserEmbeddedBucketsData'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: List embedded buckets
      tags:
      - Embeddings
      x-latency-category: responsive
  /ai/embeddings/buckets/{bucket_name}:
    delete:
      description: Deletes an entire bucket's embeddings and disables the bucket for AI-use, returning it to normal storage pricing.
      operationId: embedding_bucket_files_public_embedding_buckets__bucket_name__delete
      parameters:
      - in: path
        name: bucket_name
        required: true
        schema:
          title: Bucket Name
          type: string
      responses:
        '200':
          description: Bucket Embeddings Deleted Successfully
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BucketNotFoundError'
          description: Bucket Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Disable AI for an Embedded Bucket
      tags:
      - Embeddings
      x-latency-category: responsive
    get:
      description: Get all embedded files for a given user bucket, including their processing status.
      operationId: GetBucketName
      parameters:
      - in: path
        name: bucket_name
        required: true
        schema:
          title: Bucket Name
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbeddingsBucketFilesData'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get file-level embedding statuses for a bucket
      tags:
      - Embeddings
      x-latency-category: responsive
  /ai/embeddings/similarity-search:
    post:
      description: "Perform a similarity search on a Telnyx Storage Bucket, returning the most similar `num_docs` document chunks to the query.\n\nCurrently the only available distance metric is cosine similarity which will return a `distance` between 0 and 1.\nThe lower the distance, the more similar the returned document chunks are to the query.\nA `certainty` will also be returned, which is a value between 0 and 1 where the higher the certainty, the more similar the document.\nYou can read more about Weaviate distance metrics here: [Weaviate Docs](https://weaviate.io/developers/weaviate/config-refs/distances)\n\nIf a bucket was embedded using a custom loader, such as `intercom`, the additional metadata will be returned in the \n`loader_metadata` field."
      operationId: PostEmbeddingSimilaritySearch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmbeddingSimilaritySearchRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbeddingSimilaritySearchResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Search for documents
      tags:
      - Embeddings
      x-latency-category: responsive
  /ai/embeddings/url:
    post:
      description: Embed website content from a specified URL, including child pages up to 5 levels deep within the same domain. The process crawls and loads content from the main URL and its linked pages into a Telnyx Cloud Storage bucket. As soon as each webpage is added to the bucket, its content is immediately processed for embeddings, that can be used for [similarity search](https://developers.telnyx.com/api-reference/embeddings/search-for-documents) and [clustering](https://developers.telnyx.com/docs/inference/clusters).
      operationId: PostEmbeddingUrl
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmbeddingUrlRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbeddingResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Embed URL content
      tags:
      - Embeddings
      x-latency-category: responsive
  /ai/embeddings/{task_id}:
    get:
      description: 'Check the status of a current embedding task. Will be one of the following:

        - `queued` - Task is waiting to be picked up by a worker

        - `processing` - The embedding task is running

        - `success` - Task completed successfully and the bucket is embedded

        - `failure` - Task failed and no files were embedded successfully

        - `partial_success` - Some files were embedded successfully, but at least one failed'
      operationId: GetEmbeddingTask
      parameters:
      - in: path
        name: task_id
        required: true
        schema:
          title: Task Id
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskStatusResponse'
          description: Successful Response
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      summary: Get an embedding task's status
      tags:
      - Embeddings
      x-latency-category: responsive
components:
  schemas:
    SupportedEmbeddingModels:
      description: Supported models to vectorize and embed documents.
      enum:
      - thenlper/gte-large
      - intfloat/multilingual-e5-large
      title: SupportedEmbeddingModels
      type: string
    BucketNotFoundError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/NotFoundError'
          title: Detail
          type: array
      title: HTTPValidationError
      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
    EmbeddingMetadata:
      properties:
        certainty:
          title: Certainty
          type: number
        checksum:
          title: Checksum
          type: string
        embedding:
          title: Embedding
          type: string
        filename:
          title: Filename
          type: string
        loader_metadata:
          additionalProperties: true
          title: Loader Metadata
          type: object
        source:
          title: Source
          type: string
      required:
      - source
      - checksum
      - embedding
      - filename
      title: EmbeddingMetadata
      type: object
    BackgroundTaskStatus:
      description: Status of an embeddings task.
      enum:
      - queued
      - processing
      - success
      - failure
      - partial_success
      title: BackgroundTaskStatus
      type: string
    EmbeddingSimilaritySearchDocument:
      description: "Example document response from embedding service\n{\n  \"document_chunk\": \"your status? This is Vanessa Bloome...\",\n  \"distance\": 0.18607724,\n  \"metadata\": {\n    \"source\": \"https://us-central-1.telnyxstorage.com/scripts/bee_movie_script.txt\",\n    \"checksum\": \"343054dd19bab39bbf6761a3d20f1daa\",\n    \"embedding\": \"openai/text-embedding-ada-002\",\n    \"filename\": \"bee_movie_script.txt\",\n    \"certainty\": 0.9069613814353943,\n    \"loader_metadata\": {}\n  }\n}"
      properties:
        distance:
          title: Distance
          type: number
        document_chunk:
          title: Document Chunk
          type: string
        metadata:
          $ref: '#/components/schemas/EmbeddingMetadata'
      required:
      - document_chunk
      - distance
      - metadata
      title: EmbeddingSimilaritySearchDocument
      type: object
    SupportedEmbeddingLoaders:
      description: Supported types of custom document loaders for embeddings.
      enum:
      - default
      - intercom
      title: SupportedEmbeddingLoaders
      type: string
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    UserEmbeddedBucketsData:
      properties:
        data:
          $ref: '#/components/schemas/UserEmbeddedBuckets'
      required:
      - data
      title: UserEmbeddedBucketsData
      type: object
    TaskStatusResponse:
      properties:
        data:
          properties:
            created_at:
              title: Created At
              type: string
            finished_at:
              title: Finished At
              type: string
            status:
              $ref: '#/components/schemas/BackgroundTaskStatus'
            task_id:
              format: uuid
              title: Task ID
              type: string
            task_name:
              title: Task Name
              type: string
          type: object
      required:
      - data
      title: TaskStatusResponse
      type: object
    UserEmbeddedBuckets:
      properties:
        buckets:
          items:
            type: string
          title: Buckets
          type: array
      required:
      - buckets
      title: UserEmbeddedBuckets
      type: object
    BackgroundTasksQueryResponseData:
      properties:
        data:
          items:
            $ref: '#/components/schemas/BackgroundTasksQueryResponse'
          title: Data
          type: array
      required:
      - data
      title: BackgroundTasksQueryResponseData
      type: object
    BackgroundTasksQueryResponse:
      properties:
        bucket:
          title: Bucket
          type: string
        created_at:
          format: date-time
          title: Created At
          type: string
        finished_at:
          format: date-time
          title: Finished At
          type: string
        status:
          $ref: '#/components/schemas/BackgroundTaskStatus'
        task_id:
          title: Task Id
          type: string
        task_name:
          title: Task Name
          type: string
        user_id:
          title: User Id
          type: string
      required:
      - user_id
      - task_id
      - task_name
      - status
      - created_at
      title: BackgroundTasksQueryResponse
      type: object
    NotFoundError:
      properties:
        code:
          title: Telnyx error code
          type: string
        detail:
          title: Error details
          type: string
        title:
          title: Error title
          type: string
      required:
      - detail
      title: NotFoundError
      type: object
    EmbeddingsBucketFiles:
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        error_reason:
          title: Error Reason
          type: string
        filename:
          title: Filename
          type: string
        last_embedded_at:
          format: date-time
          title: Last Embedded At
          type: string
        status:
          title: Status
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
      - filename
      - status
      - created_at
      title: EmbeddingsBucketFiles
      type: object
    EmbeddingUrlRequest:
      properties:
        bucket_name:
          description: Name of the bucket to store the embeddings. This bucket must already exist.
          title: Bucket Name
          type: string
        url:
          description: The URL of the webpage to embed
          title: URL
          type: string
      required:
      - url
      - bucket_name
      title: EmbeddingUrlRequest
      type: object
    EmbeddingSimilaritySearchResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/EmbeddingSimilaritySearchDocument'
          title: Data
          type: array
      required:
      - data
      title: EmbeddingSimilaritySearchResponse
      type: object
    EmbeddingSimilaritySearchRequest:
      properties:
        bucket_name:
          title: Bucket Name
          type: string
        num_of_docs:
          default: 3
          title: Num Of Docs
          type: integer
        query:
          title: Query
          type: string
      required:
      - bucket_name
      - query
      title: EmbeddingSimilaritySearchRequest
      type: object
    EmbeddingsBucketFilesData:
      properties:
        data:
          items:
            $ref: '#/components/schemas/EmbeddingsBucketFiles'
          title: Data
          type: array
      required:
      - data
      title: EmbeddingsBucketFilesData
      type: object
    EmbeddingBucketRequest:
      properties:
        bucket_name:
          title: Bucket Name
          type: string
        document_chunk_overlap_size:
          default: 512
          title: Document Chunk Overlap Size
          type: integer
        document_chunk_size:
          default: 1024
          title: Document Chunk Size
          type: integer
        embedding_model:
          allOf:
          - $ref: '#/components/schemas/SupportedEmbeddingModels'
          default: thenlper/gte-large
        loader:
          allOf:
          - $ref: '#/components/schemas/SupportedEmbeddingLoaders'
          default: default
      required:
      - bucket_name
      title: EmbeddingBucketRequest
      type: object
    EmbeddingResponse:
      properties:
        data:
          properties:
            created_at:
              title: Created At
              type: string
            finished_at:
              title: Finished At
              type:
              - string
              - 'null'
            status:
              title: Status
              type: string
            task_id:
              format: uuid
              title: Task ID
              type: string
            task_name:
              title: Task Name
              type: string
            user_id:
              format: uuid
              title: User ID
              type: string
          type: object
      required:
      - data
      title: EmbeddingResponse
      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