---
title: "One speech job and a fresh private download link"
method: GET
path: "/v1/speech/{id}"
tags: ["platform-api"]
---

# One speech job and a fresh private download link

`GET /v1/speech/{id}`

## Request

- Base URL: `https://api.cuddler.ai`
- URL: `https://api.cuddler.ai/v1/speech/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Response `200`

Speech job

- object
  - `object` 'speech', required
  - `id` string, required
  - `model` 'elevenlabs-v4' | 'elevenlabs-v4-turbo' | 'elevenlabs-flash-v2.5' | 'fish-s2.1-pro' | 'gemini-3.8-flash-tts' | 'gemini-3.8-flash-lite-tts' | 'minimax-speech-2.8-hd' | 'minimax-speech-2.8-turbo', required
  - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled', required
  - `created_at` string, required
  - `started_at` string, nullable, required
  - `completed_at` string, nullable, required
  - `queue_position` integer, nullable, required
  - `estimate` object, required
    - `meter` 'character' | 'utf8_byte' | 'utf16_unit' | 'audio_token' | 'minimax_character', required
    - `units` integer, required
    - `usd` string, required
    - `hold_usd` string, required
  - `usage` object, nullable, required
    - `meter` 'character' | 'utf8_byte' | 'utf16_unit' | 'audio_token' | 'minimax_character', required
    - `units` integer, required
    - `usd` string, required
    - `usd_micros` integer, required
  - `output` object, nullable, required
    - `url` string, uri, required
    - `url_expires_at` string, required
    - `retained_until` string, required
    - `content_type` 'audio/mpeg', required
    - `duration` number, required
    - `sample_rate` integer, required
    - `channels` integer, required
    - `peaks` number[], required
  - `error` object, nullable, required
    - `code` 'content_policy' | 'reference_rejected' | 'invalid_parameters' | 'upstream_error' | 'timeout' | 'internal_error', required
    - `message` string, required
  - `price_version` string, required
  - `api_key_id` string, required
  - `metadata` object, required

## Other responses

- `401`: unauthorized — no key, or an unknown or revoked one (WWW-Authenticate: Bearer)
- `403`: organization_suspended — the organization is not active; forbidden — a test key on a live-only route
- `404`: not_found — the Platform API is switched off, or the object does not exist
- `429`: rate_limited — over this key's requests per minute (Retry-After)
- `500`: internal_error — quote request_id when contacting support

---

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