---
title: "Get design candidates"
method: GET
path: "/v1/voice/design/{id}"
tags: ["Text To Speech (Speak)"]
---

# Get design candidates

`GET /v1/voice/design/{id}`

## Request

- Base URL: `https://api.pyai.com`
- URL: `https://api.pyai.com/v1/voice/design/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Poll a design job. When `status` is `completed`, `candidates` carries signed preview URLs (24h TTL). Candidates below the quality gate are omitted. Requires the `speak:design` scope.

## Path parameters

- `id` string, required

## Response `200`

Design status + candidates

- object
  - `design_id` string
  - `status` 'queued' | 'running' | 'completed' | 'failed'
  - `candidates` object[]
    - `candidate_id` string
    - `preview_url` string, uri
    - `quality` object
      - `intelligibility` number
    - `duration_s` number

## Other responses

- `401`: Missing or invalid API key (`code: unauthorized`)
- `404`: No such design for this tenant

---

[API](https://skmtc.dev/pyai/apis/pyai-api.md) · [All operations](https://skmtc.dev/pyai/apis/pyai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pyai/apis/pyai-api/revisions/271a1539185b?raw)
