Deepgram Pre-Recorded API

Transcribe pre-recorded audio files or audio from URLs.

Documentation

Specifications

Other Resources

OpenAPI Specification

deepgram-pre-recorded-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Deepgram Management Balances Pre-Recorded API
  description: The Deepgram Management API allows developers to programmatically manage their Deepgram account resources. It provides endpoints for managing projects, API keys, team members, invitations, scopes, billing balances, usage tracking, and model metadata. This API enables automation of administrative tasks and integration of Deepgram account management into existing workflows and infrastructure tooling.
  version: '1.0'
  contact:
    name: Deepgram Support
    url: https://developers.deepgram.com
  termsOfService: https://deepgram.com/tos
servers:
- url: https://api.deepgram.com
  description: Deepgram Production Server
security:
- bearerAuth: []
tags:
- name: Pre-Recorded
  description: Transcribe pre-recorded audio files or audio from URLs.
paths:
  /v1/listen:
    post:
      operationId: transcribePreRecordedAudio
      summary: Deepgram Transcribe pre-recorded audio
      description: Transcribes and optionally analyzes pre-recorded audio. Accepts audio as a URL reference in the request body or as raw binary audio data. Supports a wide range of audio formats and provides options for punctuation, diarization, smart formatting, language detection, summarization, sentiment analysis, topic detection, and intent recognition through query parameters.
      tags:
      - Pre-Recorded
      parameters:
      - $ref: '#/components/parameters/model'
      - $ref: '#/components/parameters/language'
      - $ref: '#/components/parameters/punctuate'
      - $ref: '#/components/parameters/diarize'
      - $ref: '#/components/parameters/diarize_version'
      - $ref: '#/components/parameters/smart_format'
      - $ref: '#/components/parameters/utterances'
      - $ref: '#/components/parameters/utt_split'
      - $ref: '#/components/parameters/keywords'
      - $ref: '#/components/parameters/search'
      - $ref: '#/components/parameters/replace'
      - $ref: '#/components/parameters/redact'
      - $ref: '#/components/parameters/paragraphs'
      - $ref: '#/components/parameters/detect_language'
      - $ref: '#/components/parameters/filler_words'
      - $ref: '#/components/parameters/multichannel'
      - $ref: '#/components/parameters/alternatives'
      - $ref: '#/components/parameters/numerals'
      - $ref: '#/components/parameters/tag'
      - $ref: '#/components/parameters/callback'
      - $ref: '#/components/parameters/callback_method'
      - $ref: '#/components/parameters/sentiment'
      - $ref: '#/components/parameters/summarize'
      - $ref: '#/components/parameters/topics'
      - $ref: '#/components/parameters/intents'
      - $ref: '#/components/parameters/extra'
      requestBody:
        description: Audio content to transcribe. Can be a JSON object with a URL reference or raw binary audio data with the appropriate Content-Type header.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AudioUrlRequest'
          audio/*:
            schema:
              type: string
              format: binary
              description: Raw binary audio data in any supported audio format.
      responses:
        '200':
          description: Transcription completed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionResponse'
        '400':
          description: Bad request due to invalid parameters or audio format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Paragraph:
      type: object
      properties:
        sentences:
          type: array
          items:
            $ref: '#/components/schemas/Sentence'
          description: Sentences within this paragraph.
        start:
          type: number
          format: float
          description: Start time of the paragraph in seconds.
        end:
          type: number
          format: float
          description: End time of the paragraph in seconds.
        num_words:
          type: integer
          description: Number of words in this paragraph.
        speaker:
          type: integer
          description: Speaker identifier for this paragraph.
    Results:
      type: object
      properties:
        channels:
          type: array
          items:
            $ref: '#/components/schemas/Channel'
          description: Transcription results organized by audio channel.
        utterances:
          type: array
          items:
            $ref: '#/components/schemas/Utterance'
          description: Transcription results organized by utterance when utterances parameter is enabled.
        summary:
          $ref: '#/components/schemas/Summary'
        sentiments:
          $ref: '#/components/schemas/SentimentResults'
        topics:
          $ref: '#/components/schemas/TopicResults'
        intents:
          $ref: '#/components/schemas/IntentResults'
    Channel:
      type: object
      properties:
        alternatives:
          type: array
          items:
            $ref: '#/components/schemas/Alternative'
          description: Alternative transcriptions for this channel, ordered by confidence.
        detected_language:
          type: string
          description: Detected language of the audio in this channel.
        language_confidence:
          type: number
          format: float
          description: Confidence score for the detected language.
    SentimentSegment:
      type: object
      properties:
        text:
          type: string
          description: Text of the segment.
        start_word:
          type: integer
          description: Index of the first word in this segment.
        end_word:
          type: integer
          description: Index of the last word in this segment.
        sentiment:
          type: string
          enum:
          - positive
          - negative
          - neutral
          description: Overall sentiment of the segment.
        sentiment_score:
          type: number
          format: float
          description: Confidence score for the sentiment classification.
    TopicResults:
      type: object
      properties:
        segments:
          type: array
          items:
            $ref: '#/components/schemas/TopicSegment'
          description: Topic detection results for content segments.
    TranscriptionResponse:
      type: object
      properties:
        metadata:
          $ref: '#/components/schemas/Metadata'
        results:
          $ref: '#/components/schemas/Results'
    Sentence:
      type: object
      properties:
        text:
          type: string
          description: Sentence text.
        start:
          type: number
          format: float
          description: Start time of the sentence in seconds.
        end:
          type: number
          format: float
          description: End time of the sentence in seconds.
    TopicSegment:
      type: object
      properties:
        text:
          type: string
          description: Text of the segment.
        start_word:
          type: integer
          description: Index of the first word in this segment.
        end_word:
          type: integer
          description: Index of the last word in this segment.
        topics:
          type: array
          items:
            $ref: '#/components/schemas/Topic'
          description: Topics detected in this segment.
    Intent:
      type: object
      properties:
        intent:
          type: string
          description: Detected intent label.
        confidence_score:
          type: number
          format: float
          description: Confidence score for the intent recognition.
    IntentSegment:
      type: object
      properties:
        text:
          type: string
          description: Text of the segment.
        start_word:
          type: integer
          description: Index of the first word in this segment.
        end_word:
          type: integer
          description: Index of the last word in this segment.
        intents:
          type: array
          items:
            $ref: '#/components/schemas/Intent'
          description: Intents detected in this segment.
    SentimentAverage:
      type: object
      properties:
        sentiment:
          type: string
          enum:
          - positive
          - negative
          - neutral
          description: Overall average sentiment.
        sentiment_score:
          type: number
          format: float
          description: Average sentiment score.
    Summary:
      type: object
      properties:
        short:
          type: string
          description: Short summary of the content.
    ModelInfo:
      type: object
      properties:
        name:
          type: string
          description: Name of the model.
        version:
          type: string
          description: Version of the model.
        arch:
          type: string
          description: Architecture of the model.
    Word:
      type: object
      properties:
        word:
          type: string
          description: The transcribed word.
        start:
          type: number
          format: float
          description: Start time of the word in seconds.
        end:
          type: number
          format: float
          description: End time of the word in seconds.
        confidence:
          type: number
          format: float
          description: Confidence score for this word.
          minimum: 0
          maximum: 1
        speaker:
          type: integer
          description: Speaker identifier when diarization is enabled.
        punctuated_word:
          type: string
          description: The word with punctuation applied when punctuate is enabled.
        sentiment:
          type: string
          enum:
          - positive
          - negative
          - neutral
          description: Sentiment of the word when sentiment analysis is enabled.
        sentiment_score:
          type: number
          format: float
          description: Sentiment confidence score for this word.
    SentimentResults:
      type: object
      properties:
        segments:
          type: array
          items:
            $ref: '#/components/schemas/SentimentSegment'
          description: Sentiment analysis results for content segments.
        average:
          $ref: '#/components/schemas/SentimentAverage'
    AudioUrlRequest:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          format: uri
          description: URL of the audio file to transcribe.
    Alternative:
      type: object
      properties:
        transcript:
          type: string
          description: Full transcript text for this alternative.
        confidence:
          type: number
          format: float
          description: Confidence score for this alternative.
          minimum: 0
          maximum: 1
        words:
          type: array
          items:
            $ref: '#/components/schemas/Word'
          description: Individual words with timing and confidence information.
        paragraphs:
          $ref: '#/components/schemas/ParagraphGroup'
    ParagraphGroup:
      type: object
      properties:
        transcript:
          type: string
          description: Full transcript organized into paragraphs.
        paragraphs:
          type: array
          items:
            $ref: '#/components/schemas/Paragraph'
          description: Individual paragraph objects.
    Error:
      type: object
      properties:
        err_code:
          type: string
          description: Error code identifying the type of error.
        err_msg:
          type: string
          description: Human-readable error message.
        request_id:
          type: string
          description: Unique identifier for the request that produced the error.
    IntentResults:
      type: object
      properties:
        segments:
          type: array
          items:
            $ref: '#/components/schemas/IntentSegment'
          description: Intent recognition results for content segments.
    Utterance:
      type: object
      properties:
        start:
          type: number
          format: float
          description: Start time of the utterance in seconds.
        end:
          type: number
          format: float
          description: End time of the utterance in seconds.
        confidence:
          type: number
          format: float
          description: Confidence score for this utterance.
        channel:
          type: integer
          description: Audio channel index for this utterance.
        transcript:
          type: string
          description: Transcript text for this utterance.
        words:
          type: array
          items:
            $ref: '#/components/schemas/Word'
          description: Individual words within this utterance.
        speaker:
          type: integer
          description: Speaker identifier for this utterance.
        id:
          type: string
          description: Unique identifier for this utterance.
    Metadata:
      type: object
      properties:
        transaction_key:
          type: string
          description: Unique identifier for the transaction.
        request_id:
          type: string
          description: Unique identifier for the API request.
        sha256:
          type: string
          description: SHA-256 hash of the submitted audio.
        created:
          type: string
          format: date-time
          description: Timestamp when the request was created.
        duration:
          type: number
          format: float
          description: Duration of the submitted audio in seconds.
        channels:
          type: integer
          description: Number of audio channels detected.
        models:
          type: array
          items:
            type: string
          description: Model identifiers used for transcription.
        model_info:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ModelInfo'
          description: Detailed information about models used.
    Topic:
      type: object
      properties:
        topic:
          type: string
          description: Detected topic label.
        confidence_score:
          type: number
          format: float
          description: Confidence score for the topic detection.
  parameters:
    topics:
      name: topics
      in: query
      description: Indicates whether to detect topics in the content.
      schema:
        type: boolean
        default: false
    utterances:
      name: utterances
      in: query
      description: Indicates whether to segment speech into utterances.
      schema:
        type: boolean
        default: false
    replace:
      name: replace
      in: query
      description: Terms or phrases to search for in the submitted audio and replace.
      schema:
        type: array
        items:
          type: string
    numerals:
      name: numerals
      in: query
      description: Indicates whether to convert numbers from written format to numerical format.
      schema:
        type: boolean
        default: false
    callback:
      name: callback
      in: query
      description: URL to which Deepgram will make a callback request when processing is complete.
      schema:
        type: string
        format: uri
    model:
      name: model
      in: query
      description: AI model used to process the audio. Options include nova-3, nova-2, nova, enhanced, and base.
      schema:
        type: string
        default: nova-3
    diarize:
      name: diarize
      in: query
      description: Indicates whether to recognize speaker changes in the transcript.
      schema:
        type: boolean
        default: false
    search:
      name: search
      in: query
      description: Terms to search for in the submitted audio.
      schema:
        type: array
        items:
          type: string
    multichannel:
      name: multichannel
      in: query
      description: Indicates whether to transcribe each audio channel independently.
      schema:
        type: boolean
        default: false
    alternatives:
      name: alternatives
      in: query
      description: Maximum number of transcript alternatives to return.
      schema:
        type: integer
        minimum: 1
    intents:
      name: intents
      in: query
      description: Indicates whether to detect intents in the content.
      schema:
        type: boolean
        default: false
    paragraphs:
      name: paragraphs
      in: query
      description: Indicates whether to split the transcript into paragraphs.
      schema:
        type: boolean
        default: false
    extra:
      name: extra
      in: query
      description: Arbitrary key-value pairs to associate with the request.
      schema:
        type: string
    utt_split:
      name: utt_split
      in: query
      description: Length of time in seconds used to split utterances.
      schema:
        type: number
        format: float
    callback_method:
      name: callback_method
      in: query
      description: HTTP method for the callback request.
      schema:
        type: string
        enum:
        - POST
        - PUT
        default: POST
    language:
      name: language
      in: query
      description: BCP-47 language tag for the primary spoken language in the audio.
      schema:
        type: string
        example: en
    smart_format:
      name: smart_format
      in: query
      description: Indicates whether to apply smart formatting which synchronizes punctuation, diarization, and intelligent text normalization.
      schema:
        type: boolean
        default: false
    diarize_version:
      name: diarize_version
      in: query
      description: Version of the diarization feature to use.
      schema:
        type: string
    punctuate:
      name: punctuate
      in: query
      description: Indicates whether to add punctuation and capitalization to the transcript.
      schema:
        type: boolean
        default: false
    summarize:
      name: summarize
      in: query
      description: Indicates whether to generate a summary of the content. Can be a boolean or a specific summary format.
      schema:
        type: string
    tag:
      name: tag
      in: query
      description: Tag to associate with the request for tracking purposes.
      schema:
        type: array
        items:
          type: string
    filler_words:
      name: filler_words
      in: query
      description: Indicates whether to include filler words such as um and uh in the transcript.
      schema:
        type: boolean
        default: false
    redact:
      name: redact
      in: query
      description: Indicates whether to redact sensitive information from the transcript. Accepts boolean or specific entity types such as pci, numbers, ssn.
      schema:
        type: array
        items:
          type: string
    sentiment:
      name: sentiment
      in: query
      description: Indicates whether to perform sentiment analysis on the content.
      schema:
        type: boolean
        default: false
    detect_language:
      name: detect_language
      in: query
      description: Indicates whether to detect the language of the audio.
      schema:
        type: boolean
        default: false
    keywords:
      name: keywords
      in: query
      description: Keywords to boost in the transcription results.
      schema:
        type: array
        items:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Deepgram API key passed as a bearer token in the Authorization header.
externalDocs:
  description: Deepgram Management API Documentation
  url: https://developers.deepgram.com/docs/create-additional-api-keys