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

# Audio Transcriptions

> OpenAI-compatible speech-to-text endpoint.

Accepts either ``multipart/form-data`` (OpenAI SDK shape: a ``file`` upload
plus text fields) or ``application/json`` (``file_id`` / ``file_url`` plus
text fields). Content-Type drives dispatch.



## OpenAPI

````yaml https://api.edenai.run/v3/docs/openapi.json post /v3/audio/transcriptions
openapi: 3.1.0
info:
  title: Eden AI API V3
  version: 3.0.0
servers:
  - url: https://api.edenai.run
    description: Production server
security: []
paths:
  /v3/audio/transcriptions:
    post:
      tags:
        - Audio
      summary: Audio Transcriptions
      description: >-
        OpenAI-compatible speech-to-text endpoint.


        Accepts either ``multipart/form-data`` (OpenAI SDK shape: a ``file``
        upload

        plus text fields) or ``application/json`` (``file_id`` / ``file_url``
        plus

        text fields). Content-Type drives dispatch.
      operationId: audio_transcriptions_v3_audio_transcriptions_post
      requestBody:
        content:
          application/json:
            schema:
              properties:
                routing:
                  anyOf:
                    - $ref: '#/components/schemas/ProviderRoutingPreferences'
                    - type: 'null'
                  description: >-
                    How to pick between the providers that serve the requested
                    model. Applies only when `model` is a model name with no
                    provider prefix (e.g. 'gpt-5.5'); ignored for a concrete
                    'provider/model' id, which already names its provider. This
                    does not choose the model — for that see `router_candidates`
                    with model='@edenai'.
                model:
                  type: string
                  title: Model
                  description: provider/model, e.g. 'openai/whisper-1'
                language:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: Language
                  description: >-
                    ISO-639-1 language code of the input audio (e.g. 'en'). Omit
                    to let the provider auto-detect where supported.
                prompt:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: Prompt
                  description: >-
                    Optional text to guide the model's style or continue a prior
                    audio segment's context.
                response_format:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: Response Format
                  description: >-
                    Transcript format: 'json', 'text', 'srt', 'verbose_json', or
                    'vtt'. Provider support varies; forwarded as-is.
                timestamp_granularities:
                  anyOf:
                    - items:
                        type: string
                      type: array
                    - type: 'null'
                  title: Timestamp Granularities
                  description: >-
                    Timestamp granularities to populate with 'verbose_json'
                    (['word'] and/or ['segment']).
                temperature:
                  anyOf:
                    - type: number
                      maximum: 1
                      minimum: 0
                    - type: 'null'
                  title: Temperature
                  description: Sampling temperature between 0 and 1.
                user:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: User
                  description: End-user identifier for abuse tracking.
                file_id:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: File Id
                  description: Id of a file previously uploaded to Eden AI.
                file_url:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: File Url
                  description: An https URL or a base64 data URL pointing at the audio.
              type: object
              required:
                - model
              title: TranscriptionJsonBody
              description: >-
                JSON request body, references the audio by ``file_id`` or
                ``file_url``.


                Exactly one of ``file_id`` (an Eden upload id) or ``file_url``
                (an https URL

                or a ``data:audio/...;base64,...`` URL) must be set.
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionResponse'
      security:
        - AuthBearer: []
components:
  schemas:
    ProviderRoutingPreferences:
      properties:
        sort:
          anyOf:
            - type: string
              enum:
                - cost
                - speed
                - latency
                - exact
            - type: 'null'
          title: Sort
          description: >-
            What to optimise for when several providers serve the requested
            model. 'cost' (default) picks the cheapest for this request's shape;
            'speed' the highest tokens/second; 'latency' the fastest to first
            token; 'exact' the most reliable at producing well-formed tool calls
            / structured output. Health is always a filter first — no mode will
            route you to a failing provider. Can also be written as a model
            suffix, e.g. 'gpt-5.5:speed'.
        allow_fallbacks:
          type: boolean
          title: Allow Fallbacks
          description: >-
            Whether other providers of the same model may be tried when the
            chosen one fails. Set false to pin the request to the single best
            provider: it then fails rather than silently moving to another
            seller. useful when a cache-warm prompt would cold-miss elsewhere.
            This governs PROVIDERS of the requested model only; models you list
            in `fallbacks` are your own choice and are always kept.
          default: true
        allowed_providers:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Allowed Providers
          description: >-
            Restrict routing to these providers, e.g. ['openai', 'anthropic'].
            Only providers that serve the requested model are considered, so an
            entry that does not sell it is simply inert. If none of them do, the
            request fails rather than falling back to a provider you excluded.
            Case-insensitive. Applies to routed providers only. a concrete
            'provider/model' you named in `fallbacks` is your own choice and is
            kept.
      type: object
      title: ProviderRoutingPreferences
      description: >-
        How to choose between SELLERS of one model — not which model to use.


        Only meaningful when `model` is a canonical name (`gpt-5.5`) rather than
        a concrete

        `provider/model` — with a concrete id there is nothing to choose
        between. For choosing the

        MODEL itself see ``router_candidates`` and ``model="@edenai"``, which is
        a different router.
    TranscriptionResponse:
      properties:
        cost:
          anyOf:
            - type: number
            - type: 'null'
          title: Cost
        provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider
        text:
          anyOf:
            - type: string
            - type: 'null'
          title: Text
        usage:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Usage
      additionalProperties: true
      type: object
      title: TranscriptionResponse
      description: >-
        OpenAI-compatible transcription response, plus Eden ``cost`` /
        ``provider``.


        The provider's full transcript payload passes through — ``text`` plus
        any

        ``language``, ``duration``, ``words``, and ``segments`` the provider
        returns

        — alongside the Eden-added ``cost`` and ``provider`` fields.
  securitySchemes:
    AuthBearer:
      type: http
      scheme: bearer

````