Sonix Exports API

Export transcripts as subtitles, captions, documents, and media burn-ins.

Operations 8

POST /media/{id}/media_exports Export media (mp3/wav/mp4) #
GET /media_exports/{id} Check media export status #
GET /media/{id}/transcript.srt Export transcript as SRT #
GET /media/{id}/transcript.vtt Export transcript as VTT #
GET /media/{id}/transcript.json Export transcript as JSON #
PUT /media/{id}/transcript/split Split transcript into subtitles #
POST /media/{id}/video_burn_ins Burn subtitles into video #
GET /video_burn_ins/{id} Check video burn-in status #

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/sonix-exports-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

sonix-exports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sonix AI Analysis Exports API
  description: The Sonix API lets you programmatically upload audio and video media for automated transcription, retrieve the resulting transcripts, export subtitles and captions (SRT, VTT, TXT, JSON, DOCX, PDF), translate transcripts into other languages, and run AI analysis (summaries, chapters, sentiment, entities). Sonix transcribes in 54+ languages and translates into 55+ languages. The API is available to Sonix subscribers; trial accounts can request an API key from Sonix support. All requests are authorized with a Bearer API key. This description was modeled by API Evangelist from Sonix's public API documentation at https://sonix.ai/docs/api; request and response schemas are honestly modeled where the public docs do not enumerate every field.
  version: '1.0'
  contact:
    name: Sonix
    url: https://sonix.ai
  x-modeled-by: API Evangelist
  x-source: https://sonix.ai/docs/api
servers:
- url: https://api.sonix.ai/v1
  description: Sonix API v1
security:
- bearerAuth: []
tags:
- name: Exports
  description: Export transcripts as subtitles, captions, documents, and media burn-ins.
paths:
  /media/{id}/media_exports:
    parameters:
    - $ref: '#/components/parameters/MediaId'
    post:
      operationId: createMediaExport
      tags:
      - Exports
      summary: Export media (mp3/wav/mp4)
      description: Creates an exported media file (mp3, wav, or mp4) from the source media.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                format:
                  type: string
                  enum:
                  - mp3
                  - wav
                  - mp4
      responses:
        '200':
          description: The created media export job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /media_exports/{id}:
    parameters:
    - $ref: '#/components/parameters/JobId'
    get:
      operationId: getMediaExport
      tags:
      - Exports
      summary: Check media export status
      description: Retrieves the status and download URL of a media export job.
      responses:
        '200':
          description: The media export job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /media/{id}/transcript.srt:
    parameters:
    - $ref: '#/components/parameters/MediaId'
    get:
      operationId: getTranscriptSrt
      tags:
      - Exports
      summary: Export transcript as SRT
      description: Returns the transcript as an SRT subtitle file.
      responses:
        '200':
          description: SRT subtitle file.
          content:
            application/x-subrip:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /media/{id}/transcript.vtt:
    parameters:
    - $ref: '#/components/parameters/MediaId'
    get:
      operationId: getTranscriptVtt
      tags:
      - Exports
      summary: Export transcript as VTT
      description: Returns the transcript as a WebVTT caption file.
      responses:
        '200':
          description: WebVTT caption file.
          content:
            text/vtt:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /media/{id}/transcript.json:
    parameters:
    - $ref: '#/components/parameters/MediaId'
    get:
      operationId: getTranscriptJson
      tags:
      - Exports
      summary: Export transcript as JSON
      description: Returns the transcript as JSON with word-level timings, speaker labels, and confidence scores.
      responses:
        '200':
          description: JSON transcript with word-level timing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptJson'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /media/{id}/transcript/split:
    parameters:
    - $ref: '#/components/parameters/MediaId'
    put:
      operationId: splitTranscript
      tags:
      - Exports
      summary: Split transcript into subtitles
      description: Splits the transcript into subtitle segments using parameters such as maximum characters per line and maximum lines per subtitle.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                max_characters_per_line:
                  type: integer
                max_lines_per_subtitle:
                  type: integer
      responses:
        '200':
          description: The transcript was split into subtitles.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /media/{id}/video_burn_ins:
    parameters:
    - $ref: '#/components/parameters/MediaId'
    post:
      operationId: createVideoBurnIn
      tags:
      - Exports
      summary: Burn subtitles into video
      description: Creates a video with subtitles burned in from the transcript.
      responses:
        '200':
          description: The created video burn-in job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /video_burn_ins/{id}:
    parameters:
    - $ref: '#/components/parameters/JobId'
    get:
      operationId: getVideoBurnIn
      tags:
      - Exports
      summary: Check video burn-in status
      description: Retrieves the status and download URL of a video burn-in job.
      responses:
        '200':
          description: The video burn-in job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    TranscriptJson:
      type: object
      properties:
        name:
          type: string
        transcript:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
              start_time:
                type: number
              end_time:
                type: number
              speaker:
                type: string
              confidence:
                type: number
    Job:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
        url:
          type: string
          description: Download URL for the job output when available.
  parameters:
    MediaId:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: The unique identifier of the media file.
    JobId:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: The unique identifier of the job.
  responses:
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Sonix API key passed as `Authorization: Bearer <API Key>`. Subscribers find their key at https://my.sonix.ai/api; trial accounts request one from Sonix support.'