AssemblyAI

App · Voice AI · 9 actions

Turn recordings into text with AssemblyAI: calls, meetings, voicemails, interviews and podcasts, in 99 languages. Tell the speakers apart, get a summary, the sentiment and the topics, take personal details out as it goes, export captions for a video, and find where a word was said.

Actions

ActionWhat it does
Delete a transcriptPermanently remove a transcript's words and analysis from AssemblyAI.
Find recent transcriptsList the transcripts on your AssemblyAI account, newest first, optionally narrowed to one day or to the ones that are still running or that failed.
Find words in a recordingCheck whether particular words or phrases were said, how often, and where in the recording.
Get a transcriptFetch a transcript AssemblyAI has already made, by its ID, with everything that was worked out alongside it.
Get captions for a videoExport the transcript as a subtitle file, saved and ready for a later step to upload beside a video, attach to an email or store.
Get the bleeped recordingSave the copy of the recording with the personal details beeped out, so the audio can be shared, kept or used for training without the private parts in it.
Get the paragraphsThe transcript broken into paragraphs, each with where it falls in the recording.
Get the sentencesThe transcript broken into sentences, each with where it falls in the recording and who said it.
Transcribe a recordingTurn an audio or video recording into text and wait for it.

Delete a transcript

Permanently remove a transcript's words and analysis from AssemblyAI. Use it at the end of a workflow that has already saved what it needs, so nothing sensitive is left sitting on someone else's servers. This cannot be undone.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.

Outputs

deletedtrue/false
Always true once the deletion went through.
statustext
The state it was in when it was deleted.
transcript_idtext
The transcript that was deleted.
Example output
{
  "deleted": true,
  "status": "completed",
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463"
}

Find recent transcripts

List the transcripts on your AssemblyAI account, newest first, optionally narrowed to one day or to the ones that are still running or that failed. AssemblyAI keeps the last 90 days.

Inputs

Only showstatustext
Narrow the list to transcripts in one state.One of: completed (Finished), processing (Still being transcribed), queued (Waiting to start), error (Failed).
Made oncreated_ondate
Only transcripts started on this day. Leave it empty for all of the last 90 days.
How manylimitnumber
How many to bring back, newest first.From 1 to 200. Default: 20.

Outputs

countnumber
How many came back.
transcriptslist
The transcripts found, newest first.
Example output
{
  "count": 1,
  "transcripts": [
    {
      "completed_at": "2026-09-15T10:04:47.918Z",
      "created_at": "2026-09-15T10:04:11.423Z",
      "error": null,
      "recording_url": "https://cdn.assemblyai.com/upload/4f2c1a90-support-call.m4a",
      "status": "completed",
      "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463"
    }
  ]
}

Find words in a recording

Check whether particular words or phrases were said, how often, and where in the recording. Use it to flag a competitor's name on a sales call, confirm a required disclosure was read out, or jump to the moment a product was mentioned.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.
Words to findwordslistRequired
The words or short phrases to look for. Phrases can be up to five words long.

Outputs

matcheslist
One entry per word or phrase searched for.
total_countnumber
How many times anything was heard in all.
transcript_idtext
The transcript that was searched.
Example output
{
  "matches": [
    {
      "count": 3,
      "heard_at": [
        {
          "end_seconds": 6.78,
          "start_seconds": 6.24
        },
        {
          "end_seconds": 41.62,
          "start_seconds": 41.1
        },
        {
          "end_seconds": 119.4,
          "start_seconds": 118.94
        }
      ],
      "text": "invoice"
    },
    {
      "count": 0,
      "heard_at": [],
      "text": "cancel"
    }
  ],
  "total_count": 3,
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463"
}

Get a transcript

Fetch a transcript AssemblyAI has already made, by its ID, with everything that was worked out alongside it. Use this to pick up a recording that was still processing when an earlier step ended, or to re-read one without paying to transcribe it again.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.

Outputs

chapterslist
The recording split into chapters. Only when chapters were asked for.
confidencenumber
How sure AssemblyAI is of the words, from 0 to 1.
duration_secondsnumber
How long the recording is, in seconds.
entitieslist
The people, places, dates and amounts that were mentioned. Only when entities were asked for.
key_phraseslist
The phrases that stood out, most important first. Only when key phrases were asked for.
languagetext
The language that was spoken, detected or set.
overall_sentimenttext
'positive', 'neutral' or 'negative' for the recording as a whole, from whether positive or negative sentences won out.
recording_urltext
The recording AssemblyAI transcribed.
sensitive_contentlist
Each passage that was flagged, and what for.
sensitive_content_topicslist
The kinds of sensitive content found anywhere in the recording, such as 'profanity'.
sentiment_countsobject
How many sentences were positive, neutral and negative.
sentiment_segmentslist
Every sentence with its own sentiment, in order.
speaker_transcripttext
The same words laid out as 'Speaker A: …' lines. Only when speakers were identified.
speakerslist
The speakers it heard, in the order they first spoke. Only when speakers were identified.
statustext
'completed' when the words are ready. 'queued' or 'processing' means AssemblyAI is still working on it.
summarytext
The summary. Only when a summary was asked for.
texttext
Everything that was said, as one piece of text.
topicslist
What the recording was about, most relevant first. Only when topics were asked for.
transcript_idtext
AssemblyAI's ID for this transcript. Pass it to any of the other AssemblyAI steps.
utteranceslist
Each turn of the conversation, in order.
word_countnumber
How many words were said.
Example output
{
  "chapters": [],
  "confidence": 0.9432,
  "duration_seconds": 281,
  "entities": [
    {
      "end_seconds": 3.2,
      "start_seconds": 2.8,
      "text": "Priya",
      "type": "person_name"
    },
    {
      "end_seconds": 2.6,
      "start_seconds": 1.4,
      "text": "Northwind Support",
      "type": "organization"
    }
  ],
  "key_phrases": [
    {
      "count": 2,
      "rank": 0.08,
      "text": "seat count"
    },
    {
      "count": 3,
      "rank": 0.07,
      "text": "invoice"
    }
  ],
  "language": "en_us",
  "overall_sentiment": "neutral",
  "recording_url": "https://cdn.assemblyai.com/upload/4f2c1a90-support-call.m4a",
  "sensitive_content": [],
  "sensitive_content_topics": [],
  "sentiment_counts": {
    "negative": 2,
    "neutral": 3,
    "positive": 2
  },
  "sentiment_segments": [
    {
      "confidence": 0.79,
      "end_seconds": 4.1,
      "sentiment": "positive",
      "speaker": "A",
      "start_seconds": 0.52,
      "text": "Thanks for calling Northwind Support, this is Priya."
    }
  ],
  "speaker_transcript": "A: Thanks for calling Northwind Support, this is Priya.\nB: Hi Priya, our invoice this month came in almost double what we expected and I want to understand what changed before I approve it.\nA: I can see the seat count went from twelve to twenty-one in May, which is what moved the bill. I can credit the difference for this cycle and set it so an admin approves any seat change first.",
  "speakers": [
    "A",
    "B"
  ],
  "status": "completed",
  "summary": "- The customer's invoice roughly doubled this month.\n- The increase came from the seat count rising from twelve to twenty-one in May.\n- Support offered a credit for this cycle and an admin approval step for future seat changes.",
  "text": "Thanks for calling Northwind Support, this is Priya. Hi Priya, our invoice this month came in almost double what we expected and I want to understand what changed before I approve it. I can see the seat count went from twelve to twenty-one in May, which is what moved the bill. I can credit the difference for this cycle and set it so an admin approves any seat change first.",
  "topics": [
    {
      "relevance": 0.91,
      "topic": "Business>BusinessSoftwareAndServices"
    },
    {
      "relevance": 0.42,
      "topic": "Business>Sales"
    }
  ],
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463",
  "utterances": [
    {
      "confidence": 0.96,
      "end_seconds": 4.1,
      "speaker": "A",
      "start_seconds": 0.52,
      "text": "Thanks for calling Northwind Support, this is Priya."
    },
    {
      "confidence": 0.94,
      "end_seconds": 13.88,
      "speaker": "B",
      "start_seconds": 4.5,
      "text": "Hi Priya, our invoice this month came in almost double what we expected and I want to understand what changed before I approve it."
    }
  ],
  "word_count": 74
}

Get captions for a video

Export the transcript as a subtitle file, saved and ready for a later step to upload beside a video, attach to an email or store. SRT suits YouTube and most editing software; VTT suits the web.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.
Formatcaption_formattext
Which subtitle file to produce.One of: srt (SRT (YouTube, video editors)), vtt (VTT (web video)). Default: srt.
Characters per captioncharacters_per_captionnumber
How much text to fit on screen at once. Leave it empty to let AssemblyAI decide; around 32 keeps captions to a single line on a phone.From 10 to 200.

Outputs

caption_countnumber
How many captions are in it.
captionstext
The subtitle file's contents as text, for a step that wants to read or paste them rather than attach the file.
content_typetext
What kind of file it is.
document_reftext
The saved subtitle file. Pass this to a later step that sends, uploads or stores a file.
documentslist
The saved subtitle file, as a one-item list.
filenametext
What the file is called.
formattext
'srt' or 'vtt'.
size_bytesnumber
How big it is, in bytes.
transcript_idtext
The transcript the captions came from.
urltext
Where to download it from Lodol.
Example output
{
  "caption_count": 2,
  "captions": "1\n00:00:00,520 --> 00:00:04,100\nThanks for calling Northwind Support, this is Priya.\n\n2\n00:00:04,500 --> 00:00:08,120\nHi Priya, our invoice this month came in almost double.\n",
  "content_type": "application/x-subrip",
  "document_ref": "doc_7c31f0ab92",
  "documents": [
    {
      "content_type": "application/x-subrip",
      "document_ref": "doc_7c31f0ab92",
      "filename": "9ea68fd3-f953-42c1-9742-976c447fb463.srt",
      "size_bytes": 1482,
      "url": "/actions/core/serve-document/doc_7c31f0ab92"
    }
  ],
  "filename": "9ea68fd3-f953-42c1-9742-976c447fb463.srt",
  "format": "srt",
  "size_bytes": 1482,
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463",
  "url": "/actions/core/serve-document/doc_7c31f0ab92"
}

Get the bleeped recording

Save the copy of the recording with the personal details beeped out, so the audio can be shared, kept or used for training without the private parts in it. Only exists when 'Transcribe a recording' was asked to bleep the audio, and AssemblyAI only keeps it for 24 hours, so fetch it in the same workflow rather than days later.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.

Outputs

content_typetext
What kind of file it is.
document_reftext
The saved recording. Pass this to a later step that sends, uploads or stores a file.
documentslist
The saved recording, as a one-item list.
filenametext
What the file is called.
size_bytesnumber
How big it is, in bytes.
statustext
'redacted_audio_ready' once AssemblyAI has finished making it.
transcript_idtext
The transcript it belongs to.
urltext
Where to download it from Lodol.
Example output
{
  "content_type": "audio/mpeg",
  "document_ref": "doc_2f80ba4c17",
  "documents": [
    {
      "content_type": "audio/mpeg",
      "document_ref": "doc_2f80ba4c17",
      "filename": "9ea68fd3-f953-42c1-9742-976c447fb463-bleeped.mp3",
      "size_bytes": 2248106,
      "url": "/actions/core/serve-document/doc_2f80ba4c17"
    }
  ],
  "filename": "9ea68fd3-f953-42c1-9742-976c447fb463-bleeped.mp3",
  "size_bytes": 2248106,
  "status": "redacted_audio_ready",
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463",
  "url": "/actions/core/serve-document/doc_2f80ba4c17"
}

Get the paragraphs

The transcript broken into paragraphs, each with where it falls in the recording. Use it when you want the transcript laid out to be read (in a document, an email or a page), rather than as one block.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.

Outputs

confidencenumber
How sure AssemblyAI is of the words, from 0 to 1.
countnumber
How many there are.
duration_secondsnumber
How long the recording is, in seconds.
passageslist
The transcript, in order.
split_bytext
'sentence' or 'paragraph'.
transcript_idtext
The transcript this came from.
Example output
{
  "confidence": 0.9432,
  "count": 2,
  "duration_seconds": 281,
  "passages": [
    {
      "confidence": 0.96,
      "end_seconds": 4.1,
      "speaker": "A",
      "start_seconds": 0.52,
      "text": "Thanks for calling Northwind Support, this is Priya."
    },
    {
      "confidence": 0.98,
      "end_seconds": 5.36,
      "speaker": "A",
      "start_seconds": 4.12,
      "text": "How can I help today?"
    }
  ],
  "split_by": "paragraph",
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463"
}

Get the sentences

The transcript broken into sentences, each with where it falls in the recording and who said it. Use it to pull a quote with a timestamp, or to walk the transcript a sentence at a time.

Inputs

Transcripttranscript_idtextRequired
The transcript to read, as handed back by 'Transcribe a recording'. Chain it from that step rather than typing it.

Outputs

confidencenumber
How sure AssemblyAI is of the words, from 0 to 1.
countnumber
How many there are.
duration_secondsnumber
How long the recording is, in seconds.
passageslist
The transcript, in order.
split_bytext
'sentence' or 'paragraph'.
transcript_idtext
The transcript this came from.
Example output
{
  "confidence": 0.9432,
  "count": 2,
  "duration_seconds": 281,
  "passages": [
    {
      "confidence": 0.96,
      "end_seconds": 4.1,
      "speaker": "A",
      "start_seconds": 0.52,
      "text": "Thanks for calling Northwind Support, this is Priya."
    },
    {
      "confidence": 0.98,
      "end_seconds": 5.36,
      "speaker": "A",
      "start_seconds": 4.12,
      "text": "How can I help today?"
    }
  ],
  "split_by": "sentence",
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463"
}

Transcribe a recording

Turn an audio or video recording into text and wait for it. Point it at a call, a meeting, a voicemail or a podcast (upload the file, use one an earlier step produced, or paste a link) and get back everything that was said, who said it, and, if you ask, a summary, the sentiment, the topics and the names and amounts mentioned. Personal details can be taken out as it goes.

Inputs

RecordingrecordingtextRequired
The audio or video to transcribe: upload a file, pick one an earlier step produced, or paste a link to one.
Languagelanguagetext
The language being spoken. Leave it on automatic unless the recording is short or noisy enough that detection might get it wrong.One of: auto (Detect automatically (recommended)), en (English (global)), en_us (English (US)), en_uk (English (British)), en_au (English (Australian)), es (Spanish), fr (French), de (German), it (Italian), pt (Portuguese), and 93 more. Default: auto.
Tell the speakers apartidentify_speakerstrue/false
Label who is speaking, so the transcript reads as a conversation rather than one block of text. Turn this on for calls, interviews and meetings.Default: false.
How many people are speakingexpected_speakersnumber
Only if you know. Telling AssemblyAI the number keeps it from splitting one person into two. Needs 'Tell the speakers apart' turned on.From 1 to 10.
Also work outanalyzelist
What to read out of the recording alongside the words. Each one comes back as its own field. A summary and chapters can't be done in the same pass (pick whichever you need), and either one transcribes with an older, slightly less accurate model, so leave both off when the words themselves matter most.One or more of: summary (A summary of the whole recording), chapters (Chapters, each with its own headline), key_phrases (The key phrases that came up), sentiment (How positive or negative each sentence was), entities (The names, dates, places and amounts mentioned), topics (What the recording was about), sensitive_content (Warnings about sensitive content).
Summary stylesummary_styletext
The shape of the summary. Only applies when you have asked for one above.One of: bullets (Bullet points), detailed_bullets (Detailed bullet points), paragraph (A paragraph), headline (A one-line headline), one_line (Just a few words). Default: bullets.
Remove personal informationremove_personal_informationlist
What to take out of the transcript. Anything removed is replaced with a label such as [PERSON_NAME], so the transcript still reads. Leave it empty to keep the recording exactly as spoken.One or more of: everything (Everything personal (recommended)), names (Names of people), ages_and_birthdays (Ages and dates of birth), phone_numbers (Phone numbers), email_addresses (Email addresses), addresses (Street addresses and locations), card_details (Payment card details), bank_details (Bank and account details), social_security_numbers (Social security numbers), id_numbers (Licence, passport and vehicle numbers), and 6 more.
Also bleep the audiobleep_the_recordingtrue/false
Make a copy of the recording with the removed details beeped out, which 'Get the bleeped recording' can then download. Needs something chosen above.Default: false.
Words to listen forwords_to_listen_forlist
Names, products or jargon the recording uses that a transcriber would not expect: 'Lodol', 'Skipflow', a drug name, a customer's surname. Short phrases are fine, up to six words each.

Outputs

chapterslist
The recording split into chapters. Only when chapters were asked for.
confidencenumber
How sure AssemblyAI is of the words, from 0 to 1.
duration_secondsnumber
How long the recording is, in seconds.
entitieslist
The people, places, dates and amounts that were mentioned. Only when entities were asked for.
key_phraseslist
The phrases that stood out, most important first. Only when key phrases were asked for.
languagetext
The language that was spoken, detected or set.
overall_sentimenttext
'positive', 'neutral' or 'negative' for the recording as a whole, from whether positive or negative sentences won out.
recording_urltext
The recording AssemblyAI transcribed.
sensitive_contentlist
Each passage that was flagged, and what for.
sensitive_content_topicslist
The kinds of sensitive content found anywhere in the recording, such as 'profanity'.
sentiment_countsobject
How many sentences were positive, neutral and negative.
sentiment_segmentslist
Every sentence with its own sentiment, in order.
speaker_transcripttext
The same words laid out as 'Speaker A: …' lines. Only when speakers were identified.
speakerslist
The speakers it heard, in the order they first spoke. Only when speakers were identified.
statustext
'completed' when the words are ready. 'queued' or 'processing' means AssemblyAI is still working on it.
summarytext
The summary. Only when a summary was asked for.
texttext
Everything that was said, as one piece of text.
topicslist
What the recording was about, most relevant first. Only when topics were asked for.
transcript_idtext
AssemblyAI's ID for this transcript. Pass it to any of the other AssemblyAI steps.
utteranceslist
Each turn of the conversation, in order.
word_countnumber
How many words were said.
Example output
{
  "chapters": [],
  "confidence": 0.9432,
  "duration_seconds": 281,
  "entities": [
    {
      "end_seconds": 3.2,
      "start_seconds": 2.8,
      "text": "Priya",
      "type": "person_name"
    },
    {
      "end_seconds": 2.6,
      "start_seconds": 1.4,
      "text": "Northwind Support",
      "type": "organization"
    }
  ],
  "key_phrases": [
    {
      "count": 2,
      "rank": 0.08,
      "text": "seat count"
    },
    {
      "count": 3,
      "rank": 0.07,
      "text": "invoice"
    }
  ],
  "language": "en_us",
  "overall_sentiment": "neutral",
  "recording_url": "https://cdn.assemblyai.com/upload/4f2c1a90-support-call.m4a",
  "sensitive_content": [],
  "sensitive_content_topics": [],
  "sentiment_counts": {
    "negative": 2,
    "neutral": 3,
    "positive": 2
  },
  "sentiment_segments": [
    {
      "confidence": 0.79,
      "end_seconds": 4.1,
      "sentiment": "positive",
      "speaker": "A",
      "start_seconds": 0.52,
      "text": "Thanks for calling Northwind Support, this is Priya."
    }
  ],
  "speaker_transcript": "A: Thanks for calling Northwind Support, this is Priya.\nB: Hi Priya, our invoice this month came in almost double what we expected and I want to understand what changed before I approve it.\nA: I can see the seat count went from twelve to twenty-one in May, which is what moved the bill. I can credit the difference for this cycle and set it so an admin approves any seat change first.",
  "speakers": [
    "A",
    "B"
  ],
  "status": "completed",
  "summary": "- The customer's invoice roughly doubled this month.\n- The increase came from the seat count rising from twelve to twenty-one in May.\n- Support offered a credit for this cycle and an admin approval step for future seat changes.",
  "text": "Thanks for calling Northwind Support, this is Priya. Hi Priya, our invoice this month came in almost double what we expected and I want to understand what changed before I approve it. I can see the seat count went from twelve to twenty-one in May, which is what moved the bill. I can credit the difference for this cycle and set it so an admin approves any seat change first.",
  "topics": [
    {
      "relevance": 0.91,
      "topic": "Business>BusinessSoftwareAndServices"
    },
    {
      "relevance": 0.42,
      "topic": "Business>Sales"
    }
  ],
  "transcript_id": "9ea68fd3-f953-42c1-9742-976c447fb463",
  "utterances": [
    {
      "confidence": 0.96,
      "end_seconds": 4.1,
      "speaker": "A",
      "start_seconds": 0.52,
      "text": "Thanks for calling Northwind Support, this is Priya."
    },
    {
      "confidence": 0.94,
      "end_seconds": 13.88,
      "speaker": "B",
      "start_seconds": 4.5,
      "text": "Hi Priya, our invoice this month came in almost double what we expected and I want to understand what changed before I approve it."
    }
  ],
  "word_count": 74
}

On this page