---
title: "Start the fine-tune for a Pro voice clone."
method: POST
path: "/voices/pro/train"
tags: ["Voices"]
---

# Start the fine-tune for a Pro voice clone.

`POST /voices/pro/train`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/voices/pro/train`
- Auth: HTTP bearer

Kicks off the ~3 hour fine-tune once at least 30 minutes of audio is recorded (check GET /voices/pro/{jobId}). Charges the Pro voice clone price, settled only if training succeeds (a failed train is free). Returns `{ status: "training" }`; a short balance is 402 `insufficient_credits`. Requires `Idempotency-Key`. Scope: `story:write`.

## Headers

- `Idempotency-Key` string, required

## Request body

- ProVoiceCloneTrainRequest: Start training for a Pro voice clone.
  - `jobId` string, required: The Pro voice clone job id.

## Response `200`

Training acknowledgement.

- ProVoiceCloneTrainResult: Training acknowledgement.
  - `status` string, required: training. A short balance is a 402 insufficient_credits error instead.
  - `required` integer: Credits required (present when insufficient).
  - `available` integer: Credits available (present when insufficient).

## Other responses

- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/64c1102ccb2f?raw)
