# Generate from saved design voice

- **Method:** `POST`
- **Path:** `/api/v1/generation/design/saved`
- **Operation ID:** `start_saved_design_api_v1_generation_design_saved_post`
- **Tags:** Design

Generate speech using a previously saved voice design. Validates voice\_id exists on disk.

## Effective servers

- `http://127.0.0.1:8100`

  Voice Creator Pro on this computer

## Query parameters

- **`sync`**: `boolean`, default: `false`

  Wait for generation to complete and return audio directly

## Request body

**Required:** `true`

**Content type:** `application/json`

schema: `SavedDesignRequest`

- **`target_text` (required)**: `string`

  Text to generate speech for
- **`voice_id` (required)**: `string`

  ID of the saved voice design
- **`generation_params`**: `object | null`, schema: `GenerationParamsModel`

  Advanced sampling parameters
  - **`seed`**: `integer | null`

    Random seed for reproducible generation
- **`language`**: `string`, default: `"Auto"`

  Target language. Query GET /api/v1/models/active for supported languages per variant.
- **`model_family`**: `string | null`

  TTS model to use. If omitted, uses the currently configured model.
- **`quality`**: `string | null`

  Quality/variant tier. Query GET /api/v1/models/active for available tiers.

**Example:**

```json
{
  "voice_id": "a1b2c3d4",
  "target_text": "This is a test of the saved voice.",
  "language": "English",
  "quality": "higher_quality",
  "generation_params": {
    "seed": 42,
    "additionalProperty": "anything"
  },
  "model_family": "qwen3-tts"
}
```

## Responses

### 200 Generation started (async) or completed result (sync).

**Content type:** `application/json`

**Any of:**

- `object`, schema: `GenerationStartedResponse`
  - **`queue_position` (required)**: `integer`

    Position in the generation queue (0 = next to run)
  - **`started` (required)**: `boolean`

    Whether the generation job was enqueued
- `object`, schema: `GenerationResult`
  - **`status` (required)**: `string`

    Human-readable status message
  - **`success` (required)**: `boolean`

    Whether generation completed successfully
  - **`audio_base64`**: `string | null`

    Base64-encoded audio output (WAV format)
  - **`error_code`**: `string | null`

    Machine-readable failure code when success is false
  - **`error_detail`**: `string | null`

    Extra detail for the failure code

**One of:**

- *Schema `GenerationStartedResponse` is shown above.*
- *Schema `GenerationResult` is shown above.*

**Example:**

```json
{
  "started": true,
  "queue_position": 0
}
```

### 400 Invalid voice\_id format.

### 404 Saved design voice not found.

### 422 Validation Error

**Content type:** `application/json`

schema: `HTTPValidationError`

- **`detail`**: `array`

  **Items:**

  schema: `ValidationError`
  - **`loc` (required)**: `array of (string | integer)`
  - **`msg` (required)**: `string`
  - **`type` (required)**: `string`
  - **`ctx`**: `object`
  - **`input`**: `any`

**Example:**

```json
{
  "detail": [
    {
      "loc": [
        ""
      ],
      "msg": "",
      "type": "",
      "input": null,
      "ctx": {}
    }
  ]
}
```

### 504 Sync generation timed out (600s limit).

## Schemas

- `GenerationParamsModel` — shown above.
- `GenerationResult` — shown above.
- `GenerationStartedResponse` — shown above.
- `HTTPValidationError` — shown above.
- `SavedDesignRequest` — shown above.
- `ValidationError` — shown above.
