canonical: https://jentic.com/apis/assemblyai.com/assemblyai

# AssemblyAI API

Jentic publishes the only available OpenAPI specification for AssemblyAI API, keeping it validated and agent-ready. AssemblyAI is a speech-to-text and audio intelligence provider offering high-accuracy transcription, real-time streaming, and an LLM that operates over transcripts. The API exposes 12 endpoints across file upload, transcripts, transcript-derived data (sentences, paragraphs, subtitles, redacted audio, word search), realtime streaming tokens, and LLM chat completions. Authentication is via the authorization header.

## For AI agents

Transcribe audio, stream realtime speech-to-text, and run LLM chat completions over the resulting transcripts.

## Scope

Does not handle text-to-speech, voice cloning, or audio editing - use for speech-to-text transcription, transcript-derived data, and transcript-grounded LLM completions only.

## Capabilities

- Upload an audio file to AssemblyAI for transcription
- Create a transcript from a hosted audio URL or uploaded file
- Retrieve a completed transcript with word-level timestamps
- Generate SRT or VTT subtitle files from a transcript
- Search for specific words across a transcript
- Mint short-lived tokens for realtime streaming transcription
- Run an LLM chat completion grounded in a transcript

## Use cases

### Podcast and Video Transcription

Upload media files via POST /v2/upload, kick off transcription via POST /v2/transcript, and retrieve the completed transcript via GET /v2/transcript/{transcript_id}. Generate SRT or VTT subtitles from the same transcript with GET /v2/transcript/{transcript_id}/subtitles. Suitable for podcast networks and video publishers needing accurate captions at scale.

Example prompt: Upload episode-42.mp3 to AssemblyAI, create a transcript, poll for completion, and download the SRT subtitles

### Realtime Streaming Transcription

Mint a short-lived realtime token via POST /v2/realtime/token and use it from a browser or call platform to stream audio for live transcription. Suitable for contact centres, live captions, and meeting-assistant agents where latency matters.

Example prompt: Create a realtime streaming token via POST /v2/realtime/token and return it for the client to open a websocket connection

### Compliance-Aware Audio Redaction

Create a transcript with PII redaction enabled, then download the redacted audio via GET /v2/transcript/{transcript_id}/redacted-audio. Useful where call recordings need to retain content for review while removing names, card numbers, and other sensitive entities.

Example prompt: Create a transcript with PII redaction for a customer-support call, then retrieve the redacted audio file via GET /v2/transcript/{transcript_id}/redacted-audio

### LLM Q&A Over Transcripts

Use POST /v2/llm/chat-completions to run an LLM grounded in a transcript - useful for meeting summarisation, action-item extraction, and ad-hoc Q&A. Pair with GET /v2/transcript/{transcript_id}/word-search when a specific term needs to be located before the LLM call.

Example prompt: Submit a chat completion asking 'What were the action items?' grounded in transcript 'tx_123' via POST /v2/llm/chat-completions

### AI Agent for Audio Operations

An agent integrated through Jentic can manage the full upload-transcribe-summarise pipeline, polling for transcript completion and feeding results into downstream tools - without holding the AssemblyAI API key. Jentic stores the key in its vault and uses intent search to navigate the 12 AssemblyAI operations.

Example prompt: Through Jentic, upload a meeting recording, transcribe it, summarise via the LLM endpoint, and post the summary to a Slack channel

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v2/upload | Upload media file |
| POST | /v2/transcript | Create a transcript |
| GET | /v2/transcript/{transcript_id} | Get transcript |
| GET | /v2/transcript/{transcript_id}/subtitles | Get SRT/VTT subtitles |
| GET | /v2/transcript/{transcript_id}/sentences | Get transcript sentences |
| GET | /v2/transcript/{transcript_id}/word-search | Search for words in a transcript |
| POST | /v2/realtime/token | Create realtime streaming token |
| POST | /v2/llm/chat-completions | Run LLM chat completion over a transcript |

## Key resources

- **Files** — Upload audio media files for transcription
- **Transcripts** — Create, list, retrieve, and delete transcripts
- **Streaming** — Create realtime streaming tokens
- **LLM** — Run chat completions grounded in transcripts

## Why Jentic

- **Setup:** Wiring AssemblyAI by hand means handling its API-key auth across upload, transcript, and realtime-token calls and tracking transcript ids yourself. Through Jentic you install once, import the AssemblyAI API from the API Directory, store the key once, and your agent calls it while Jentic injects the header.
- **Permission scoping:** AssemblyAI puts the transcript id in the URL path (/v2/transcript/{transcript_id}/...), so a rule can pin your agent to reads for one transcript, such as its subtitles or sentences. You choose the operations it may call, so submitting new transcripts is not included unless you add it.
- **Credential handling:** Your AssemblyAI API key is stored once, encrypted, by your own Jentic One instance and injected as the authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'transcribe audio' or 'get a realtime streaming token', and Jentic returns the matching AssemblyAI operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **Deepgram** — Deepgram offers speech-to-text with strong realtime latency; AssemblyAI emphasises accuracy and audio intelligence features.
- **Rev.ai** — Rev.ai provides speech-to-text plus an option for human-verified transcripts.
- **OpenAI** — OpenAI's audio endpoints transcribe via Whisper; AssemblyAI offers more transcript-tooling around the result.
- **ElevenLabs** — ElevenLabs handles text-to-speech generation, complementing AssemblyAI's speech-to-text direction.

## FAQ

### Why is there no official OpenAPI spec for AssemblyAI API?

AssemblyAI does not publish a maintained OpenAPI specification covering all endpoints. Jentic generates and maintains this spec so that AI agents and developers can call AssemblyAI API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the AssemblyAI API use?

The API uses an API key passed in the authorization header (note: lowercase 'authorization', as a raw value, not 'Bearer {key}'). Jentic stores the key in its credential vault and injects the header at execution time so the raw key never enters the agent's context.

### Can I get SRT subtitles from an AssemblyAI transcript?

Yes. GET /v2/transcript/{transcript_id}/subtitles returns SRT or VTT subtitle data for a completed transcript. Pair it with GET /v2/transcript/{transcript_id}/paragraphs for paragraph-level breakdowns or GET /v2/transcript/{transcript_id}/sentences for sentence boundaries.

### Does AssemblyAI support realtime streaming transcription?

Yes. POST /v2/realtime/token mints a short-lived token that a client uses to open a websocket connection for live transcription. The websocket itself is outside the REST API surface but the token endpoint is part of this OpenAPI spec.

### What are the rate limits for the AssemblyAI API?

The OpenAPI specification does not document explicit rate limits. AssemblyAI publishes plan-tier limits on their pricing page - implement exponential backoff on HTTP 429 responses and batch transcript creation rather than firing requests in parallel.

### How do I transcribe a file through Jentic?

Search Jentic for 'transcribe an audio file with AssemblyAI' - POST /v2/upload and POST /v2/transcript will be returned. Load each schema, upload the file, create the transcript, and poll GET /v2/transcript/{transcript_id} until status is 'completed'. Jentic handles the authorization header at every step.

### Can I limit what my agent is allowed to do with the AssemblyAI API?

Yes. Because you run Jentic One yourself, your own rules decide which AssemblyAI operations and credentials your agent may use. Since the transcript id sits in the URL path (/v2/transcript/{transcript_id}/...), you can pin the agent to read-only calls on a single transcript, such as fetching its subtitles or sentences, while excluding POST /v2/transcript so it cannot submit new transcriptions. Only the operations you explicitly grant, like minting a realtime token or running an LLM chat completion, are ones the agent can call.
