AssemblyAI Transcript API

Transcript related operations

Operations 10

POST /v2/upload AssemblyAI Upload a media file #
POST /v2/transcript AssemblyAI Transcribe audio #
GET /v2/transcript AssemblyAI List transcripts #
GET /v2/transcript/{transcript_id} AssemblyAI Get transcript #
DELETE /v2/transcript/{transcript_id} AssemblyAI Delete transcript #
GET /v2/transcript/{transcript_id}/{subtitle_format} AssemblyAI Get subtitles for transcript #
GET /v2/transcript/{transcript_id}/sentences AssemblyAI Get sentences in transcript #
GET /v2/transcript/{transcript_id}/paragraphs AssemblyAI Get paragraphs in transcript #
GET /v2/transcript/{transcript_id}/word-search AssemblyAI Search words in transcript #
GET /v2/transcript/{transcript_id}/redacted-audio AssemblyAI Get redacted audio #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/assemblyai-transcript-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

assemblyai-transcript-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AssemblyAI LeMUR Transcript API
  description: AssemblyAI API
  version: 1.1.2
  contact:
    name: API Support
    email: support@assemblyai.com
    url: https://www.assemblyai.com/docs/
servers:
- url: https://api.assemblyai.com
  description: AssemblyAI API
security:
- ApiKey: []
tags:
- name: Transcript
  description: Transcript related operations
  externalDocs:
    url: https://www.assemblyai.com/docs/guides/transcribing-an-audio-file
paths:
  /v2/upload:
    post:
      tags:
      - Transcript
      summary: AssemblyAI Upload a media file
      description: Upload a media file to AssemblyAI's servers.
      operationId: uploadFile
      x-fern-sdk-group-name: files
      x-fern-sdk-method-name: upload
      requestBody:
        content:
          application/octet-stream: {}
      responses:
        '200':
          x-label: Media file uploaded
          description: Media file uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadedFile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript:
    post:
      tags:
      - Transcript
      summary: AssemblyAI Transcribe audio
      description: Create a transcript from a media file that is accessible via a URL.
      operationId: createTranscript
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: submit
      x-fern-request-name: TranscriptParams
      requestBody:
        description: Params to create a transcript
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TranscriptParams'
      responses:
        '200':
          x-label: Transcript created
          description: Transcript created and queued for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transcript'
          links:
            GetTranscriptById:
              $ref: '#/components/links/GetTranscriptById'
            GetTranscriptSentencesById:
              $ref: '#/components/links/GetTranscriptSentencesById'
            GetTranscriptParagraphsById:
              $ref: '#/components/links/GetTranscriptParagraphsById'
            GetTranscriptSubtitlesById:
              $ref: '#/components/links/GetTranscriptSubtitlesById'
            GetTranscriptRedactedAudioById:
              $ref: '#/components/links/GetTranscriptRedactedAudioById'
            WordSearchByTranscriptId:
              $ref: '#/components/links/WordSearchByTranscriptId'
            DeleteTranscriptById:
              $ref: '#/components/links/DeleteTranscriptById'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
      callbacks:
        transcriptWebhook:
          '{$request.body#/webhook_url}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/TranscriptReadyNotification'
              responses:
                '200':
                  description: Successfully received the notification
    get:
      tags:
      - Transcript
      summary: AssemblyAI List transcripts
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: list
      x-fern-request-name: ListTranscriptParams
      operationId: listTranscripts
      description: 'Retrieve a list of transcripts you created.

        Transcripts are sorted from newest to oldest. The previous URL always points to a page with older transcripts.

        '
      parameters:
      - name: limit
        x-label: Limit
        in: query
        description: Maximum amount of transcripts to retrieve
        schema:
          $ref: '#/components/schemas/ListTranscriptParams/properties/limit'
      - name: status
        x-label: Status
        in: query
        description: Filter by transcript status
        schema:
          $ref: '#/components/schemas/TranscriptStatus'
      - name: created_on
        x-label: Created on
        in: query
        description: Only get transcripts created on this date
        schema:
          $ref: '#/components/schemas/ListTranscriptParams/properties/created_on'
      - name: before_id
        x-label: Before ID
        in: query
        description: Get transcripts that were created before this transcript ID
        schema:
          $ref: '#/components/schemas/ListTranscriptParams/properties/before_id'
      - name: after_id
        x-label: After ID
        in: query
        description: Get transcripts that were created after this transcript ID
        schema:
          $ref: '#/components/schemas/ListTranscriptParams/properties/after_id'
      - name: throttled_only
        x-label: Throttled only
        in: query
        description: Only get throttled transcripts, overrides the status filter
        schema:
          $ref: '#/components/schemas/ListTranscriptParams/properties/throttled_only'
      responses:
        '200':
          description: 'A list of transcripts. Transcripts are sorted from newest to oldest. The previous URL always points to a page with older transcripts.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript/{transcript_id}:
    get:
      tags:
      - Transcript
      summary: AssemblyAI Get transcript
      operationId: getTranscript
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: get
      x-fern-request-name: GetTranscriptParams
      description: Get the transcript resource. The transcript is ready when the "status" is "completed".
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The transcript resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transcript'
          links:
            GetTranscriptById:
              $ref: '#/components/links/GetTranscriptById'
            GetTranscriptSentencesById:
              $ref: '#/components/links/GetTranscriptSentencesById'
            GetTranscriptParagraphsById:
              $ref: '#/components/links/GetTranscriptParagraphsById'
            GetTranscriptSubtitlesById:
              $ref: '#/components/links/GetTranscriptSubtitlesById'
            GetTranscriptRedactedAudioById:
              $ref: '#/components/links/GetTranscriptRedactedAudioById'
            WordSearchByTranscriptId:
              $ref: '#/components/links/WordSearchByTranscriptId'
            DeleteTranscriptById:
              $ref: '#/components/links/DeleteTranscriptById'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    delete:
      tags:
      - Transcript
      summary: AssemblyAI Delete transcript
      description: 'Delete the transcript.

        Deleting does not delete the resource itself, but removes the data from the resource and marks it as deleted.

        '
      operationId: deleteTranscript
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: delete
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The deleted transcript response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transcript'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript/{transcript_id}/{subtitle_format}:
    get:
      tags:
      - Transcript
      summary: AssemblyAI Get subtitles for transcript
      description: Export your transcript in SRT or VTT format to use with a video player for subtitles and closed captions.
      operationId: getSubtitles
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: getSubtitles
      x-fern-request-name: GetSubtitlesParams
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      - name: subtitle_format
        x-label: Subtitle format
        in: path
        description: The format of the captions
        required: true
        schema:
          $ref: '#/components/schemas/SubtitleFormat'
      - name: chars_per_caption
        x-label: Number of characters per caption
        in: query
        description: The maximum number of characters per caption
        schema:
          type: integer
      responses:
        '200':
          description: The exported captions as text
          content:
            text/plain:
              schema:
                type: string
                example: 'WEBVTT

                  00:12.340 --> 00:16.220

                  Last year I showed these two slides said that demonstrate

                  00:16.200 --> 00:20.040

                  that the Arctic ice cap which for most of the last 3,000,000 years has been the

                  00:20.020 --> 00:25.040

                  size of the lower 48 States has shrunk by 40% but this understates

                  '
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript/{transcript_id}/sentences:
    get:
      tags:
      - Transcript
      summary: AssemblyAI Get sentences in transcript
      operationId: getTranscriptSentences
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: getSentences
      x-fern-request-name: GetSentencesParams
      description: Get the transcript split by sentences. The API will attempt to semantically segment the transcript into sentences to create more reader-friendly transcripts.
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported sentences
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SentencesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript/{transcript_id}/paragraphs:
    get:
      tags:
      - Transcript
      summary: AssemblyAI Get paragraphs in transcript
      operationId: getTranscriptParagraphs
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: getParagraphs
      x-fern-request-name: GetParagraphsParams
      description: Get the transcript split by paragraphs. The API will attempt to semantically segment your transcript into paragraphs to create more reader-friendly transcripts.
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Exported paragraphs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParagraphsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript/{transcript_id}/word-search:
    get:
      tags:
      - Transcript
      summary: AssemblyAI Search words in transcript
      description: Search through the transcript for keywords. You can search for individual words, numbers, or phrases containing up to five words or numbers.
      operationId: wordSearch
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: wordSearch
      x-fern-request-name: WordSearchParams
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      - name: words
        x-label: Words
        in: query
        description: Keywords to search for
        required: true
        style: form
        explode: false
        schema:
          type: array
          items:
            x-label: Word
            type: string
      responses:
        '200':
          description: Word search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WordSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /v2/transcript/{transcript_id}/redacted-audio:
    get:
      tags:
      - Transcript
      summary: AssemblyAI Get redacted audio
      description: Retrieve the redacted audio object containing the status and URL to the redacted audio.
      operationId: getRedactedAudio
      x-fern-sdk-group-name: transcripts
      x-fern-sdk-method-name: getRedactedAudio
      x-fern-request-name: GetRedactedAudioParams
      parameters:
      - name: transcript_id
        x-label: Transcript ID
        in: path
        description: ID of the transcript
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The redacted audio object containing the status and URL to the redacted audio
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedactedAudioResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'