# Giggy > Giggy provides text-to-speech and speech-to-text APIs for developers building voice-enabled products. STT supports both uploaded recordings and live microphone audio over WebSocket. Giggy provides native REST text-to-speech and speech-to-text, official Python and JavaScript/TypeScript SDKs, OpenAI-compatible TTS, Vapi custom TTS integration, and a remote Streamable HTTP MCP server with recorded transcription. Batch speech is free with request and queue limits. Fast and Streaming use prepaid credits. TTS Fast costs $5 per million input characters; TTS Streaming costs $10 per million with Pro, Studio or Scale credits. TTS counts Unicode code points, including spaces and punctuation, across supported languages, not UTF-8 bytes or output audio duration. Each paid request rounds up to a pricing block with a minimum charge. $10 buys 1,000,000 Pro credits. STT Fast costs 4,000 credits per input audio hour ($0.04); Streaming costs 8,000 ($0.08) with Pro, Studio or Scale credits. Starter and Creator cost more per credit. Charges round up per request. Purchased credits expire one calendar year after purchase. TTS voice-library languages (242): English, Abkhazian, Afar, Afrikaans, Akan / Twi, Albanian, Ambo-Pasco Quechua, Amharic, Arabic, Aragonese, Armenian, Assamese, Aymara, Azerbaijani, Balinese, Bambara, Bashkir, Basque, Belarusian, Bengali, Bhojpuri, Bislama, Bodo, Bosnian, Breton, Buginese, Bulgarian, Bunun, Burmese, Cantonese, Catalan, Cebuano, Central Kurdish, Central Pashto, Central Tarahumara, Chamorro, Chavacano, Chichewa / Nyanja, Chiquián Ancash Quechua, Chokwe, Cornish, Corsican, Croatian, Czech, Dagbani, Danish, Dhivehi, Dinka, Dogri, Dutch, Dzongkha, Eastern Mari, Eastern Punjabi, Erzya, Esperanto, Estonian, Ewe, Faroese, Fijian, Filipino, Finnish, Fon, French, Frisian, Friulian, Fula / Fulfulde, Ga, Galician, Gan Chinese, Ganda, Ganda / Luganda, Georgian, German, Greek, Greenlandic, Guarani, Gujarati, Haitian Creole, Hakha Chin, Hakka Chinese, Hausa, Hawaiian, Hebrew, Hiligaynon, Hindi, Hiri Motu, Hmong, Hmong Daw, Hungarian, Icelandic, Igbo, Ilocano, Indonesian, Inuktitut, Irish, Italian, Japanese, Javanese, Kabardian, Kabyle, Kamba, Kannada, Kanuri, Kashmiri, Kashubian, Kazakh, Khmer, Kikongo, Kikuyu, Kinyarwanda, Kirghiz, Kirundi, Konkani, Korean, Kurdish, Kurmanji, Kyrgyz, Ladino, Lao, Latgalian, Latvian, Ligurian, Limburgish, Lingala, Lithuanian, LO, Loja Highland Quichua, Luba-Kasai, Luba-Lulua, Luo, Luxembourg German / Moselle Franconian, Luxembourgish, LZZ, Macedonian, Maithili, Malagasy, Malay, Malayalam, Maltese, Maltese Arabic, Mandarin Chinese, Manipuri / Meitei, Maori, Marathi, Marshallese, Meru, Min Nan / Hokkien, Min Nan Chinese, Mingrelian, Mongolian, Nepali, Nigerian Pidgin, Northern Kurdish, Norwegian, Norwegian Bokmål, Norwegian Nynorsk, Nuer, Occitan, Odia, Oromo, Palauan, Pashto, Persian, Polish, Portuguese, Puno Quechua, Quechua, Rifian, Romagnol / Emilian-Romagnol, Romani, Romanian, Romansh, Rombo, Rukai, Runyankole, Russian, Sakizaya, Sami, Northern, Samoan, Sanskrit, Santali, Sardinian, Scots, Scottish Gaelic, Serbian, Sesotho, Shona, Sicilian, Sidamo, Silesian, Sindhi, Sinhala, Slovak, Slovenian, Somali, Sorbian, Spanish, Svan, Swahili, Swati, Swedish, Tachelhit, Tahitian, Tajik, Tamasheq / Tuareg, Tamazight, Tamil, Telugu, Tetum, Thai, Tibetan, Tigrinya, Tok Pisin, Toki Pona, Tongan, Tsonga, Tswana, Tulu, Turkish, Turkmen, Uighur, Ukrainian, Upper Sorbian, Urdu, Uyghur, Uzbek, Venda, Vietnamese, Waray, Welsh, Western Frisian, Western Mari, Western Punjabi, Wolaytta, Wolof, Wu Chinese, Xhosa, Xiang Chinese, Yakut, Yiddish, Yoruba, Zhuang, Zulu. Voice-cloning reference-audio languages (95): English (en), Spanish (es), Mandarin Chinese (zh), Hindi (hi), Portuguese (pt), Afrikaans (af), Albanian (sq), Amharic (am), Armenian (hy), Assamese (as), Azerbaijani (az), Bashkir (ba), Basque (eu), Belarusian (be), Bengali (bn), Bosnian (bs), Breton (br), Bulgarian (bg), Burmese (my), Cantonese (yue), Catalan (ca), Croatian (hr), Czech (cs), Danish (da), Dutch (nl), Eastern Punjabi (pa), Estonian (et), Faroese (fo), Finnish (fi), French (fr), Galician (gl), Georgian (ka), German (de), Greek (el), Gujarati (gu), Haitian Creole (ht), Hausa (ha), Hawaiian (haw), Hebrew (he), Hungarian (hu), Icelandic (is), Indonesian (id), Italian (it), Japanese (ja), Kannada (kn), Kazakh (kk), Khmer (km), Korean (ko), Lao (lo), Latvian (lv), Lingala (ln), Lithuanian (lt), LO (lo), Luxembourgish (lb), Macedonian (mk), Malagasy (mg), Malay (ms), Malayalam (ml), Maltese (mt), Maltese Arabic (mt), Maori (mi), Marathi (mr), Mongolian (mn), Nepali (ne), Norwegian (no), Occitan (oc), Pashto (ps), Persian (fa), Polish (pl), Romanian (ro), Russian (ru), Sanskrit (sa), Serbian (sr), Shona (sn), Sindhi (sd), Sinhala (si), Slovak (sk), Slovenian (sl), Somali (so), Swahili (sw), Swedish (sv), Tajik (tg), Tamil (ta), Telugu (te), Thai (th), Tibetan (bo), Turkish (tr), Turkmen (tk), Ukrainian (uk), Urdu (ur), Uzbek (uz), Vietnamese (vi), Welsh (cy), Yiddish (yi), Yoruba (yo). Cloning reference-audio language choices are distinct from STT languages and do not establish cross-language synthesis support for every cloned voice. For TTS, the request language must match the selected voice. Voice-design languages (240): English (en), Spanish (es), Mandarin Chinese (zh), Hindi (hi), Portuguese (pt), Arabic (arb), Abkhazian (ab), Afar (aa), Afrikaans (af), Akan / Twi (ak), Albanian (sq), Ambo-Pasco Quechua (qva), Amharic (am), Aragonese (an), Armenian (hy), Assamese (as), Aymara (ay), Azerbaijani (az), Balinese (ban), Bambara (bm), Bashkir (ba), Basque (eu), Belarusian (be), Bengali (bn), Bhojpuri (bho), Bislama (bi), Bodo (brx), Bosnian (bs), Breton (br), Buginese (bug), Bulgarian (bg), Bunun (bnn), Burmese (my), Cantonese (yue), Catalan (ca), Cebuano (ceb), Central Kurdish (ckb), Central Pashto (pst), Central Tarahumara (tar), Chamorro (ch), Chavacano (cbk), Chichewa / Nyanja (ny), Chokwe (cjk), Cornish (kw), Corsican (co), Croatian (hr), Czech (cs), Dagbani (dag), Danish (da), Dhivehi (dv), Dinka (din), Dogri (doi), Dutch (nl), Dzongkha (dz), Eastern Mari (mhr), Eastern Punjabi (pa), Erzya (myv), Esperanto (eo), Estonian (et), Ewe (ee), Faroese (fo), Fijian (fj), Filipino (fil), Finnish (fi), Fon (fon), French (fr), Frisian (fy), Friulian (fur), Fula / Fulfulde (ff), Ga (gaa), Galician (gl), Gan Chinese (gan), Ganda (lg), Ganda / Luganda (lg), Georgian (ka), German (de), Greek (el), Greenlandic (kl), Guarani (gn), Gujarati (gu), Haitian Creole (ht), Hakha Chin (cnh), Hakka Chinese (hak), Hausa (ha), Hawaiian (haw), Hebrew (he), Hiligaynon (hil), Hiri Motu (ho), Hmong (hmn), Hmong Daw (mww), Hungarian (hu), Icelandic (is), Igbo (ig), Ilocano (ilo), Indonesian (id), Inuktitut (iu), Irish (ga), Italian (it), Japanese (ja), Javanese (jv), Kabardian (kbd), Kabyle (kab), Kamba (kam), Kannada (kn), Kanuri (kr), Kashmiri (ks), Kashubian (csb), Kazakh (kk), Khmer (km), Kikongo (kg), Kikuyu (ki), Kinyarwanda (rw), Kirghiz (ky), Kirundi (rn), Konkani (kok), Korean (ko), Kurdish, Kurmanji (kmr), Kyrgyz (ky), Ladino (lad), Lao (lo), Latgalian (ltg), Latvian (lv), Ligurian (lij), Limburgish (li), Lingala (ln), Lithuanian (lt), LO (lo), Loja Highland Quichua (qvj), Luba-Kasai (lua), Luba-Lulua (lua), Luo (luo), Luxembourg German / Moselle Franconian (ltz), Luxembourgish (lb), LZZ (lzz), Macedonian (mk), Maithili (mai), Malagasy (mg), Malay (ms), Malayalam (ml), Maltese (mt), Maltese Arabic (mt), Manipuri / Meitei (mni), Maori (mi), Marathi (mr), Marshallese (mh), Meru (mer), Min Nan / Hokkien (nan), Min Nan Chinese (nan), Mingrelian (xmf), Mongolian (mn), Nepali (ne), Nigerian Pidgin (pcm), Northern Kurdish (kmr), Norwegian (no), Norwegian Nynorsk (nno), Nuer (nus), Occitan (oc), Odia (or), Oromo (om), Palauan (pau), Pashto (ps), Persian (fa), Polish (pl), Puno Quechua (qxp), Quechua (qu), Rifian (rif), Romagnol / Emilian-Romagnol (egl), Romani (rom), Romanian (ro), Romansh (rm), Rombo (rof), Rukai (dru), Runyankole (nyn), Russian (ru), Sakizaya (szy), Sami, Northern (se), Samoan (sm), Sanskrit (sa), Santali (sat), Sardinian (sc), Scots (sco), Scottish Gaelic (gd), Serbian (sr), Sesotho (st), Shona (sn), Sicilian (scn), Sidamo (sid), Silesian (szl), Sindhi (sd), Sinhala (si), Slovak (sk), Slovenian (sl), Somali (so), Sorbian (wen), Svan (sva), Swahili (sw), Swati (ss), Swedish (sv), Tachelhit (shi), Tahitian (ty), Tajik (tg), Tamasheq / Tuareg (tmh), Tamazight (tzm), Tamil (ta), Telugu (te), Tetum (tet), Thai (th), Tibetan (bo), Tigrinya (ti), Tok Pisin (tpi), Toki Pona (tok), Tongan (to), Tsonga (ts), Tswana (tn), Tulu (tcy), Turkish (tr), Turkmen (tk), Uighur (ug), Ukrainian (uk), Upper Sorbian (hsb), Urdu (ur), Uyghur (ug), Uzbek (uz), Venda (ve), Vietnamese (vi), Waray (war), Welsh (cy), Western Frisian (fy), Western Mari (mrj), Western Punjabi (pnb), Wolaytta (wal), Wolof (wo), Wu Chinese (wuu), Xhosa (xh), Xiang Chinese (hsn), Yakut (sah), Yiddish (yi), Yoruba (yo), Zhuang (za), Zulu (zu). This list uses the existing Voice Designer choices with mapped language codes required for submission. Voice Design creates a voice in the selected language; this is distinct from cloning reference-audio language support and STT language support. Voice Design remains an authenticated app workflow, not a public REST or MCP voice-creation method. Supported STT languages (27): Arabic (ar), Cantonese (yue), Chinese (Mandarin) (zh), Czech (cs), Dutch (nl), English (en), Filipino (fil), French (fr), German (de), Greek (el), Hindi (hi), Hungarian (hu), Indonesian (id), Italian (it), Japanese (ja), Korean (ko), Malay (ms), Persian (Farsi) (fa), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Thai (th), Turkish (tr), Vietnamese (vi). ## Developer documentation - [Speech API](https://giggy.ai/docs/speech-api): Authentication, generation modes, integration setup and MCP. - [Developer tools and integrations](https://giggy.ai/docs/speech-api#api-developer-tools): Choose an SDK, Pipecat adapter, n8n node, MCP tools, executable example or learning resource by task. - [API reference](https://giggy.ai/docs/api-reference): API endpoints, generation lifecycle, formats and errors. - [OpenAPI 3.1](https://api.giggy.ai/v1/openapi.json): Machine-readable public API contract. - [Generation modes](https://giggy.ai/docs/generation-modes): Batch, Fast and Streaming. - [Pricing](https://giggy.ai/pricing): Current pricing and credits. - [Full agent documentation](https://giggy.ai/llms-full.txt): Extended developer integration information. Use OpenAPI for REST fields, the installed SDK reference for method arguments and deadlines, and the connected tools/list schema for MCP arguments. A REST option is not automatically an SDK or MCP option. For HTTP troubleshooting, use https://giggy.ai/docs/api-reference#api-errors. ## Core capabilities - Native REST TTS: POST https://api.giggy.ai/v1/text-to-speech - Native REST STT: POST https://api.giggy.ai/v1/audio/transcriptions - OpenAI-compatible TTS: POST https://api.giggy.ai/v1/audio/speech - Public voice catalog: GET https://api.giggy.ai/v1/voices - Integration voice catalog: GET https://api.giggy.ai/v1/integrations/voices - OpenAPI contract: GET https://api.giggy.ai/v1/openapi.json - Remote MCP: https://giggy.ai/mcp ## Integrations Giggy provides compatibility paths for LiveKit, Pipecat and Vapi. See the Speech API documentation for current integration constraints. ## Authentication Native REST uses Giggy API keys with the xi-api-key header. OpenAI-compatible TTS and the existing MCP server use bearer authentication with a Giggy API key. Keep API keys in server-side environments or supported client secret stores. ## STT input and delivery Completed recordings: WAV PCM16 mono 16 kHz, minimum 0.5 seconds. Batch is free up to 25 minutes per request. Fast and uploaded-recording Streaming accept up to 12 hours. Fast is the default. Batch/Fast return HTTP 202 generation metadata; poll the generation and fetch its result.url for transcript JSON. Streaming returns cumulative transcript SSE. Live STT default: connect from your server to wss://api.giggy.ai/v1/audio/transcriptions with Authorization: Bearer $GIGGY_API_KEY or xi-api-key in the WebSocket upgrade headers. Send {"type":"start","format":"raw","encoding":"LINEAR16","sampleRateHz":16000,"interimResults":true,"options":{"endpointing":"external"}}; optionally add language="en", or omit it for detection. Wait for generation_created and ready. Send headerless binary PCM16 LE mono on that same socket, then {"type":"stop"} after the real tail. Read transcription snapshots with replace=true, sequence, generation UUID and attempt; require is_final=true plus input_complete before publishing final text. Verify canonical completion and saved text/duration. Do not open an HTTPS request per audio frame. Jambonz may use sampleRateHz=8000 LINEAR16, converted continuously to canonical 16 kHz. Without external endpointing, the existing energy threshold and 650 ms silence rule delimit turns. Test background noise and quiet speech; unsupported hints reject explicitly. Paid API live audio: 0.5 seconds to 12 hours; browser previews and the downloadable replay are capped at 30 seconds. Paid admission reserves 96,000 credits and refunds unused allocation on accepted-duration settlement. Start promptly after ready; input/idle watchdogs apply. Eight live contexts per controller; capacity/rate/credit limits may reject admission. A disconnect cancels unfinished owned work; never reconnect or replay ambiguous audio automatically. Existing HTTPS/SSE live clients remain supported explicitly, while uploaded-recording Streaming continues to use SSE. Keep each session on its admitting origin during deployment draining. Guide and runnable reference: https://giggy.ai/docs/speech-api#api-stt-low-latency and https://giggy.ai/examples/live-stt.zip. ## Agent setup and workflow selection For pinned published package versions, task-by-task completion checks, code-only prompts and authentication boundaries, read the Verified package compatibility and Choose and verify an integration task sections in https://giggy.ai/llms-full.txt. Current documented pins are Python giggy 0.2.1, Node @giggy-ai/sdk 0.2.1, pipecat-giggy 0.3.3 with Pipecat 1.12.0, and n8n-nodes-giggy 0.1.1. Explicit historical adapter versions are not current install recommendations. Choose REST/SDK for a recording, WebSocket for live microphone input, or MCP for agent tool execution. For TTS, completed REST delivery and SDK speech.create return audio bytes; asynchronous REST requires Prefer: respond-async, while MCP returns generation metadata to poll for a result URL. Do not mix these response formats. The existing agent skill can guide integration code without MCP; MCP execution still requires a connected authenticated client. Read https://github.com/giggy-ai/giggy-mcp#install-for-ai-coding-agents for client-specific setup. Prepared plugin artifacts do not establish directory approval. Validate configuration/discovery first; do not run paid inference while doing code-only setup or diagnostics. ## SDKs and learning - [Python SDK method reference](https://github.com/giggy-ai/giggy-python#transcription-method-reference): Installation, recording/live STT, deadlines, errors and migration. - [Node/TypeScript SDK reference](https://github.com/giggy-ai/giggy-js#transcription-method-reference): STT requires 0.1.1+; typed events and AbortSignal support. - [Complete recording and framework tutorials](https://github.com/giggy-ai/giggy-examples#stt-in-voice-agent-frameworks): Python/Node recording workflows and LiveKit/Pipecat/Vapi constraints. - [Giggy Academy](https://giggy.ai/academy/voice-ai-essentials): Thirteen free voice AI lessons, optional activities and completion certificates. - [Pipecat adapter](https://github.com/giggy-ai/pipecat-giggy): Published 0.3.3; TTS/live STT, Python 3.11+, Pipecat 1.12.0. Applications supply transport and VAD. - [n8n node](https://github.com/giggy-ai/n8n-nodes-giggy): Published 0.1.1; self-hosted Batch/Fast TTS and voice discovery. Cloud verification is not established. - [MCP and agent skill](https://github.com/giggy-ai/giggy-mcp): Five remote tools for voice discovery, TTS, recorded STT and generation reads. Each user supplies a key; directory approvals are separate. Legacy compatibility: https://giggy.ai/v1 remains supported for existing integrations with the same API keys, request formats, billing and generation history. Keep each operation on its admitting origin. Live STT uses wss://api.giggy.ai/v1/audio/transcriptions. ## Partner integrations Guide: https://giggy.ai/docs/speech-api#api-partner-integrations LiveKit: https://giggy.ai/docs/speech-api#api-livekit — OpenAI-compatible TTS with base_url=https://api.giggy.ai/v1, model=giggyspeech, voice UUID and PCM output. Supply your own STT/VAD/transport. Native Giggy provider publication is not verified by this guide; the supported example here uses OpenAI-compatible TTS. Pipecat: https://giggy.ai/docs/speech-api#api-pipecat — Giggy-maintained pipecat-giggy TTS/live STT adapter. Released pipecat-giggy 0.3.3 uses V25 one-socket WebSocket STT with decode preparation, final input acknowledgements and fenced transcripts; tested Pipecat 1.12.0. Drain the lifecycle for durable saved-result verification. Earlier 0.2.0 retains its prior transport. Jambonz: https://giggy.ai/docs/speech-api#api-jambonz — custom STT provider at wss://api.giggy.ai/v1/audio/transcriptions; Authorization: Bearer Giggy API key; start, binary mono 8 kHz LINEAR16, stop; transcription messages on the same socket. Giggy converts continuously to 16 kHz. Jambonz-style protocol tested; native media-server calls remain separate qualification. No Jambonz streaming TTS claim. Official contract: https://docs.jambonz.org/guides/features/custom-stt-providers. These are compatibility integrations, not upstream listings or commercial partnership claims. Keep credentials server-side. Existing adapters and legacy API origin remain functional.