---
title: "Update Profile Generation Defaults"
method: PUT
path: "/profiles/{profile_id}/generation-defaults"
---

# Update Profile Generation Defaults

`PUT /profiles/{profile_id}/generation-defaults`

## 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/profiles/{profile_id}/generation-defaults`
- Auth: none declared

Pin (or unpin) the sampling values every generation with this voice inherits.

VoiceLabs (long-form phase 1). This is the "per-project pinning" a long-form
creator needs: pick a seed and temperature once for the narrator voice and
every chapter renders with the same sampling character instead of drifting
take to take. A request that names its own seed/temperature still wins.

Its own sub-resource rather than fields on ``PUT /profiles/{id}`` because
that route takes ``VoiceProfileCreate``, where an omitted Optional field is
indistinguishable from "clear this". Here both fields are required and
nullable, so ``null`` unambiguously unpins.

## Path parameters

- `profile_id` string, required

## Request body

- ProfileGenerationDefaults: Body for PUT /profiles/{id}/generation-defaults — the long-form pins. Its own sub-resource rather than fields on ``VoiceProfileCreate`` because that model is reused for updates, where an omitted Optional field is indistinguishable from "clear this". Here both fields are REQUIRED and nullable, so ``null`` unambiguously means "unpin" and a partial write is a 422 instead of a silent wipe of the other pin.
  - `default_seed` integer, nullable, required: Seed every generation with this voice inherits; null unpins.
  - `default_temperature` number, nullable, required: Sampling temperature every generation with this voice inherits; null unpins. Only honoured by engines flagged supports_temperature (chatterbox, chatterbox_turbo).

## Response `200`

Successful Response

- VoiceProfileResponse: Response model for voice profile.
  - `id` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `language` string, required
  - `avatar_path` string, nullable
  - `effects_chain` EffectConfig[], nullable
    - `type` string, required
    - `enabled` boolean
    - `params` object
  - `voice_type` string
  - `preset_engine` string, nullable
  - `preset_voice_id` string, nullable
  - `design_prompt` string, nullable
  - `default_engine` string, nullable
  - `personality` string, nullable
  - `default_seed` integer, nullable
  - `default_temperature` number, nullable
  - `generation_count` integer
  - `sample_count` integer
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## 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)
