---
title: "Vapi custom TTS webhook"
method: POST
path: "/v1/integrations/vapi/text-to-speech/{voiceId}"
---

# Vapi custom TTS webhook

`POST /v1/integrations/vapi/text-to-speech/{voiceId}`

## Request

- Base URL: `https://giggy.ai`
- URL: `https://giggy.ai/v1/integrations/vapi/text-to-speech/{voiceId}`
- Auth: HTTP bearer

V21 adapter. Configure this URL with an explicit Giggy voice UUID and Bearer API-key credential. Supports only native PCM16 LE, 24 kHz mono; no server conversion or resampling. Uses canonical paid Streaming admission and cancellation on interrupted delivery. Call and customer metadata is ignored.

## Path parameters

- `voiceId` string, uuid, required

## Request body

- object
  - `message` object, required
    - `type` 'voice-request', required
    - `text` string, required
    - `sampleRate` 24000, required

## Response `200`

Headerless signed PCM16 little-endian, mono, at 24 kHz, streamed progressively.

## Other responses

- `401`: Invalid API key
- `402`: Insufficient credits or API budget
- `422`: Unsupported sample rate or invalid request
- `503`: Canonical service unavailable

---

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