> ## Documentation Index
> Fetch the complete documentation index at: https://assemblyai.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Billing and Pricing

AssemblyAI uses pay-as-you-go pricing with no contracts, minimums, or monthly subscriptions. You only pay for what you use, and failed transcripts aren't charged. For the latest per-hour rates across all models, see the [pricing page](https://www.assemblyai.com/pricing) or the [Models pricing section](/getting-started/models#pricing).

## 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](https://www.assemblyai.com/dashboard/home)) and enable [auto-pay](#how-does-auto-pay-work) 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](mailto:support@assemblyai.com) to learn more.

To update the credit card on your account, log in to the [dashboard](https://www.assemblyai.com/dashboard/home), 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](mailto: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

<Warning>
  **Streaming is billed per session, not per second of audio**

  Streaming Speech-to-Text is billed on the total duration that your WebSocket connection stays open, not on the amount of audio you send. You're charged for the entire session — including any time the connection is idle with no audio flowing — so it's important to close streaming sessions as soon as you're done with them.
</Warning>

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](/getting-started/models#pricing).

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.

For details on how to terminate a session, see the [Session termination](/streaming/getting-started/transcribe-streaming-audio) message sequence reference.

## Multichannel billing

When [multichannel transcription](/pre-recorded-audio/transcribe-multiple-audio-channels) 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](#how-does-auto-pay-work) 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](https://www.assemblyai.com/contact) to see if you qualify for a volume discount.

## Startup and Y Combinator pricing

Early-stage startups can apply for the [AssemblyAI Startup Program](https://www.assemblyai.com/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](https://www.assemblyai.com/contact) to discuss the discount and see if you qualify.

## AWS Marketplace

AssemblyAI is available on the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-j45hta6jdej7c). 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](https://www.assemblyai.com/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 the `session_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:

```
https://your-domain.com/webhook?customer_id=customer_123
```

When the transcription completes, extract the `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.

<Note>
  Creating separate API keys for each customer is not recommended. Use webhooks
  with metadata instead.
</Note>

## 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

When your balance of \$26 drops to \$21 after a \$5 charge, auto-pay will add \$29 to reach your \$50 target balance.

<Warning>
  When your balance hits \$0 or goes negative without auto-pay, your API access is restricted until you add funds. You'll receive this error message: `{"error": "Your current account balance is negative. Please top up to continue using the API."}`
</Warning>

Enable auto-pay and maintain a healthy balance to ensure uninterrupted API access. Set your threshold based on your typical monthly usage to avoid frequent small charges.

You can also disable auto-pay at any time from **Workspace** > **Settings** > **Billing** in the [dashboard](https://www.assemblyai.com/dashboard/home).
