WellSaid Labs Text-to-Speech API

Render text to speech, with streaming audio and word timing.

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/wellsaid-labs-text-to-speech-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 email required.

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

OpenAPI Specification

wellsaid-labs-text-to-speech-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: WellSaid Labs Clips Text-to-Speech API
  description: The WellSaid Labs API renders text into studio-quality AI voiceover. It exposes streaming text-to-speech (audio returned as an HTTP stream for low time-to-first-byte playback), word-level timing and subtitle rendering, asynchronous clip creation and combination, a catalog of voice avatars, and pronunciation control via replacement libraries and respelling suggestions. All requests authenticate with an X-Api-Key header. WellSaid does not currently support end-user authentication and recommends making requests from an internal or trusted source. API access is gated behind a trial API key and a business plan. Endpoints, request fields, and response shapes here are modeled from the public documentation at docs.wellsaidlabs.com and are honestly approximated where the reference does not publish a full schema.
  version: '1.0'
  contact:
    name: WellSaid Labs
    url: https://wellsaidlabs.com
servers:
- url: https://api.wellsaidlabs.com/v1
  description: WellSaid Labs API
security:
- apiKeyAuth: []
tags:
- name: Text-to-Speech
  description: Render text to speech, with streaming audio and word timing.
paths:
  /tts/stream:
    post:
      operationId: renderTtsStream
      tags:
      - Text-to-Speech
      summary: Render text to speech (streaming)
      description: Renders the supplied text with the chosen voice avatar and returns the result as a stream of an audio file (MP3), not the finished file, so the client can begin playback with a low time-to-first-byte. Default keys are limited to 1,000 characters per request. Accepts a subset of SSML tags.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TtsRequest'
      responses:
        '200':
          description: A stream of the rendered audio.
          content:
            audio/mpeg:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
  /word-timing:
    post:
      operationId: renderWordTiming
      tags:
      - Text-to-Speech
      summary: Render text to speech with timing information
      description: Renders text to speech and returns the audio together with word-level timing information and subtitles, so captions can be aligned to the generated voiceover.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TtsRequest'
      responses:
        '200':
          description: Rendered audio with word timing and subtitle data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WordTimingResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    RateLimited:
      description: Rate limit or monthly character quota exceeded. Inspect the x-rate-limit-* and x-quota-* response headers.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid X-Api-Key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
    WordTimingResponse:
      type: object
      properties:
        audio_url:
          type: string
          description: URL to the rendered audio.
        subtitles:
          type: string
          description: Subtitle text aligned to the audio.
        words:
          type: array
          description: Per-word timing entries.
          items:
            type: object
            properties:
              word:
                type: string
              start:
                type: number
                format: float
                description: Start time in seconds.
              end:
                type: number
                format: float
                description: End time in seconds.
    TtsRequest:
      type: object
      properties:
        text:
          type: string
          description: The text to convert to speech. Default keys allow up to 1,000 characters per request.
        speaker_id:
          type: string
          description: The voice avatar (speaker) id to render with, for example "3".
        model:
          type: string
          description: The voice model to use, for example "caruso" or "legacy".
      required:
      - text
      - speaker_id
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key issued by WellSaid Labs, passed in the X-Api-Key header. Request a trial key from the console; production use requires a business plan.