---
title: "Text-to-Speech"
method: POST
path: "/v1/speech/synthesize"
tags: ["Suprsonic"]
---

# Text-to-Speech

`POST /v1/speech/synthesize`

## Request

- Base URL: `https://suprsonic.ai`
- URL: `https://suprsonic.ai/v1/speech/synthesize`
- Auth: HTTP bearer

Convert text to speech audio. Returns the speech as base64 MP3 audio with its sample rate and bit rate (read from the audio itself) and the voice used. Use for spoken voice or narration, up to 2,000 characters a call. For sound effects or music use sound-generate. Cost: 2 credits, charged only when a call succeeds.

## Request body

- SynthesizeRequest
  - `text` string, required
  - `voice_model` string, nullable
  - `voice_id` string, nullable
  - `provider` string, nullable
  - `stability` number
  - `similarity_boost` number

## Response `200`

The call's envelope: success, data (the capability's result), metadata, and credits_used (0 when the call did not succeed).

- UnifiedResponse: Standard envelope for all unified API responses.
  - `success` boolean, required
  - `data` union
    - object
    - unknown[]
      - unknown
  - `error` UnifiedError: RFC 7807 problem detail for machine-actionable errors.
    - `type` string, required
    - `title` string, required
    - `status` integer, required
    - `detail` string, nullable
    - `is_retriable` boolean
    - `retry_after_seconds` integer, nullable
    - `alternative_action` string, nullable
    - `error_category` string
    - `caller_error` string, nullable
  - `metadata` UnifiedMetadata: Metadata included in every unified API response.
    - `provider_used` string, nullable
    - `providers_tried` string[]
    - `mode_used` string, nullable
    - `response_time_ms` integer
    - `request_id` string
    - `capability` string, nullable
    - `params` object, nullable
  - `credits_used` integer

## Other responses

- `401`: No API key, or one that was not found or is revoked.
- `402`: Not enough credits for this call. The error's alternative_action says where to add them.
- `403`: The account is restricted by a billing issue.
- `422`: Validation Error
- `429`: The key's rate limit is reached. The error's retry_after_seconds says when to try again.

---

[API](https://skmtc.dev/o-mega/apis/suprsonic-api.md) - [All operations](https://skmtc.dev/o-mega/apis/suprsonic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/o-mega/apis/suprsonic-api/revisions/0eb535eb5679?raw)
