Account Management

On the AssemblyAI dashboard, you can manage your projects and API keys, and see a breakdown of your usage and spend.

Projects

Projects can be used to isolate data for different environments or applications, e.g., production, staging, or development. Each project has its own API keys, allowing for better organization and data access control.

Transcripts and other project-specific data is accessible only within the project they were created in — An API key from one project will not be able to access historical transcripts or data from another project. This separation maintains data security and prevents unintended cross-project access.

You can create, rename, and delete projects based on your plan:

Usage limitsFreePAYGContractedEnterprise
Number of projects225Custom

API Keys

API keys are unique credentials that authenticate requests to the API. Each API key is associated with a specific project, ensuring secure and controlled access.

You can create and delete API keys based on your plan:

Usage limitsFreePAYGContractedEnterprise
Number of API keys2425Custom

Create a new API Key

  1. Log in to your AssemblyAI Dashboard
  2. Navigate to the “API Keys” section
  3. Click the “Create New API Key” button
  4. Enter a descriptive name for your API key (e.g., “Production API”, “Development API”)
  5. Click “Create”

Delete an API Key

  1. Log in to your AssemblyAI Dashboard
  2. Navigate to the “API Keys” section
  3. Locate the API key you want to delete
  4. Click the “Delete” button next to the key
  5. Confirm the deletion in the popup dialog

This action cannot be undone. Make sure no active applications are using the key before deletion.

Reporting

Get insights into your usage and spend to track and manage costs effectively with the reporting tool in the AssemblyAI dashboard. You can analyze your usage and spend data at different levels of granularity:

  • Account
  • Product (e.g., Speech-to-text, Streaming, LeMUR)
  • Models (e.g., Best, Claude 3.5 Sonnet, etc.)
  • Project
  • API key

Usage Limits

With the current version of multi-project support, rate limiting is applied at the account level, not at the project level. This means that the rate limits for each API key mirror the rate limits for the account.

Example: If an account has an Async concurrency of 200, each API key for that account will be able to process up to 200 requests concurrently.

To ensure a smooth experience for all users, certain operations have per-account usage limits.

  • Concurrency limits for asynchronous operations
  • Rate limits for synchronous operations
Need a higher concurrency?

Our services are infinitely scalable and we offer custom concurrency limits that scale to support any workload at no additional cost. If you need a higher concurrency limit please either contact our Sales team or send an email to our Support team.

Speech-to-Text usage limits

AssemblyAI limits the number of transcriptions being processed at any given time.

Usage limitFree accountPaid account
Concurrent transcriptions5200+

If you submit a transcription that would exceed your usage limit, it’ll be added to a queue. Queued transcriptions will be processed automatically as previously submitted transcriptions complete.

If your account balance goes below zero, your concurrency limit will be reduced to 1.

If you exceed your concurrency limit, you’ll receive an email stating that your transcripts have been throttled. Note that you’ll only receive this email once per day.

Email notifying user that their transcripts have been throttled due to exceeding the Concurrency limit

Streaming Speech-to-Text usage limits

Usage limits for streaming speech-to-text are distinct from asynchronous speech-to-text usage limits. There are two key metrics that define streaming usage limits:

  • New sessions rate limit: The number of new streaming sessions able to be opened per minute.
  • Concurrency: The total number of streaming sessions able to be open simultaneously.

AssemblyAI’s Universal-Streaming API features unlimited, automatic scaling concurrency limits for paid accounts that are dynamic based on usage. We do not limit the total number of concurrent streaming sessions. Instead, there is only a limit on the number of new streaming sessions that can be created per minute. These limits start at:

Account typeStarting rate limit (new sessions/min)
Free5
Paid100+
How unlimited streaming session scaling works

Anytime you are utilizing 70% or more of your current limit, the number of new streams able to be opened over the next minute will automatically increase by 10%.

Assuming you follow this pattern minute-over-minute maxing out your available new sessions rate limit for 5 minutes:

  • Minute 1: 100 new streams/min (default of 100) → 100 concurrent streams
  • Minute 2: 110 new streams/min (100 × 1.10) → 210 concurrent streams
  • Minute 3: 121 new streams/min (110 × 1.10) → 331 concurrent streams
  • Minute 4: 133 new streams/min (121 × 1.10) → 464 concurrent streams
  • Minute 5: 146 new streams/min (133 × 1.10) → 610 concurrent streams

Total streams: 100 + 110 + 121 + 133 + 146 = 610 streams

At the start of the 6th minute, there would be 610 total concurrent open streams. Over the next 60 seconds, a maximum of 161 (146 x 1.10) new streams would be able to be opened.

This usage pattern has no ceiling and can continue to scale up indefinitely to whatever your application requires. Based on the rate at which you are opening streams in comparison to your current limit, your new sessions per minute limit will adjust as follows:

  • 70% or more — Scale up by 10%.
  • Within 50-69% — Unchanged.
  • Less than 50% — Begin to scale back down (to your account’s starting limit).
    • Important: This may impact your ability to immediately open a large number of new streams if the rate at which you have been creating new streams has been low for a period of time despite having a high number of open concurrent streams.

If you exceed your current limit, you’ll receive an error with the message: Unauthorized connection: Too many concurrent sessions.

Properly terminating sessions

If you’re consistently hitting rate limits when trying to open new sessions, first make sure that you’re terminating sessions properly.

  • If you’re using the WebSocket API directly, you need to send a terminate_session message.

LeMUR usage limits

LeMUR requests are rate limited within a 60-second time window. For more information, see Rate limits.

Usage limitFree accountPaid account
Requests per minute230+

Best Practices

  • Use different API keys for development and production environments
  • Monitor usage and spend patterns for each API key in your dashboard
  • Keep your API keys secure and never expose them in client-side code
  • Use meaningful names and tags to easily identify the purpose of each key
  • Store API keys as environment variables in your application