# Sawtak Arabi > Sawtak Arabi is an OpenAI-compatible API for Arabic text-to-speech and reusable voices. Use this file as the public integration index. Use the endpoint guides for supported request fields, responses, and workflow details. Do not infer undocumented fields, limits, or API routes. ## Generate audio with an agent Start with [Use with an AI agent](https://sawtakarabi.ai/docs/agent-skill.md). Use the official [Sawtak Arabi skill](https://github.com/SawtakArabi/skill) and read its [SKILL.md](https://raw.githubusercontent.com/SawtakArabi/skill/main/skills/arabic-voiceover/SKILL.md). Install: `npx skills add SawtakArabi/skill --skill arabic-voiceover -g -a claude-code -a codex`. If the key is missing, direct the user to [API Keys](https://sawtakarabi.ai/dashboard/api-keys): sign in, click Create key, name it, and copy the key shown once. Give the [local setup steps](https://sawtakarabi.ai/docs/authentication.md), then resume the original task once configured. Do not ask for the key in ordinary chat. Use `SAWTAK_API_KEY` in the agent's execution environment. Dashboard-created keys need no scope selection. Check balance before asking the user to add credit. Reply in the language of the user's prompt; keep narration in the requested language/dialect. Use the skill's pronunciation enhancement unless the user disables it. Preserve partial audio; never automatically regenerate uncertain paid work. ## API documentation - [Full documentation](https://sawtakarabi.ai/llms-full.txt): All public English guides in one Markdown document. ## Integration rules - Base URL: `https://api.sawtakarabi.ai/v1`. - Send `Authorization: Bearer ` for authenticated requests. - Dashboard-created keys cover standard API operations. See Authentication for restricted credentials. - Treat `error.code` as the stable programmatic error signal. Preserve `request_id` for support. - On `429`, honor `Retry-After` and retry with bounded exponential backoff and jitter. - Successful cloning returns HTTP 201 with a ready voice after processing; no routine polling is needed. ## Documentation - [Sawtak Arabi documentation](https://sawtakarabi.ai/docs/index.md): Build Arabic speech experiences with the Sawtak Arabi API. - [Use with an AI agent](https://sawtakarabi.ai/docs/agent-skill.md): Generate Arabic voiceovers with Claude Code, Codex, and the official Sawtak Arabi skill. - [Quickstart](https://sawtakarabi.ai/docs/quickstart.md): Make your first Arabic speech request. - [Agent recipes](https://sawtakarabi.ai/docs/agent-recipes.md): Deterministic workflows for Claude, Codex, and other coding agents. - [Authentication](https://sawtakarabi.ai/docs/authentication.md): Create a dashboard API key and connect your application or agent. - [Text to speech](https://sawtakarabi.ai/docs/text-to-speech.md): Stream Arabic speech from text with the audio endpoint. - [Voices](https://sawtakarabi.ai/docs/voices.md): Find the right voice and use its ID in a request. - [Voice cloning](https://sawtakarabi.ai/docs/voice-cloning.md): Create and use an authorized cloned voice. - [Streaming Audio](https://sawtakarabi.ai/docs/streaming.md): Receive, process, and safely play real-time streamed audio responses from POST /v1/audio/speech. - [Operations and retries](https://sawtakarabi.ai/docs/operations.md): Inspect generation status, cancel work, and avoid duplicate submissions. - [Usage](https://sawtakarabi.ai/docs/usage.md): Inspect the authenticated account and its API usage. - [Generation records](https://sawtakarabi.ai/docs/generation-history.md): Understand saved generation history and troubleshooting retention. - [Request limits](https://sawtakarabi.ai/docs/limits.md): Handle request, upload, and concurrency limits reliably. - [Errors](https://sawtakarabi.ai/docs/errors.md): Read and handle API errors consistently.