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

# Audio Transcriptions

> OpenAI-compatible speech-to-text transcription

Authentication is optional. See [Rate Limits](/gateway/rate-limits) for per-tier
quotas. For available transcription models, see [Models](/gateway/models).

<RequestExample>
  ```python Python theme={"theme":{"light":"github-light","dark":"dark-plus"}}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://gateway.vlm.run/v1/openai",
      api_key="<VLMRUN_API_KEY>",
  )

  with open("sample.mp3", "rb") as audio_file:
      response = client.audio.transcriptions.create(
          model="<transcription-model-id>",
          file=audio_file,
      )

  print(response.text)
  ```

  ```bash cURL theme={"theme":{"light":"github-light","dark":"dark-plus"}}
  curl https://gateway.vlm.run/v1/openai/audio/transcriptions \
    -X POST \
    -H "Authorization: Bearer $VLMRUN_API_KEY" \
    -F "model=<transcription-model-id>" \
    -F "file=@sample.mp3"
  ```
</RequestExample>


## OpenAPI

````yaml gateway/openapi.json POST /v1/openai/audio/transcriptions
openapi: 3.1.0
info:
  title: VLM Run Gateway API
  summary: Unified gateway for real-time vision-language inference.
  description: |
    The **VLM Run Gateway API** is the public entry point to the VLM Run
    inference platform. It fronts vision-language and computer-vision models
    behind a single OpenAI-compatible surface plus first-class real-time
    transports.

    [Terms of service](https://vlm.run/terms) |
    [VLM Run](https://vlm.run) |
    [Send email to support@vlm.run](mailto:support@vlm.run)
  termsOfService: https://vlm.run/terms
  contact:
    name: VLM Run
    url: https://vlm.run/
    email: support@vlm.run
  version: 0.10.0
servers:
  - url: https://gateway.vlm.run
    description: Production
  - url: http://localhost:8001
    description: Local development
security: []
paths:
  /v1/openai/audio/transcriptions:
    post:
      summary: Audio Transcriptions
      description: |-
        OpenAI-compatible ``/v1/audio/transcriptions``.

        Accepts the standard OpenAI multipart form (``file`` upload +
        per-field config) and forwards the audio bytes to the
        transcription deployment's :meth:`transcribe` RPC. Renders the
        result as ``json`` (default), ``verbose_json``, plain ``text``,
        ``srt``, or ``vtt`` per ``response_format``.
      operationId: audio_transcriptions_v1_openai_audio_transcriptions_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/Body_audio_transcriptions_v1_openai_audio_transcriptions_post
            example: {}
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: >-
                  Response Audio Transcriptions V1 Openai Audio Transcriptions
                  Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    Body_audio_transcriptions_v1_openai_audio_transcriptions_post:
      properties:
        file:
          anyOf:
            - type: string
              contentMediaType: application/octet-stream
            - type: 'null'
          title: File
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        model:
          type: string
          title: Model
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt
        response_format:
          type: string
          title: Response Format
          default: json
        temperature:
          type: number
          title: Temperature
          default: 0
        timestamp_granularities[]:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Timestamp Granularities[]
      type: object
      required:
        - model
      title: Body_audio_transcriptions_v1_openai_audio_transcriptions_post
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````