API referenceVoices

Speak a line into the library

Speak ONE line (≤1500 characters) with ONE voice — a library preset or your own clone — and keep it as a library audio asset with word timings.

Synchronous. Charged at the voice-over rate (per character, the voice provider's price); refunded if the voice fails. Rate limited per account (429 with retry_after).

POST
/voices/speak

Authorization

bearerAuth
AuthorizationBearer <token>

Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/voices/speak" \  -H "Content-Type: application/json" \  -d '{    "text": "string"  }'
{
  "data": {
    "asset_id": "b4695157-0d1d-4da0-8f9e-5c53149389e4",
    "url": "string",
    "duration_sec": 0,
    "text": "string",
    "language": "string",
    "voice_id": "2235c634-e4db-4ad6-aa15-066fb69b1c8f",
    "clone_id": "803342ec-5f81-40e9-ab1d-d050b5ce27bb",
    "voice_name": "string",
    "provider": "string",
    "model": "string",
    "timing_source": "string",
    "words": [
      {
        "word": "string",
        "start_ms": 0,
        "end_ms": 0
      }
    ],
    "credits_used": 0
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}