> ## Documentation Index
> Fetch the complete documentation index at: https://docs.breezeblue.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Prepare remix preview

> Prepare an instruction and matching audition script in the source voice's language. Reuse the returned token to compare candidates with the same performance. This step does not create audio or reserve generation credits.

<section className="api-next-steps" aria-label="Continue building">
  ## Continue building

  <Columns cols={2}>
    <Card title="Create remix preview" icon="braces" href="/api-reference/voice-previews/create-remix-preview">Generate a candidate using the prepared performance.</Card>
    <Card title="Voice Remix" icon="book-open" href="/guides/voice-remix">Compare strengths with a shared preparation.</Card>
  </Columns>
</section>


## OpenAPI

````yaml /openapi.json post /v1/voice-previews/remix/prepare
openapi: 3.1.0
info:
  title: Breeze Developer API
  description: >-
    Breeze Developer API for models, voices, text-to-speech, history, balance,
    usage, and browser-managed API keys.
  version: 1.0.0
servers:
  - url: https://api.breeze.blue
security: []
tags:
  - name: Models
    description: Supported TTS models.
  - name: Text to Speech
    description: Text-to-speech synthesis and instruction enhancement.
  - name: Voices
    description: Saved voices and voice settings.
  - name: Voice Previews
    description: Create, audition, and save temporary voice previews.
  - name: Account
    description: Balance, usage, and API keys.
  - name: History
    description: Generated audio history.
paths:
  /v1/voice-previews/remix/prepare:
    post:
      tags:
        - Voice Previews
      summary: Prepare remix preview
      description: >-
        Prepare an instruction and matching audition script in the source
        voice's language. Reuse the returned token to compare candidates with
        the same performance. This step does not create audio or reserve
        generation credits.
      operationId: voice_previews_remix_prepare
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoiceRemixPrepareRequest'
        required: true
      responses:
        '200':
          description: Prepared remix performance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceRemixPreparationResponse'
          headers:
            x-breeze-api-key-id:
              description: >-
                Public API key identifier used to authenticate the request, when
                an API key was used.
              schema:
                type: string
        '401':
          description: HTTP 401 error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: HTTP 404 error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: HTTP 422 error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '502':
          description: HTTP 502 error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: HTTP 503 error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |-
            curl \
              --request POST \
              --url "https://api.breeze.blue/v1/voice-previews/remix/prepare" \
              --header "xi-api-key: $BREEZE_API_KEY" \
              --header "Content-Type: application/json" \
              --data '{
              "voice_id": "voc_xeh3w54cqvnp",
              "prompt": "Make the voice older and softer."
            }'
        - lang: Python
          label: Python SDK
          source: |-
            import os

            from breeze_blue import BreezeBlue

            client = BreezeBlue(api_key=os.environ["BREEZE_API_KEY"])

            prepared = client.voices.prepare_remix_preview(
                voice_id="voc_xeh3w54cqvnp",
                prompt="Make the voice older and softer.",
            )
            print(prepared["preparation_token"])
        - lang: TypeScript
          label: TypeScript SDK
          source: |-
            import { BreezeBlueClient } from "@breeze.blue/sdk";

            const client = new BreezeBlueClient({
              apiKey: process.env.BREEZE_API_KEY!,
            });

            const prepared = await client.voices.prepareRemixPreview({
              voiceId: "voc_xeh3w54cqvnp",
              prompt: "Make the voice older and softer.",
            });
            console.log(prepared.preparationToken);
components:
  schemas:
    VoiceRemixPrepareRequest:
      properties:
        voice_id:
          type: string
          maxLength: 64
          minLength: 1
          title: Voice Id
          description: >-
            Your own or an available official voice ID. See [List
            voices](https://docs.breezeblue.ai/api-reference/voices/list-voices).
        prompt:
          anyOf:
            - type: string
              maxLength: 1000
              minLength: 3
            - type: 'null'
          title: Prompt
          description: >-
            Desired voice change. Required unless preset_id selects a preset.
            Custom and edited preset descriptions are enhanced automatically.
        preset_id:
          anyOf:
            - type: string
              maxLength: 64
              minLength: 1
            - type: 'null'
          title: Preset Id
          description: >-
            ID from the remix preset catalog. An unchanged preset uses its
            curated instruction and script, translated when needed.
      additionalProperties: false
      type: object
      required:
        - voice_id
      title: VoiceRemixPrepareRequest
      description: Prepare a custom description or a curated preset in the source language.
    VoiceRemixPreparationResponse:
      properties:
        preparation_token:
          description: >-
            Valid for 24 hours for the same account, source, language, prompt
            and preset. Reuse across candidate strengths.
          title: Preparation Token
          type: string
        language_code:
          title: Language Code
          type: string
          description: >-
            See [supported language
            codes](https://docs.breezeblue.ai/concepts/multilingual).
        instruction:
          title: Instruction
          type: string
        text:
          title: Text
          type: string
        source_voice:
          $ref: '#/components/schemas/VoiceRemixSourceResponse'
      required:
        - preparation_token
        - language_code
        - instruction
        - text
        - source_voice
      title: VoiceRemixPreparationResponse
      type: object
    ErrorResponse:
      properties:
        ok:
          default: false
          title: Ok
          type: boolean
        code:
          title: Code
          type: string
        detail:
          title: Detail
          type: string
        error:
          title: Error
          type: string
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          default: null
          title: Meta
      required:
        - code
        - detail
        - error
      title: ErrorResponse
      type: object
    ValidationErrorResponse:
      properties:
        ok:
          default: false
          title: Ok
          type: boolean
        code:
          title: Code
          type: string
        detail:
          title: Detail
          type: string
        error:
          title: Error
          type: string
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
      required:
        - code
        - detail
        - error
      title: ValidationErrorResponse
      type: object
    VoiceRemixSourceResponse:
      properties:
        voice_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Voice Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Description
      title: VoiceRemixSourceResponse
      type: object
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: xi-api-key
      description: Breeze Developer API key.

````