---
title: "Reroll Generation Chunk"
method: POST
path: "/generate/{generation_id}/chunks/{chunk_index}/reroll"
---

# Reroll Generation Chunk

`POST /generate/{generation_id}/chunks/{chunk_index}/reroll`

## Request

- Base URL: `https://api.voicelabs.now` (the document declares no server; this is the origin it was published from)
- URL: `https://api.voicelabs.now/generate/{generation_id}/chunks/{chunk_index}/reroll`
- Auth: none declared

Regenerate ONE sentence of a completed take and splice it back in.

VoiceLabs (long-form phase 1). The whole point is that everything else in the
take is untouched — re-running the generation would re-roll every sentence
and cost the user the entire chapter's GPU time.

Gated with ``require_entitlement`` (not the refunding variant) for the same
reason retry and regenerate are: this routes through the shared background
runner, which owns the row and handles its own failure path, so a second
refunding gate here would refund one failure twice. The runner meters the
RE-ROLLED CHUNK's seconds, not the take's.

The new seed defaults to one the chunk has demonstrably not been generated
with — asking for "another take of this line" and getting the identical line
back would be the single most confusing possible outcome.

## Path parameters

- `generation_id` string, required
- `chunk_index` integer, required

## Request body

- ChunkRerollRequest: Body for POST /generate/{id}/chunks/{index}/reroll. Everything is optional: the default is "roll this one sentence again", which is the whole point of the endpoint. An explicit ``seed`` makes the re-roll reproducible; omitting it picks a fresh one the chunk has demonstrably not been generated with.
  - `seed` integer, nullable: Seed for the re-rolled chunk. Omit for a new random one (the usual case).
  - `temperature` number, nullable: Sampling temperature for the re-rolled chunk. Omit to reuse the temperature the take was generated at. Only engines flagged supports_temperature accept one.

## Response `200`

Successful Response

- GenerationResponse: Response model for voice generation.
  - `id` string, required
  - `profile_id` string, required
  - `text` string, required
  - `language` string, required
  - `audio_path` string, nullable
  - `duration` number, nullable
  - `seed` integer, nullable
  - `instruct` string, nullable
  - `engine` string, nullable
  - `model_size` string, nullable
  - `speed` number, nullable
  - `temperature` number, nullable
  - `chunk_count` integer, nullable
  - `status` string
  - `error` string, nullable
  - `is_favorited` boolean
  - `source` string
  - `created_at` string, date-time, required
  - `versions` GenerationVersionResponse[], nullable
    - `id` string, required
    - `generation_id` string, required
    - `label` string, required
    - `audio_path` string, required
    - `effects_chain` EffectConfig[], nullable
      - `type` string, required
      - `enabled` boolean
      - `params` object
    - `source_version_id` string, nullable
    - `is_default` boolean, required
    - `created_at` string, date-time, required
  - `active_version_id` string, nullable

## Other responses

- `422`: Validation Error

---

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