How billing works
- Add a credit card and deposit funds into your account. Funds are drawn down as you use the API.
- Rates are listed per hour for simplicity, but pre-recorded audio is pro-rated to the exact second of audio processed.
- Credits are deducted only after a successful transcription completes. If a request errors, you aren’t charged for it.
- Monitor your balance on the Billing page (under Workspace > Settings > Billing in the dashboard) and enable auto-pay to avoid service interruptions. End-of-month invoicing is available for enterprise customers.
- Set up billing alerts under Workspace > Settings > Alerts in the dashboard to get notified before your balance runs low.
Payment method and invoices
AssemblyAI accepts all major credit cards. ACH transfers are available in some cases — email support@assemblyai.com to learn more. To update the credit card on your account, log in to the dashboard, go to Workspace > Settings > Billing, and update your payment details. You can also click View billing details in the bottom-left corner of the dashboard to jump straight to this page. To change the company information shown on your invoices, email support@assemblyai.com with the details you’d like to appear.Pre-recorded Speech-to-Text billing
Pre-recorded transcription is billed on the duration of the submitted audio or video file in seconds, multiplied by the hourly rate for the selected speech model. Add-on features (for example, Entity Detection or Medical Mode) are billed separately at their own hourly rates, also pro-rated to the exact second.Streaming Speech-to-Text billing
Billing for streaming sessions starts when the WebSocket connection opens and stops when the session ends. This model gives you full control over cost: you can keep a stream open continuously for instant response, or open streams on demand to minimize spend. Each open session is billed independently on its own WebSocket-open duration, so concurrent sessions accumulate billed time in parallel. For example, two streaming sessions running simultaneously for 5 minutes each — including a single call that is dual-streamed under two separate session IDs — bill as 10 minutes of total session time at the streaming rate listed in the Models pricing section. Follow these best practices to avoid unexpected charges:- Always send a session termination message when your application is finished with a stream. This is what stops billing for the session.
- If a session is not closed, it will automatically close after 3 hours — and you’ll be billed for the full 3 hours of session time, regardless of how much audio was actually streamed.
- Improperly closed streaming sessions are the most common cause of unexpected charges that lead to negative account balances.
Voice Agent API billing
Billing for a Voice Agent session starts when the WebSocket connection opens and stops when the session ends. Sessions bill at the Voice Agent rate listed on the pricing page, pro-rated to the second, and each concurrent session accumulates billed time independently. A few Voice Agent-specific behaviors to be aware of:- 30-second resume grace window. If the client closes the WebSocket without sending
session.end, the server keeps the session open for 30 seconds so the client can reconnect withsession.resume. That grace window is billable. Sendsession.endon any intentional disconnect (user hung up, “End call” button, page unload) to avoid it. See Unexpected billing after the call ended. - Idle time is billable. Just like Streaming STT, silence and idle periods on an open Voice Agent connection are billed. Close sessions as soon as you’re done with them.
- Any LLM Gateway calls made by the agent are billed separately at the LLM Gateway token rates for the model in use — see LLM Gateway billing below.
LLM Gateway billing
LLM Gateway is billed on input and output tokens, not on audio duration or session time. Each request is charged at the per-1M-token input and output rates for the specific model you call. Rates vary by model — Claude, GPT, Gemini, and the other supported providers each have their own input and output prices, listed in the Rates table on the Billing page of the dashboard and on the pricing page. A few things to keep in mind:- Output tokens usually cost more than input tokens. Output pricing reflects the compute needed to generate the response. See Understanding input and output tokens for LLM Gateway.
- LLM Gateway is not covered by the $50 free tier. The free credits granted to new accounts apply to Pre-recorded STT, Real-time STT, Voice Agent API, Speech Understanding, and Guardrails. LLM Gateway usage is billed from your account balance from the first request.
- In-region endpoints have a 10% surcharge as of July 1, 2026. Requests to the US (
llm-gateway.assemblyai.com) or EU (llm-gateway.eu.assemblyai.com) in-region endpoints are 10% higher than global routing as a direct pass-through of provider price increases, with no AssemblyAI upcharge. To keep the standard rate, opt into global routing. - Streaming and Voice Agent calls that invoke LLM Gateway are billed additively. The Streaming or Voice Agent session is billed on its WebSocket-open duration, and any LLM Gateway request made during that session is billed separately on its input and output tokens.
Multichannel billing
When multichannel transcription is enabled, each channel is transcribed and billed separately. The total cost is the audio duration multiplied by the model’s hourly rate, multiplied by the number of channels. For example, a 5-minute recording with three channels is billed as 15 minutes of audio (5 minutes × 3 channels) at the selected model’s rate.Free tier and credits
New accounts receive $50 in free credits for Pre-recorded STT, Real-time STT, Voice Agent API, Speech Understanding, and Guardrails. Credits do not expire, and any unused credits are retained on your account when you upgrade by adding a credit card. LLM Gateway is not included in the free tier. Once your free credits are used up, add a credit card to keep using the API. If your balance reaches $0 without auto-pay enabled, API access is paused until you top up.Volume discounts
If you plan to send large volumes of audio or video through the API, contact sales to see if you qualify for a volume discount.Startup and Y Combinator pricing
Early-stage startups can apply for the AssemblyAI Startup Program, designed to help startups build with the speech-to-text API without financial constraints. Y Combinator companies qualify for special pricing — contact sales to discuss the discount and see if you qualify.AWS Marketplace
AssemblyAI is available on the AWS Marketplace. Purchasing through the AWS Marketplace lets you consolidate billing with your existing AWS account and apply your spend toward any AWS committed-use agreements. For details, contact sales or ask your AWS account team.Billing and customer usage tracking
The Cost and Usage pages under Workspace > Manage in your dashboard provide a breakdown of spend and usage. If you need to track usage programmatically on a per-customer basis, you can use webhooks with custom query parameters for async transcription, or capture thesession_duration_seconds from the WebSocket Termination event for streaming.
For async transcription, append a customer_id query parameter to your webhook URL when submitting a transcription:
customer_id from the webhook URL and retrieve the audio_duration from the transcript response to record usage.
For streaming transcription, manage customer IDs in your application state and capture the session_duration_seconds from the Termination event. AssemblyAI bills streaming based on session duration.
Creating separate API keys for each customer is not recommended. Use webhooks
with metadata instead.
How does Auto-pay work?
Auto-pay automatically recharges your account when your balance falls below a specified threshold. When triggered, it charges your card to bring your balance back to a predetermined amount. Auto-pay is recommended for production environments to prevent service interruptions.Example
If you set:- Whenever my balance falls below: $25
- Bring my balance back to: $50