TrueFoundry Chat API

Chat completion operations for LLM conversation

OpenAPI Specification

truefoundry-chat-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TrueFoundry AI Gateway Audio Chat API
  description: The TrueFoundry AI Gateway API is an OpenAI-compatible proxy layer providing unified access to 1000+ language models across 30+ providers through a single endpoint. It supports chat completions, embeddings, image generation, audio processing, batch operations, file management, content moderation, and model management. The gateway provides centralized authentication, rate limiting, budget controls, observability, and MCP server orchestration.
  version: 1.0.0
  contact:
    name: TrueFoundry Support
    url: https://www.truefoundry.com/
    email: support@truefoundry.com
  termsOfService: https://www.truefoundry.com/privacy-policy
servers:
- url: https://app.truefoundry.com/api/llm
  description: TrueFoundry AI Gateway (default control plane)
- url: https://{control_plane_url}/api/llm
  description: Self-hosted TrueFoundry control plane
  variables:
    control_plane_url:
      default: app.truefoundry.com
      description: Your TrueFoundry control plane URL
security:
- BearerAuth: []
tags:
- name: Chat
  description: Chat completion operations for LLM conversation
paths:
  /chat/completions:
    post:
      summary: Create Chat Completion
      description: Generate chat-based completions using the specified model. Supports streaming, tool calling, and all OpenAI-compatible parameters. Routes to 1000+ LLMs across 30+ providers based on the model identifier.
      operationId: createChatCompletion
      tags:
      - Chat
      parameters:
      - name: x-tfy-metadata
        in: header
        required: false
        description: Optional metadata JSON string for request logging
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
      responses:
        '200':
          description: Chat completion result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
            text/event-stream:
              schema:
                type: string
                description: SSE stream of completion chunks when stream=true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    RateLimited:
      description: Too many requests - rate limit exceeded
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  type:
                    type: string
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  type:
                    type: string
                  code:
                    type: string
    Unauthorized:
      description: Unauthorized - invalid or missing API key
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  type:
                    type: string
  schemas:
    ChatCompletionRequest:
      type: object
      required:
      - model
      - messages
      properties:
        model:
          type: string
          description: Model identifier (e.g., gpt-4o, claude-3-5-sonnet-20241022, gemini-2.0-flash). Use the provider's model ID as displayed in TrueFoundry's model catalog.
        messages:
          type: array
          description: Conversation history
          items:
            type: object
            required:
            - role
            - content
            properties:
              role:
                type: string
                enum:
                - system
                - user
                - assistant
                - function
                - tool
                - developer
              content:
                oneOf:
                - type: string
                - type: array
              name:
                type: string
              tool_calls:
                type: array
              tool_call_id:
                type: string
        tools:
          type: array
          description: Tool definitions for function calling
          items:
            type: object
        tool_choice:
          description: Controls tool usage
          oneOf:
          - type: string
            enum:
            - none
            - auto
            - required
          - type: object
        temperature:
          type: number
          minimum: 0
          maximum: 2
          description: Sampling randomness (0=deterministic)
        top_p:
          type: number
          minimum: 0
          maximum: 1
        top_k:
          type: integer
          minimum: 1
        n:
          type: integer
          minimum: 1
          default: 1
        stream:
          type: boolean
          default: false
        max_tokens:
          type: integer
          minimum: 1
        stop:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        presence_penalty:
          type: number
          minimum: -2
          maximum: 2
        frequency_penalty:
          type: number
          minimum: -2
          maximum: 2
        logprobs:
          type: boolean
        user:
          type: string
          description: End-user identifier for monitoring
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          enum:
          - chat.completion
        created:
          type: integer
          format: unix-timestamp
        model:
          type: string
        choices:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
              message:
                type: object
                properties:
                  role:
                    type: string
                  content:
                    type: string
                  tool_calls:
                    type: array
              finish_reason:
                type: string
                enum:
                - stop
                - length
                - tool_calls
                - content_filter
              logprobs:
                type: object
        usage:
          type: object
          properties:
            prompt_tokens:
              type: integer
            completion_tokens:
              type: integer
            total_tokens:
              type: integer
            prompt_tokens_details:
              type: object
            completion_tokens_details:
              type: object
        service_tier:
          type: string
        system_fingerprint:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: TrueFoundry API key (JWT format)