# Giggy > Giggy provides text-to-speech and speech-to-text APIs for developers building voice-enabled products. 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. ## 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. ## 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. ## 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.2.0; 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.0; 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 TTS contribution remains open: https://github.com/livekit/agents/pull/7659. Pipecat: https://giggy.ai/docs/speech-api#api-pipecat — Giggy-maintained pipecat-giggy TTS/live STT adapter. Released pipecat-giggy 0.3.0 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.