> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulate.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Multilingual Fast Transcription Batch

> Fast multilingual batch transcription. Optionally declare the spoken language for the fastest path; otherwise the language is detected automatically.



## OpenAPI

````yaml api/velma_2_stt_batch_multilingual_vfast.yaml POST /api/velma-2-stt-batch-multilingual-vfast
openapi: 3.1.0
info:
  title: Modulate Multilingual Speech-to-Text (Batch)
  version: 1.1.0
  description: >
    Transcribe an audio file in any supported language. Optionally declare the
    spoken language for direct, fastest-path transcription; if omitted, the
    language is detected automatically. Returns one transcript, the language the
    transcript is in, and audio duration metadata. Pure transcription only - no
    diarization, emotion detection, accent detection, PII/PHI tagging, or
    per-utterance data.
servers:
  - url: https://platform.modulate.ai
security:
  - ApiKeyAuth: []
paths:
  /api/velma-2-stt-batch-multilingual-vfast:
    post:
      summary: Transcribe a multilingual audio file
      description: |
        Accepts a single audio file plus an optional `language` form field and
        returns its full transcript as a synchronous JSON response.
      operationId: transcribeMultilingual
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - upload_file
              properties:
                upload_file:
                  type: string
                  format: binary
                  description: >
                    Audio file to transcribe. Must be non-empty. Supported
                    formats:

                    `.aac`, `.aiff`, `.flac`, `.mov`, `.mp3`, `.mp4`, `.ogg`,

                    `.opus`, `.wav`, `.webm`. Maximum file size: 100 MB.
                language:
                  type: string
                  description: |
                    Optional. The spoken language as a short code (e.g. `en`,
                    `es`, `fr`, `ja`). When provided, the audio is transcribed
                    directly in that language and the same value is echoed back
                    in the `language` response field. When omitted, the language
                    is detected automatically and the detected code is returned
                    in that field.
                  example: es
      responses:
        '200':
          description: Transcription completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionResponse'
              examples:
                declared_language:
                  summary: Spanish audio with a declared language
                  value:
                    text: Hola a todos. Bienvenidos a la junta semanal.
                    duration_ms: 4200
                    language: es
                detected_language:
                  summary: Language detected automatically
                  value:
                    text: >-
                      Welcome to today's meeting. We'll be discussing the
                      quarterly results.
                    duration_ms: 9000
                    language: en
        '400':
          description: >
            Bad request - the uploaded file is empty, its format is not
            supported, or the audio could not be decoded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_format:
                  summary: Invalid file format
                  value:
                    detail: >-
                      Unsupported file format. Supported formats: .aac, .aiff,
                      .flac, .mov, .mp3, .mp4, .ogg, .opus, .wav, .webm.
                empty_file:
                  summary: Empty file
                  value:
                    detail: The uploaded file is empty.
                unprocessable:
                  summary: Audio could not be decoded
                  value:
                    detail: >-
                      The audio could not be processed. It may be corrupted or
                      in an unsupported format.
                no_audio_stream:
                  summary: No decodable audio stream
                  value:
                    detail: No decodable audio stream was found in the file.
                unsupported_codec:
                  summary: Unsupported audio codec
                  value:
                    detail: The audio codec is not supported.
                corrupt_audio:
                  summary: Corrupted or truncated audio
                  value:
                    detail: The audio file appears to be corrupted or truncated.
        '401':
          description: Unauthorized - the API key is missing or not valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missing_api_key:
                  summary: Missing API key
                  value:
                    detail: Missing API key.
                invalid_api_key:
                  summary: Invalid API key
                  value:
                    detail: Invalid API key.
        '403':
          description: Forbidden - the request is not permitted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                not_permitted:
                  summary: Request not permitted
                  value:
                    detail: This request is not permitted.
                model_access_denied:
                  summary: No access to this model
                  value:
                    detail: This API key does not have access to this model.
        '413':
          description: >-
            Request entity too large - the file exceeds the maximum allowed
            size.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: The uploaded file is too large.
        '422':
          description: >
            Unprocessable entity - a required request field is missing or
            malformed (for example, the `upload_file` form field).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: >
            Too many requests - the request was denied due to insufficient
            credits or a usage limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                insufficient_credits:
                  summary: Insufficient credits
                  value:
                    detail: Insufficient credits.
                concurrency_limit:
                  summary: Concurrent request limit reached
                  value:
                    detail: >-
                      Concurrent request limit reached. Please retry after your
                      in-flight requests complete.
                monthly_limit:
                  summary: Monthly usage limit reached
                  value:
                    detail: Monthly usage limit reached.
        '500':
          description: Internal server error during processing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: Internal server error
        '502':
          description: Bad gateway - the request could not be completed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: Unable to complete the request. Please try again.
        '504':
          description: Gateway timeout - processing timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: The request timed out. Please try again.
      security:
        - ApiKeyAuth: []
components:
  schemas:
    TranscriptionResponse:
      type: object
      required:
        - text
        - duration_ms
        - language
      properties:
        text:
          type: string
          description: |
            The complete transcribed text from the audio file. Text includes
            automatic capitalization and punctuation. May be an empty string
            if no speech was recognized.
          example: Hola a todos. Bienvenidos a la junta semanal.
        duration_ms:
          type: integer
          minimum: 0
          description: The total duration of the processed audio in milliseconds.
          example: 4200
        language:
          type: string
          description: |
            The language the transcript is in, as a short code (e.g. `en`, `es`,
            `fr`, `ja`).

            If the request declared a `language`, that value is echoed back
            unchanged. If it was omitted, this is the language detected
            automatically from the audio.

            For audio containing more than one language, this reports the
            predominant language detected. The transcript itself still reflects
            each part of the audio in the language spoken there.
          example: es
    ErrorResponse:
      type: object
      required:
        - detail
      properties:
        detail:
          type: string
          description: Human-readable error message.
    HTTPValidationError:
      type: object
      properties:
        detail:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
    ValidationError:
      type: object
      required:
        - loc
        - msg
        - type
      properties:
        loc:
          type: array
          items:
            anyOf:
              - type: string
              - type: integer
        msg:
          type: string
        type:
          type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key used for authentication and usage tracking.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.