Skip to main content

AssemblyAI

AssemblyAI is a speech AI platform that exposes models for high-accuracy pre-recorded transcription, low-latency real-time streaming, and audio intelligence. The AssemblyAI REST API covers submitting and managing transcripts; retrieving sentences, paragraphs, redacted audio, and word-level search results; the LLM Gateway for chat completions; and short-lived tokens for the v3 Universal Streaming API and the Voice Agent API. Together these endpoints let integrations transcribe and analyze audio at scale, route generated text to downstream LLMs, and embed real-time voice experiences in agent and assistant products.

AssemblyAI icon

Power end-to-end data operations for your AssemblyAI API with Nexla. Our bi-directional AssemblyAI connector is purpose-built for AssemblyAI, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to AssemblyAI or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your AssemblyAI workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

AssemblyAI authenticates every REST and WebSocket call using a single secret API Key generated from your AssemblyAI dashboard. The key is sent in the Authorization header on each request (no Bearer or Basic prefix is required — the key value alone is the header value).

Generate an AssemblyAI API Key

  1. Sign in to your AssemblyAI account at assemblyai.com/dashboard. New accounts can be created free at assemblyai.com/dashboard/signup, which includes free usage credit for evaluation.

  2. From the left navigation, select the API Keys tab. The dashboard lists any keys already provisioned for the account.

  3. Click Create new API key, enter a descriptive name that identifies the integration (for example, Nexla integration), and click Create. AssemblyAI generates the key and adds it to the list.

  4. Click Copy next to the new key and store the value securely. The full key value remains retrievable from the dashboard, but it should be treated as a secret — anyone with the key can submit transcription jobs and consume credit on the account.

    If a key is exposed or no longer needed, return to the API Keys tab and click Revoke to invalidate it. Any integration that uses the revoked key will stop working immediately, so plan a rotation before revoking a key that is in use.

For complete information about retrieving and managing API keys, see the AssemblyAI Account Management documentation.

Regional Considerations

AssemblyAI offers an EU-hosted variant of the API at api.eu.assemblyai.com in addition to the default global host at api.assemblyai.com. The connector ships with endpoint templates that target the default global host. If your account or compliance requirements mandate the EU host, configure data sources manually using the Advanced tab and substitute api.eu.assemblyai.com for api.assemblyai.com in each endpoint URL.

Important

The AssemblyAI API key grants access to all transcription, audio intelligence, LLM Gateway, and streaming features on the account, and it bills against the account's credit balance. Store it in a secure secret manager, never commit it to source control, and rotate it immediately if you suspect it has been exposed.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter the AssemblyAI API key in the API Key Value field. This is the full key value copied from the API Keys tab of the AssemblyAI dashboard. Nexla stores this value as a secret and sends it as the raw Authorization header on every call to the AssemblyAI API — no Bearer or Basic prefix is added.

    AssemblyAI is unusual in that it does not prefix the API key in the Authorization header. If you copy curl examples from the AssemblyAI documentation, you'll notice the header is set as Authorization: <your-api-key>, not Authorization: Bearer <your-api-key>. Nexla applies this format automatically when using the AssemblyAI credential.

  4. Click the Save button at the bottom of the overlay to save the configured credential. Nexla validates the key by issuing a test call to GET https://api.assemblyai.com/v2/transcript before saving. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the AssemblyAI connector tile, then select the credential that will be used to connect to the AssemblyAI account, and click Next; or, create a new AssemblyAI credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common AssemblyAI endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Transcripts

This endpoint returns a paginated list of transcripts on the account, optionally filtered by status, creation date, or transcript ID. Use it to sync the transcript catalog into a warehouse, build dashboards over transcription volume, or fan out into the Get Transcript endpoint for record-level enrichment.

  • All filter parameters are optional. Leave them blank to return transcripts using AssemblyAI's default ordering, or set specific values to narrow the result set.
  • Enter the maximum number of transcripts to return per request in the Limit field. The default is 10 and the API allows up to 200.
  • Restrict the result set to a specific lifecycle state by entering one of queued, processing, completed, or error in the Status field.
  • Enter a date in YYYY-MM-DD format in the Created On field to return only transcripts created on that day.
  • Enter a transcript ID in the Before ID field to return transcripts created before the specified transcript. This is the cursor used by AssemblyAI's pagination — Nexla advances this value automatically across iterations of a paginated source.
  • Set the Throttled Only field to true to return only transcripts that were throttled due to concurrency or rate limits. Leave blank to include all transcripts.

This endpoint is paginated using the after_id cursor returned in each response. Nexla automatically follows the cursor until all matching transcripts have been retrieved. For complete parameter reference, see the List transcripts documentation.

Transcribe Audio

This endpoint submits an audio or video file for asynchronous transcription. Use it to programmatically kick off transcription jobs for media URLs upstream — for example, when a recording is uploaded to S3 or a webinar finishes — and to enable any of AssemblyAI's audio intelligence features (speaker labels, sentiment analysis, PII redaction, summarization, content safety, IAB categories, auto-chapters, and more).

  • Enter the publicly accessible URL of the audio or video file to transcribe in the Audio URL field. This is the only required parameter — AssemblyAI must be able to fetch the media from this URL. For private storage, use a signed/pre-signed URL.
  • Select the speech model in the Speech Model field. Common values are universal (highest accuracy, default), slam-1 (older slim model), and nano (lower cost, broader language support). Use Speech Models to provide a prioritized list when you want automatic fallback between models.
  • Set the Language Code field to a supported language code (for example, en, es, fr) when the source language is known. Alternatively, set Language Detection to true to let AssemblyAI detect the language automatically, and optionally restrict candidates with Language Codes and tune sensitivity with Language Confidence Threshold (0–1).
  • To bound the segment that is transcribed, set Audio Start From and/or Audio End At to the start and end offsets in milliseconds.
  • Enable audio intelligence features by setting the corresponding boolean field to true:

    • Speaker Labels — diarize speakers (mono audio). Pair with Speakers Expected when the speaker count is known, and Speaker Options for advanced behavior.
    • Multichannel — separate speakers using audio channels rather than diarization (use this for true stereo speaker tracks).
    • Auto Chapters — generate chapter titles and summaries.
    • Auto Highlights — surface key phrases and frequency counts.
    • Sentiment Analysis — score sentiment per sentence.
    • Entity Detection — return named entities (people, organizations, etc.).
    • IAB Categories — classify content against the IAB taxonomy.
    • Content Safety — flag sensitive content. Tune with Content Safety Confidence (a value between 25 and 100).
    • Summarization — generate a summary. Pair with Summary Type (e.g., bullets, paragraph, headline) and Summary Model (e.g., informative, conversational, catchy).
    • Speech Understanding — enable semantic speech understanding features.
  • Enable PII (personally identifiable information) handling with the redaction fields:

    • Set Redact PII to true to redact PII in the transcript text. Provide the entity classes to redact in Redact PII Policies (for example, person_name, email_address, phone_number) and the replacement strategy in Redact PII Substitution (for example, entity_type or hash).
    • Set Redact PII Audio to true to also redact PII from the source audio. The redacted audio file is then retrieved via the Get Redacted Audio endpoint. Tune output with Redact PII Audio Quality (e.g., mp3, wav) and Redact PII Audio Options.
    • Set Redact PII Return Unredacted to true to include both redacted and unredacted text in the response.
  • Provide transcription hints with Prompt (a context prompt for the model), Key Terms Prompt (a list of important terms), Custom Spelling (a JSON array of from/to mappings for domain-specific spellings), Custom Topics, Topics, and Domain.
  • Control text formatting using Punctuate (auto-punctuation), Format Text (numbers, dates, currencies), Disfluencies (keep filler words like uh/um), Filter Profanity, and Remove Audio Tags.
  • Tune model behavior with Temperature and Speech Threshold (minimum confidence for speech detection).
  • Subscribe to completion callbacks by entering an HTTPS URL in Webhook URL. AssemblyAI will POST the transcript ID and status to this URL when the job is complete. Use Webhook Auth Header Name and Webhook Auth Header Value to add a shared-secret header to the callback for verification.

This endpoint queues a transcript and immediately returns the new transcript object with a status of queued. The actual transcript text is not yet available — use the Get Transcript endpoint (or a webhook) to retrieve the completed transcript once status transitions to completed. Full parameter reference is in the Transcribe audio documentation.

Get Transcript

This endpoint retrieves the full record for a single transcript by ID, including the transcript text, words with timestamps, and any audio intelligence outputs enabled at submission time. Use it to poll a queued transcript for completion or to enrich an existing dataset of transcript IDs.

  • Enter the transcript ID in the Transcript Id field. Transcript IDs can be obtained from the List Transcripts endpoint or from the response of Transcribe Audio.
  • The endpoint returns the full transcript object, including status (queued, processing, completed, or error), the transcript text, the per-word words array with start/end timestamps and confidence, and any enabled audio intelligence outputs (chapters, highlights, sentiment, entities, etc.).

When polling a transcript that is still processing, AssemblyAI recommends waiting at least the duration of the audio file divided by 60 before the first poll. For complete schema reference, see the Get transcript documentation.

Get Sentences in Transcript

This endpoint returns the transcript broken into sentences, with per-sentence start and end timestamps and speaker labels. Use it to feed sentence-level analytics, build subtitle/caption layouts, or drive a downstream LLM with discrete utterances.

  • Enter the transcript ID in the Transcript Id field. The transcript must have reached completed status before sentences are available.

Sentences are derived from punctuation, so this endpoint is most useful when Punctuate was enabled at submission time. For details, see the Get sentences documentation.

Get Paragraphs in Transcript

This endpoint returns the transcript broken into paragraphs with timestamps and speaker labels. Use it for long-form reading layouts, transcript display in a UI, or paragraph-level summarization pipelines.

  • Enter the transcript ID in the Transcript Id field. The transcript must have reached completed status before paragraphs are available.

Get Redacted Audio

This endpoint returns JSON metadata for the redacted audio file produced when Redact PII Audio was enabled at submission time. The response includes a status field and a redacted_audio_url pointing to the redacted audio file in AssemblyAI's CDN.

  • Enter the transcript ID in the Transcript Id field. The transcript must have been submitted with Redact PII Audio set to true; otherwise AssemblyAI returns no redacted audio.
  • The redacted audio URL returned by this endpoint is time-limited. Download or copy the file promptly if it must be retained.

Use this endpoint as a downstream step after Transcribe Audio + Get Transcript when PII-safe audio is required for archival or onward distribution. For details, see the Get redacted audio documentation.

Search Words in Transcript

This endpoint searches a completed transcript for specific words or phrases and returns the matching occurrences with timestamps, confidence, and counts. Use it to surface keyword hits across long recordings or to build search-driven navigation over transcribed content.

  • Enter the transcript ID in the Transcript Id field. The transcript must be in completed status.
  • Enter the comma-separated terms to search for in the Words field (for example, nexla,assembly,transcribe). Each term is matched independently, and the response groups occurrences by term.

Search is exact-token-based — partial matches and stems are not returned. Use lowercase terms; AssemblyAI normalizes case for matching. For details, see the Word search documentation.

Create a Chat Completion

This endpoint sends a chat completion request to AssemblyAI's LLM Gateway, which exposes a single OpenAI-compatible API surface over Anthropic, OpenAI, Google, and other LLM providers. Use it to summarize, answer questions over, or otherwise post-process transcripts from Get Transcript without integrating a separate LLM provider.

  • Enter the model identifier in the Model field. Use any model exposed by the LLM Gateway (for example, anthropic/claude-sonnet-4-5, openai/gpt-4o, or google/gemini-2.5-pro). Use Fallbacks and Fallback Config to provide a prioritized list of alternates if the primary model is unavailable.
  • Provide the conversation in Messages as a JSON array of {'{role, content}'} objects (system, user, assistant). Alternatively, use Prompt for a simple single-turn system prompt.
  • Bound the response with Max Tokens, and tune randomness with Temperature (lower is more deterministic; higher is more creative).
  • Set Stream to true to receive a Server-Sent Events stream of token chunks instead of a single completion. For batch ingestion in Nexla, leave this as false so the full response is materialized as a single record.
  • To enable function/tool calling, provide a JSON array of tool definitions in Tools and the routing strategy in Tool Choice (auto, none, or a specific tool object).
  • Use Response Format to constrain the response to a JSON schema or other structured format, and Post Processing Steps for any provider-level post-processing operations.

The LLM Gateway is a relatively new AssemblyAI surface that replaces the older LeMUR API. For the most current model list and parameter reference, see the Chat completions documentation.

Generate Temporary Streaming Token

This endpoint mints a short-lived token that allows a client to connect directly to AssemblyAI's v3 Universal Streaming WebSocket (wss://streaming.assemblyai.com/v3/ws) without exposing the long-lived account API key. Use it from a server-side flow to provision tokens for browser, mobile, or edge clients that perform real-time transcription.

  • Enter the token lifetime (in seconds) in the Expires In Seconds field. This controls how long the issued token is valid for opening a new WebSocket connection.
  • Enter the maximum streaming session length (in seconds) in the Max Session Duration Seconds field. This caps the total duration of any session authenticated with the issued token.

Use this endpoint when an upstream system is provisioning temporary credentials for downstream real-time clients. The token cannot be used against the REST API — it is exclusively for the v3 streaming WebSocket. For details, see the Universal-Streaming documentation.

Generate Temporary Voice Agent Token

This endpoint mints a short-lived token for AssemblyAI's Voice Agent API, which bundles STT, LLM reasoning, and TTS into a single WebSocket connection. Use it to provision client-side credentials for voice agents (browser, mobile, or telephony) without exposing the long-lived account API key.

  • Enter the token lifetime (in seconds) in the Expires In Seconds field. This controls how long the issued token is valid for opening a new Voice Agent session.
  • Enter the maximum session length (in seconds) in the Max Session Duration Seconds field. This caps the total duration of any Voice Agent session authenticated with the issued token.

Voice Agent tokens are distinct from streaming tokens and cannot be used against the v3 streaming WebSocket or the REST API. For details, see the Voice Agent API documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

AssemblyAI data sources can also be manually configured to ingest data from any valid AssemblyAI API endpoint not covered by the pre-built templates, including chained calls (for example, listing recently completed transcripts and then fetching the paragraphs for each) or sources that target the EU host. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

AssemblyAI uses the base URL https://api.assemblyai.com/ followed by the resource path — for example, v2/transcript to list and submit transcripts, v2/transcript/<transcript_id> for a single transcript, v2/transcript/<transcript_id>/sentences and /paragraphs for the sentence/paragraph breakdowns, v2/transcript/<transcript_id>/word-search for word search, v2/transcript/<transcript_id>/redacted-audio for redacted audio metadata, chat/completions for the LLM Gateway, and v3/token/v1/token for streaming and Voice Agent tokens. For EU-hosted accounts, replace api.assemblyai.com with api.eu.assemblyai.com — the same Authorization header value works against both hosts.

Set the Path to Data to $.transcripts[*] for the List Transcripts endpoint, $.matches[*] for Word Search, or $ for single-object endpoints such as GET /v2/transcript/<id> and the token endpoints. To attach pagination context to each List Transcripts record, set the metadata path to $.page_details. Date/time macros are useful for the created_on filter on List Transcripts, which expects YYYY-MM-DD format. The Authorization header is added automatically from your credential; add Content-Type:application/json for the POST endpoints (chat completions, transcribe audio).

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new AssemblyAI data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the AssemblyAI destination, and select the Send to Destination option from the menu. Select the AssemblyAI connector from the list of available destination connectors, then select the credential that will be used to connect to the AssemblyAI account, and click Next; or, create a new AssemblyAI credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common AssemblyAI endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Delete Transcript

This endpoint deletes a transcript and its associated data — including the transcript text, words, and any audio intelligence outputs — from AssemblyAI. Use it to honor data retention policies, fulfill end-user deletion requests, or clean up test transcripts after evaluation.

  • Enter the transcript ID in the Transcript Id field. The default value substitutes the upstream record's id attribute, so the destination can be driven directly by a List Transcripts source filtered to the transcripts that should be removed.
  • Each call issues a DELETE against https://api.assemblyai.com/v2/transcript/{'{transcript_id}'}. The deletion is permanent and cannot be undone.

Because deletion is irreversible, validate upstream data carefully before activating this destination. Consider running an upstream Nexla transform that filters to only the transcript IDs that should genuinely be deleted (for example, transcripts older than a configured retention window). For complete reference, see the Delete transcript documentation.

Process Speech Understanding

This endpoint submits a request to AssemblyAI's speech understanding service, which enables semantic understanding and analysis of spoken content. Use it to apply speech understanding to transcripts produced upstream — for example, by routing transcript IDs from a List Transcripts source into this destination.

  • Each call issues a POST to https://api.assemblyai.com/understanding with the upstream record as the JSON body. Use the Nexla transform layer to shape upstream attributes (transcript ID, feature flags, custom prompts) into the payload that the endpoint expects.
  • Speech understanding is a higher-level feature that may also be enabled at submission time on the Transcribe Audio endpoint by setting Speech Understanding to true. Use this destination when the upstream pipeline submits transcripts without that flag and you want to enrich them after the fact.

Speech understanding is an evolving AssemblyAI surface. For the most current request body schema and supported features, see the Speech understanding documentation.

Manual configuration

AssemblyAI destinations can also be manually configured to send data to any valid AssemblyAI API endpoint not covered by the pre-built templates — for example, to submit new transcription jobs (POST /v2/transcript), invoke the LLM Gateway (POST /chat/completions), or target the EU host. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

AssemblyAI's REST API expects JSON request bodies, so select JSON as the content format. URLs use the base https://api.assemblyai.com/ followed by the resource path — v2/transcript to submit a new transcription job, v2/transcript/<transcript_id> to delete an existing transcript (with DELETE), chat/completions for the LLM Gateway, and understanding for a speech understanding request; for EU-hosted accounts, substitute api.eu.assemblyai.com. For path-parameterized endpoints such as delete transcript, append the substitution token at the end of the URL — for example, https://api.assemblyai.com/v2/transcript/{'{{id}}'} substitutes the id attribute from each upstream record. The Authorization header is added automatically from your credential.

The AssemblyAI REST endpoints accept one transcript or one chat completion per request, so leave record batching disabled for the standard v2/transcript and chat/completions endpoints; enable it only for a custom endpoint that accepts an array payload. Optionally enable the response webhook to send each API response to a new Nexla webhook data source — useful for capturing the new transcript IDs returned by POST /v2/transcript so they can flow into a downstream Get Transcript source.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured AssemblyAI endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to AssemblyAI until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.