---
title: "Preview Pre Pickup Synthesis"
method: POST
path: "/api/v1/voice-ai/pre-pickup-audio/preview"
tags: ["voice_agent_groups"]
---

# Preview Pre Pickup Synthesis

`POST /api/v1/voice-ai/pre-pickup-audio/preview`

Synthesize a pre-pickup message and stream it back **without storing**.

Lets the operator hear the chosen voice speaking the entered text before
committing (Save). No S3 write, no group mutation — a throwaway render.

## Request body

- PrePickupSynthesizeRequest — Request to synthesize a pre-pickup message from text. ``language`` is validated against ``SUPPORTED_LANGUAGES`` in the route (a module-level import here would be circular via ``snippet_config``).
  - `provider` 'elevenlabs' | 'cartesia' | 'google', required — TTS provider used to synthesize a SYNTHESIZED pre-pickup message. Stored on ``VoiceAgentGroup.pre_pickup_voice_provider`` (as a plain string column) and used to dispatch synthesis to the matching TTS client.
  - `voice_id` string, required
  - `language` string, required
  - `text` string, required

## Response `200`

MP3 audio preview

## Other responses

- `403` — Missing MANAGE_AGENTS permission
- `422` — Invalid preview request (empty text / unsupported language)
- `502` — Failed to synthesize preview (TTS provider error)

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-09-05** `38166468bfc5` — 1 info
  - added the new `google` enum value to the request property `provider`

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/voice-ai/pre-pickup-audio/preview/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/7a2c09378911?raw)
