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

# Transcribe audio (speech-to-text)

> Transcribes speech to text using OpenAI Whisper. Send the audio either as a binary `audio` field (multipart/form-data, stored in Devic before transcription) or as an `audioUrl` pointing to an already hosted file. Returns the transcribed text and a `transcriptId` that can be referenced when posting the resulting message.



## OpenAPI

````yaml POST /v1/whisper
openapi: 3.0.0
info:
  title: Devic.ai Public API
  description: >-
    Devic.ai is an AI platform that allows you to create, manage, and use AI
    agents for various tasks.
  version: 1.0.0
  contact:
    name: Devic.ai Support
    url: https://devic.ai
  x-logo:
    url: https://devic.ai/logo.png
    altText: Devic.ai Logo
  x-summary: Public API for interacting with Devic.ai platform
servers:
  - url: https://api.devic.ai
    description: Production server
  - url: https://staging-api.devic.ai
    description: Staging server
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Group agents, assistants, documents and costs into projects
  - name: Documents
    description: >-
      Knowledge base documents: create, version, attach and index markdown
      content for RAG
  - name: Document Folders
    description: Organise knowledge base documents into folders and attach them in bulk
  - name: Files
    description: Upload files and obtain shareable download URLs to attach to messages
  - name: Agents
    description: Endpoints related to AI agents and their operations
  - name: Assistants
    description: Endpoints for interacting with assistants and their specializations
  - name: Tool Servers
    description: Endpoints for managing tool servers and their tool definitions
  - name: Health
    description: API health check endpoints
  - name: Documentation
    description: Endpoints for retrieving markdown documentation
  - name: Integrations
    description: Connect third-party apps and turn them into tools
  - name: Triggers
    description: Start an agent or an assistant from an app event
  - name: Tenant Integrations
    description: Apps that each end user connects for themselves
  - name: Memory
    description: What an assistant remembers between conversations
  - name: Skills
    description: Reusable instruction packs for agents and assistants
  - name: Speech to Text
    description: Audio transcription
  - name: Tenants
    description: Tenants, subtenants and their usage
  - name: MCP Gateway
    description: One MCP endpoint over many servers, with visibility per user
  - name: Tenant Sessions
    description: Tokens that prove which end user is calling
paths:
  /v1/whisper:
    post:
      tags:
        - Speech to Text
      summary: Transcribe audio (speech-to-text)
      description: >-
        Transcribes speech to text using OpenAI Whisper. Send the audio either
        as a binary `audio` field (multipart/form-data, stored in Devic before
        transcription) or as an `audioUrl` pointing to an already hosted file.
        Returns the transcribed text and a `transcriptId` that can be referenced
        when posting the resulting message.
      operationId: transcribeAudio
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                audio:
                  type: string
                  format: binary
                  description: Audio file to transcribe (max 25MB).
                audioUrl:
                  type: string
                  description: Download URL of an already hosted audio file.
                language:
                  type: string
                  description: ISO-639-1 language hint (e.g. "es", "en").
                messageUid:
                  type: string
                  description: Optional uid of the ChatMessage this audio refers to.
                chatUid:
                  type: string
                  description: Optional chat uid this transcript belongs to.
                tenantId:
                  type: string
                  description: Optional tenant id for multi-tenant environments.
          application/json:
            schema:
              type: object
              properties:
                audio:
                  type: string
                  format: binary
                  description: Audio file to transcribe (max 25MB).
                audioUrl:
                  type: string
                  description: Download URL of an already hosted audio file.
                language:
                  type: string
                  description: ISO-639-1 language hint (e.g. "es", "en").
                messageUid:
                  type: string
                  description: Optional uid of the ChatMessage this audio refers to.
                chatUid:
                  type: string
                  description: Optional chat uid this transcript belongs to.
                tenantId:
                  type: string
                  description: Optional tenant id for multi-tenant environments.
      responses:
        '200':
          description: Audio transcribed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhisperTranscriptionResponseDto'
        '400':
          description: No audio provided, audio too large, or download failed
        '401':
          description: Unauthorized
        '429':
          description: Too Many Requests - Rate limit exceeded
        '500':
          description: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    WhisperTranscriptionResponseDto:
      type: object
      properties:
        transcriptId:
          type: string
          description: >-
            Public identifier of the transcript. Send it back as `transcriptId`
            when posting the message so the conversation keeps a link to the
            audio.
        text:
          type: string
          description: Transcribed text.
        language:
          type: string
          description: Language hint used, if any.
        audioUrl:
          type: string
          description: Download URL of the source audio.
        model:
          type: string
          description: Transcription model used.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use JWT token for authentication

````