https://api.pyai.com/openapi.json.
They handle bearer auth, retries on 429 and 5xx, multipart uploads, and
idempotency helpers. Raw curl and WebSocket examples in these docs stay valid;
use the SDK when you want that plumbing done for you.
PYAI_API_KEY from the quickstart. Treat the key as an
opaque string. Do not parse or decode it.
What each client covers
clones.get filters GET /v1/voice/clones. The API has no GET-by-id for
clones.
When to stay on curl or a raw socket
- You are proving a key in 30 seconds:
POST /v1/sandbox/keysthenGET /v1/me. - You are integrating a language the official SDKs do not cover.
- You need the exact Omni binary frames (
0x01audio,0x02transcript,0x03control). The Omni protocol is the contract.
Framework adapters
Keep LiveKit or Pipecat if those products already own the loop. PyAI is the speech layer only. Those packages do not create or select an Omni agent.AI coding agents
The PyAI MCP server can mint a sandbox key and call Hear, Speak, and the voice catalog as tools. See Use PyAI in Cursor.Quickstart
Mint a key and copy a first call in curl, Python, or Node.
Errors and limits
Stable codes, first-call failures, and when not to retry.