Get started

Pricing and limits

What a credit buys, what each plan grants, and where the ceilings are.

Streaming runs on our GPUs, so there is no free API tier. A session is billed on how long its socket is open, from a credit balance that belongs to the API track alone.

How a credit is spent#

  • One credit per second of an open session, rounded up, with a floor of one per session. A socket open for 1.2 seconds bills 2; one open for 20 ms bills 1.
  • Socket time, not audio. Silence counts. An open session holds a worker’s slot whether or not it is speaking, which is exactly what you are paying for.
  • Your API balance only. Companion credits cannot pay for streaming; they are two purchases with no exchange rate between them.
  • A session is refused with 4004 when your balance cannot cover the minimum charge.

The corollary for your code: close the socket when you are done, and reuse it while you are not. Reconnecting per utterance costs 40–100 ms of handshake and a full credit every time; holding one open through a long silence bills for the silence. The middle ground, one socket per conversation closed at the end, is both the cheapest and the fastest.

Plans#

StarterPro
Price$9 / month$29 / month
Credits granted100,000400,000
Streaming timeAbout 28 hoursAbout 111 hours
Concurrent sessions28

Credits are granted on activation. Plans and balances live on the API Platform, which shows what you hold against what the plan granted.

Keys do not authenticate without a plan. An account with no API plan is refused whatever credential it presents. The session route answers 402 before a socket is ever opened.

Concurrency#

Your plan’s ceiling is the number of sockets you may hold open at once. Past it, the gateway closes new connections with 4002. Every session response carries max_concurrent_sessions, so your own queue can know the limit without keeping a copy of our plan table.

A lease is released when the socket closes, and it expires on its own if a gateway dies holding it, so a crash on our side does not permanently burn your budget.

HTTP rate limits#

The REST routes under https://api.zeroweight.ai/api/v1/* are rate-limited by client IP at 200 requests per minute. Over it, the response is 429 with {"detail": "Rate limit exceeded"}. Cache what you can, since an avatar bundle changes rarely, and back off exponentially on 429.