# Hopper > Open-source voice models served for real-time latency ## Docs - [Health check](https://docs.withhopper.com/api-reference/health/health-check.md): Gateway liveness. No authentication. - [API reference](https://docs.withhopper.com/api-reference/index.md): Base URL, authentication, error envelope, and spend headers for api.withhopper.com - [Get job](https://docs.withhopper.com/api-reference/jobs/get-job.md): Returns the status of an async voice job (instant clone, pro clone, localize). On success, result carries the voice id and its profile. - [Create chat completion](https://docs.withhopper.com/api-reference/llm/create-chat-completion.md): OpenAI-compatible chat completions. The body is forwarded to the inference engine unchanged, so any OpenAI chat completions parameter is accepted; the engine validates it. Request body cap: 10 MB. - [List models](https://docs.withhopper.com/api-reference/llm/list-models.md): Lists the models served by the inference engine, in the OpenAI list format. - [Create dictionary](https://docs.withhopper.com/api-reference/pronunciation/create-dictionary.md): Creates an empty pronunciation dictionary. Add entries with PUT /pronunciation-dicts/:id/entries. - [Delete dictionary](https://docs.withhopper.com/api-reference/pronunciation/delete-dictionary.md): Soft-deletes a dictionary. - [Get dictionary](https://docs.withhopper.com/api-reference/pronunciation/get-dictionary.md): Returns one dictionary with its entries. - [List dictionaries](https://docs.withhopper.com/api-reference/pronunciation/list-dictionaries.md): Lists your org's pronunciation dictionaries. - [Rename dictionary](https://docs.withhopper.com/api-reference/pronunciation/rename-dictionary.md): Updates the dictionary name. - [Replace entries](https://docs.withhopper.com/api-reference/pronunciation/replace-entries.md): Replaces the dictionary's entries. Each entry maps a grapheme to exactly one of alias (whole-word text substitution, expanded at the gateway) or phoneme (passed to the model). Max 1,000 entries. - [Transcribe audio](https://docs.withhopper.com/api-reference/speech-to-text/transcribe-audio.md): Batch transcription with word timestamps. Accepts raw PCM16 mono or WAV only; compressed formats (mp3, ogg, flac, mp4, m4a) are rejected. Body cap: 25 MB. - [Streaming transcription (WebSocket)](https://docs.withhopper.com/api-reference/stt-websocket.md): Message contract for wss://api.withhopper.com/stt/websocket - [Create speech (OpenAI-compatible)](https://docs.withhopper.com/api-reference/text-to-speech/create-speech-openai-compatible.md): OpenAI-compatible speech synthesis. Format mappings: mp3 = 44.1 kHz at 128 kbps, wav = pcm_s16le 24 kHz, pcm = raw pcm_s16le 24 kHz. For full control of container, sample rate, and encoding, use POST /tts/bytes. - [Generate speech](https://docs.withhopper.com/api-reference/text-to-speech/generate-speech.md): Native speech synthesis with full control of container, sample rate, and encoding. Returns raw audio bytes; set stream true for progressive relay of WAV/PCM bytes. - [Stream speech over SSE](https://docs.withhopper.com/api-reference/text-to-speech/stream-speech-over-sse.md): Same body as POST /tts/bytes; the response is always streamed as server-sent events regardless of the stream field. Each audio chunk arrives as `data: {"type":"chunk","data":""}`, followed by a final `data: {"type":"done"}`. mp3 is not supported; speed must be 1. - [Clone voice (instant)](https://docs.withhopper.com/api-reference/voices/clone-voice-instant.md): Creates a voice from one audio clip of at least 10 s. Send the clip as multipart, or reference an already-uploaded blob as JSON. Exactly one clip is required. Caps: 25 MB per blob, 250 MB per org. If the clone-capable upstream is online the voice returns synchronously (201); otherwise a job is queue… - [Clone voice (pro)](https://docs.withhopper.com/api-reference/voices/clone-voice-pro.md): Creates a voice from a dataset of clips. Always asynchronous; poll GET /jobs/:id. - [Delete voice](https://docs.withhopper.com/api-reference/voices/delete-voice.md): Soft-deletes a voice your org owns. - [Get voice](https://docs.withhopper.com/api-reference/voices/get-voice.md): Returns one voice with its profiles. - [List voices](https://docs.withhopper.com/api-reference/voices/list-voices.md): Lists platform voices plus your org's own voices, cursor-paginated. - [Localize voice](https://docs.withhopper.com/api-reference/voices/localize-voice.md): Creates a new voice in a target language from an existing one. Featured voices can be localized; the result is a voice your org owns. Always asynchronous; poll GET /jobs/:id. - [Prepare voice for a model](https://docs.withhopper.com/api-reference/voices/prepare-voice-for-a-model.md): Prepares a voice profile for another TTS model. Returns 200 immediately if a cached profile exists; otherwise queues a job (202). - [Save voice](https://docs.withhopper.com/api-reference/voices/save-voice.md): Adds a voice to your saved list (scope=saved on GET /voices). - [Unsave voice](https://docs.withhopper.com/api-reference/voices/unsave-voice.md): Removes a voice from your saved list. - [Update voice](https://docs.withhopper.com/api-reference/voices/update-voice.md): Updates name, description, or tags on a voice your org owns. Platform voices are read-only. - [Hopper](https://docs.withhopper.com/index.md): Open-source voice models served for real-time latency behind an OpenAI-compatible API - [Chat Completions](https://docs.withhopper.com/llm/chat-completions.md): OpenAI-compatible chat completions on gemma-4-31b with ~37 ms TTFT on short prompts - [Models](https://docs.withhopper.com/models.md): The Hopper model catalog — Gemma 4 31B, OmniVoice, and Nemotron ASR - [API keys](https://docs.withhopper.com/platform/api-keys.md): Mint and revoke sk_hopper_ keys in the console; pass them via the Authorization header - [Errors](https://docs.withhopper.com/platform/errors.md): OpenAI error envelope; every error code grouped by HTTP status - [Pricing](https://docs.withhopper.com/platform/pricing.md): LLM \$1/\$3 per M tokens, TTS \$30/M characters, STT \$0.30/audio-hour; \$5 free credits on signup - [Rate limits](https://docs.withhopper.com/platform/rate-limits.md): 600 requests/min per key; 429 with Retry-After past the limit - [Quickstart](https://docs.withhopper.com/quickstart.md): Get an API key, make a chat completion, and stream the response - [Streaming transcription](https://docs.withhopper.com/stt/streaming.md): Real-time transcription over WebSocket with partial results and turn detection presets - [Batch transcription](https://docs.withhopper.com/stt/transcription.md): Transcribe recorded audio with word-level timestamps at \$0.30 per hour of audio - [Voice cloning](https://docs.withhopper.com/tts/cloning.md): Instant clone from one 10-30 s clip, pro clone from a 10+ minute dataset, localize into a new language - [Generate speech](https://docs.withhopper.com/tts/generate-speech.md): 24 kHz English text to speech over raw bytes, SSE, or the OpenAI-compatible /v1/audio/speech; \$30 per million characters - [Pronunciation dictionaries](https://docs.withhopper.com/tts/pronunciation.md): Alias and phoneme entries applied per TTS request; 1,000 entries per dictionary - [Voice library](https://docs.withhopper.com/tts/voices.md): List, filter, edit, and save voices; prepare a voice for a model with profiles ## OpenAPI Specs - [openapi](https://docs.withhopper.com/api-reference/openapi.json)