Skip to main content
Your account starts with 15 free minutes of audio. Free time and purchased time form one balance, shared by the playground and all your API keys. Creating a key does not grant additional free time. Only Tazo Large is available when usage enforcement is enabled. Meters show HH:MM:SS. The API balance card and billing emails show hours, minutes and seconds. These balance displays round up to whole seconds; detailed transaction amounts retain milliseconds.

How duration is counted

Tazo counts received audio samples, including silence. Network delays and connection time do not count. Wallets account for integer milliseconds. Streaming sums all audio across the entire WebSocket session, including every turn. Each completed clip or streaming session is rounded up once to a whole second for billing. Individual stream chunks and turns are added together before rounding. For example, a 100 ms clip or stream costs 1 second, and 100 chunks of 100 ms in one stream cost 10 seconds. A 12.4-second clip or stream costs 13 seconds. An exact 1-second operation costs 1 second. Intermediate decisions, repeated evaluations, and multiple turns do not add another charge for the same audio. Usage charts show measured audio; billing history records measured and billed duration separately. A clip with no successful result is free. A stream that never delivers a result is free. Once a stream delivers a result, its accepted audio is charged even if the connection later drops or processing fails.

When credits run out

New requests require a positive available balance and an active account. Previously admitted clips can finish and take the balance below zero. Further requests receive 402 insufficient_credits until credits are added. Paused or closed accounts receive 403 account_paused or 403 account_closed. Streams track their audio budget and recheck the account periodically. A stream that exhausts its budget emits a fatal insufficient_credits error and closes. Sessions end after the idle deadline or a maximum of 60 minutes. On a dropped connection, usage is finalized from the received audio; crash recovery can finalize from the last saved sample count. Keep the same Idempotency-Key when retrying an uploaded clip. A timeout does not cancel accepted durable work. Retrying retrieves that operation and does not charge again. A new WebSocket connection is a new stream.

Read your usage balance

GET /v1/usage accepts your API key or login token:
balance_seconds includes all remaining audio time and can be fractional, such as 59.9. Compatibility fields may also be returned; use this balance directly. Billing history, purchases, refunds and usage entries are available through the login-only GET /v1/billing/transactions?cursor=...; return its next_cursor unchanged for the next page. The payment endpoints do not accept API keys.