FlexAI Audio API

Speech-to-text and text-to-speech

OpenAPI Specification

flexai-audio-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: FlexAI Token Factory Audio API
  version: v1
  description: 'OpenAI-compatible inference API for FlexAI Token Factory. A single API key provides access to open models across text, code, reasoning, vision, embedding, image, video, and audio modalities, priced by usage per model. The API is a drop-in replacement for the OpenAI API: point the OpenAI SDK (or any OpenAI-compatible client) at the FlexAI base URL and supply a FlexAI API key. This specification captures the endpoints FlexAI documents as supported; some OpenAI endpoints (assistants, threads, runs, files, fine-tuning, batches) are explicitly not served by this endpoint.'
  contact:
    name: FlexAI
    url: https://docs.flex.ai
  termsOfService: https://flex.ai/terms-of-service
  x-provenance:
    generated: '2026-07-19'
    method: generated
    source: https://docs.flex.ai/inference-api/reference/openai-compatibility and https://flex.ai/llms.txt — generated from FlexAI's documented OpenAI-compatible endpoint surface. Not a provider-published OpenAPI file.
servers:
- url: https://tokens.flex.ai/v1
  description: FlexAI Token Factory (serverless inference)
security:
- bearerAuth: []
tags:
- name: Audio
  description: Speech-to-text and text-to-speech
paths:
  /audio/transcriptions:
    post:
      operationId: createTranscription
      summary: Transcribe audio to text (speech-to-text)
      description: Transcribe audio using an open transcription model (e.g. Whisper). Billed per minute of audio.
      tags:
      - Audio
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - model
              - file
              properties:
                model:
                  type: string
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: The transcription result
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /audio/speech:
    post:
      operationId: createSpeech
      summary: Synthesize speech from text (text-to-speech)
      description: Generate audio from input text using an open TTS model (e.g. Kokoro). Billed per character.
      tags:
      - Audio
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - model
              - input
              properties:
                model:
                  type: string
                input:
                  type: string
                voice:
                  type: string
      responses:
        '200':
          description: The synthesized audio stream
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    Unauthorized:
      description: Invalid or missing API key (error code `authentication_error`; includes a `doc_url` extension pointing at the auth docs).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Request validation failure. The error object includes a `param` field indicating the offending path (OpenAI-compatible error envelope).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Account-level rate limit or budget exceeded. Includes `Retry-After` and `x-ratelimit-*` response headers.
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds to wait before retrying.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            type:
              type: string
            param:
              type: string
              nullable: true
            code:
              type: string
            doc_url:
              type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'FlexAI API key passed as a bearer token: `Authorization: Bearer $FLEXAI_API_KEY`. Create a key at https://tokens.flex.ai/signup.'