Theme
Pricing overview
VoiceLab API usage is billed primarily on consumption. Check Billing for speech and audio rates, and GET /v1/models for LLM rates.
What is metered
| Service | Typical metric | Notes |
|---|---|---|
| LLM | Input and output tokens | Model-specific rates from GET /v1/models; fractional credits accumulate per account |
| TTS | Characters | Generated text length; realtime checks balance when the session starts |
| STT | Audio minutes | Short (v1) and long (v2) transcription |
| Optional | Diarization / summary | Extra processing when request flags are enabled |
| Voice Isolator | Audio duration | Credits rounded up per file; optional Sidon restoration has no separate surcharge |
LLM and Voice Isolator return 402 insufficient_credits for insufficient account balance and 402 api_key_credit_limit when a key limit is exceeded.
LLM billing
Read current prices and the credits-per-USD conversion from GET /v1/models. Prices distinguish input and output and are expressed in USD cents per million tokens. Each admitted request keeps its price version even if current prices change.
Before generation, VoiceLab reserves a conservative input budget plus the maximum output budget. The available balance and API-key credit limit must cover this reservation, which can exceed the eventual charge. Reported usage settles the charge and releases the unused reservation.
Input includes conversation history, function definitions, and tool results. Output includes function arguments and reported reasoning tokens, counted once within completion tokens. Cached input uses the normal input rate. Fractions accumulate per account at 1/100,000,000 of a credit; a small request may debit zero whole credits while still accruing usage.
Model discovery and request-status lookups are free. Completions use developer credits even on an unlimited platform plan. Ask's JWT routes remain uncharged.
Read GET /v1/llm/requests/{id} for the exact credit units, whole credits debited, token counts, and price version. A failed request can still be charged when usage is known. Missing final usage can block further LLM generations pending support reconciliation. Do not recover by submitting the same generation under a new idempotency key.
Voice Isolator billing
Voice Isolator calculates credits from each file's duration at the configured per-minute rate, rounding the resulting credit amount up per file. Current rates are available in Billing.
Credits are held when a job is accepted and settled once model processing succeeds. Terminal failure releases the hold. A batch reserves credits atomically; an invalid or unaffordable batch admits no jobs. Retrying the same upload with the same idempotency key and content does not create another hold.
Export conversions do not rerun the models or add credits. Hiding a job does not cancel accepted work or refund it.
Voice Isolator checks a key's credit limit against recorded billable API usage plus that key's pending Voice Isolator reservations. 402 insufficient_credits means the account balance is too low; 402 api_key_credit_limit means the key limit would be exceeded. This reservation check applies to Voice Isolator uploads and batches.
Successful developer jobs appear under voice_enhancer in API usage analytics.
Where to monitor usage
- API keys and limits: voicelab.uz/app
- Workspace billing / usage: Billing panel in the VoiceLab app (characters + minutes summary)
- Historical requests: TTS / STT history endpoints and Voice Isolator history
Integration tips
- Validate limits with a staging key before production traffic.
- Handle
402explicitly in async and realtime flows. - Reduce redundant generation (cache, idempotent job ids).
- Prefer v2 async STT for long audio; keep sync v1 for short clips.
Enterprise needs
For high volume, SLA, or custom terms, contact sales via the product site (Contact / Pricing).
Current rates
Check Billing for speech and audio rates, and GET /v1/models for current LLM prices and their credit conversion.