> For the complete documentation index, see [llms.txt](https://docs.noiz.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.noiz.ai/api-documentation/guest.md).

# Guest

## Guest text-to-speech (no login required)

> Text-to-speech for unauthenticated users. Rate-limited by IP address. Only whitelisted built-in voices are available. Text is limited to 400 characters. Each IP is limited to 5 requests per month.

```json
{"openapi":"3.0.3","info":{"title":"Voice API","version":"1.0.0"},"servers":[{"url":"https://noiz.ai/v1","description":"Production server"}],"security":[],"paths":{"/guest/text-to-speech":{"post":{"tags":["Guest"],"summary":"Guest text-to-speech (no login required)","description":"Text-to-speech for unauthenticated users. Rate-limited by IP address. Only whitelisted built-in voices are available. Text is limited to 400 characters. Each IP is limited to 5 requests per month.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["text","voice_id"],"properties":{"text":{"type":"string","maxLength":400,"description":"Text to convert to speech (max 400 characters)"},"voice_id":{"type":"string","description":"Voice ID (must be from the guest whitelist). Available voices — en: 95814add, 5a68d66b, a845c7de, 883b6b7c, 0e4ab6ec; zh: 3b9f1e27, b4775100, ac09aeb4, 87cb2405, 77e15f2c; ja: 063a4491, 4252b9c8, 578b4be2, f00e45a1, a9249ce7."},"output_format":{"type":"string","enum":["wav","mp3"],"default":"wav","description":"Output audio format"},"target_lang":{"type":"string","description":"Target language code (e.g., \"zh\", \"en\", \"ja\")"},"speed":{"type":"number","minimum":0.5,"maximum":2,"default":1,"description":"Speech speed multiplier (0.5–2.0)"},"filter_type":{"type":"string","enum":["telephone","radio","hall","studio"],"description":"Optional audio filter effect"}}}}}},"responses":{"200":{"description":"Success — returns audio binary stream","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}},"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"429":{"description":"Rate limit or monthly quota exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{"type":"object","properties":{"ttl":{"type":"integer","description":"Seconds to wait before retrying"}}}}}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"503":{"description":"Service busy","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"504":{"description":"Inference timeout","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```
