canonical: https://jentic.com/apis/amazonaws.com/transcribe

# AWS Amazon Transcribe

Jentic publishes the only available OpenAPI specification for Amazon Transcribe, keeping it validated and agent-ready. Amazon Transcribe converts audio into text using automatic speech recognition. It supports three batch transcription modes (Standard, Medical, Call Analytics), custom language models trained on domain-specific text, custom vocabularies for proper nouns, and vocabulary filters for redaction. The 39 operations cover the full lifecycle of transcription jobs, custom vocabularies, language models, and call-analytics categories, plus tagging for cost allocation.

## For AI agents

Transcribe recorded audio to text with optional speaker diarisation, custom vocabulary, redaction, and call-analytics enrichment so an agent can read what was said in a meeting, support call, or clinical encounter.

## Scope

Does not handle text-to-speech, real-time translation of arbitrary text, or voice cloning - use for converting recorded audio into transcripts (with optional medical or call-analytics enrichment) only.

## Capabilities

- Run batch Standard, Medical, and Call Analytics transcription jobs against audio in S3
- Boost accuracy on jargon and proper nouns with custom vocabularies and custom language models
- Redact PII or other sensitive terms from transcripts via vocabulary filters
- Categorise call recordings against rules in CallAnalyticsCategory definitions
- Diarise speakers and surface call sentiment, non-talk time, and interruptions in Call Analytics output
- List, describe, and delete jobs, vocabularies, filters, and language models
- Tag transcription jobs and resources for cost allocation

## Use cases

### Contact-Centre Call Analytics

Run Call Analytics transcription jobs against recorded support calls to get speaker-diarised transcripts with sentiment per speaker, talk-time ratios, non-talk time, interruptions, and category matches against rules you define (e.g. 'mentions cancellation'). StartCallAnalyticsJob accepts an S3 URI, an output location, and a list of CategoryNames; the resulting JSON powers QA dashboards and agent coaching workflows.

Example prompt: Call StartCallAnalyticsJob with CallAnalyticsJobName 'support-2026-06-09-call-42', Media.MediaFileUri s3://calls/2026-06-09/call-42.wav, OutputLocation s3://calls-out/, and ChannelDefinitions for AGENT and CUSTOMER.

### Clinical Dictation Transcription

Amazon Transcribe Medical converts clinician dictations into structured text optimised for medical vocabulary. StartMedicalTranscriptionJob accepts the audio, a Specialty (e.g. PRIMARYCARE), a Type (CONVERSATION or DICTATION), and an output bucket; the resulting transcript can be fed into an EHR. The service supports content identification (PHI) for downstream redaction.

Example prompt: Call StartMedicalTranscriptionJob with MedicalTranscriptionJobName, Specialty 'PRIMARYCARE', Type 'DICTATION', Media.MediaFileUri pointing at the dictation audio, and OutputBucketName.

### Domain-Specific Custom Vocabularies

Improve recognition of brand names, drug names, or technical jargon by creating a CustomVocabulary (a flat term list) or a CustomLanguageModel (trained on representative transcripts). CreateVocabulary uploads phrases; CreateLanguageModel kicks off training against your S3 training data. Reference the resulting names in StartTranscriptionJob.Settings to apply them to a specific job.

Example prompt: Call CreateVocabulary with VocabularyName 'product-names-v3', LanguageCode 'en-US', and Phrases listing your product catalogue, then reference VocabularyName in subsequent StartTranscriptionJob calls.

### Agent-Driven Meeting Note Generation via Jentic

An assistant agent that turns recorded meetings into searchable notes can call Transcribe through Jentic without holding AWS keys. The agent submits an intent like 'transcribe this meeting recording with speaker labels'; Jentic loads StartTranscriptionJob with ShowSpeakerLabels enabled, executes it, and polls GetTranscriptionJob until the TranscriptFileUri is ready. The agent then summarises the transcript with its language model.

Example prompt: Through Jentic, search for 'transcribe an audio file with speaker labels', load StartTranscriptionJob, execute with Media.MediaFileUri, MediaFormat, LanguageCode, and Settings.ShowSpeakerLabels=true.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /#X-Amz-Target=Transcribe.StartTranscriptionJob | Start a standard transcription job |
| POST | /#X-Amz-Target=Transcribe.GetTranscriptionJob | Get transcription job status and transcript URI |
| POST | /#X-Amz-Target=Transcribe.StartMedicalTranscriptionJob | Start a medical transcription job |
| POST | /#X-Amz-Target=Transcribe.StartCallAnalyticsJob | Start a Call Analytics transcription job |
| POST | /#X-Amz-Target=Transcribe.CreateVocabulary | Create a custom vocabulary |
| POST | /#X-Amz-Target=Transcribe.CreateLanguageModel | Train a custom language model |

## Key resources

- **Standard transcription jobs** — StartTranscriptionJob, GetTranscriptionJob, ListTranscriptionJobs, DeleteTranscriptionJob
- **Medical transcription jobs** — StartMedicalTranscriptionJob, GetMedicalTranscriptionJob, ListMedicalTranscriptionJobs
- **Call Analytics** — StartCallAnalyticsJob, GetCallAnalyticsJob, CallAnalyticsCategory CRUD
- **Custom vocabularies and filters** — CreateVocabulary, CreateMedicalVocabulary, CreateVocabularyFilter and their Get/List/Delete counterparts
- **Custom language models** — CreateLanguageModel, DescribeLanguageModel, ListLanguageModels

## Why Jentic

- **Setup:** Wiring Amazon Transcribe by hand means computing SigV4 signatures against the us-east-1 transcribe endpoint and routing calls through the X-Amz-Target action header yourself. Through Jentic you install once, import Transcribe from the API Directory, store the access keys once, and your agent calls it.
- **Permission scoping:** Transcribe routes its actions through one endpoint by X-Amz-Target rather than resource ids in the path, so scope the agent to the operations it needs, such as StartTranscriptionJob and GetTranscriptionJob. You choose the operations it may call, so vocabulary or language-model management is not included unless you add it.
- **Credential handling:** Your AWS access keys are stored once, encrypted, by your own Jentic One instance and used to sign each Transcribe request with SigV4 at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'transcribe an audio file with speaker labels' or 'get a transcription job status', and Jentic returns the matching Transcribe operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Amazon Polly** — Polly is the inverse of Transcribe - it turns text into speech.
- **Amazon Comprehend** — Comprehend extracts entities, sentiment, and key phrases from the text Transcribe produces.
- **Amazon Rekognition** — Rekognition handles the visual side of media analysis while Transcribe handles audio.

## FAQ

### Why is there no official OpenAPI spec for Amazon Transcribe?

AWS does not publish an OpenAPI specification for Amazon Transcribe; it ships Smithy models and language-specific SDKs instead. Jentic generates and maintains this OpenAPI spec so that AI agents and developers can call Amazon Transcribe 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 Amazon Transcribe use?

Transcribe uses AWS SigV4 with X-Amz-Target identifying the action (e.g. Transcribe.StartTranscriptionJob). The IAM principal also needs s3:GetObject on the input audio and s3:PutObject on the output bucket. Through Jentic, your AWS keys are vaulted and Jentic computes the SigV4 signature for each call.

### Can I get speaker labels with Transcribe?

Yes. Set Settings.ShowSpeakerLabels=true and Settings.MaxSpeakerLabels in StartTranscriptionJob, or use ChannelDefinitions for stereo recordings where each channel is a known participant. Call Analytics jobs always produce speaker-diarised output with AGENT and CUSTOMER labels.

### What are the rate limits for Amazon Transcribe?

Default per-region quotas are typically 100 concurrent batch jobs, audio up to 4 hours and 2GB per file, and a few transactions per second on the management APIs (CreateVocabulary, ListTranscriptionJobs, etc.). Streaming Transcribe has separate connection-level quotas.

### How do I transcribe an audio file through Jentic?

Search Jentic with 'transcribe an audio file with speaker labels', load StartTranscriptionJob, and execute with TranscriptionJobName, Media.MediaFileUri, MediaFormat, LanguageCode, and OutputBucketName. Then load GetTranscriptionJob and poll until TranscriptionJobStatus is COMPLETED.

### Can Transcribe redact sensitive information from a transcript?

Yes. ContentRedaction.RedactionType=PII removes US PII categories like name, address, and credit card. Custom VocabularyFilters can additionally remove arbitrary terms (e.g. competitor names) by setting Settings.VocabularyFilterMethod to 'mask' or 'remove'.

### What languages does Transcribe support?

Standard Transcribe supports more than 30 languages including English variants, Spanish, French, German, Mandarin, Japanese, and Hindi. Medical Transcribe supports US English only. The exact LanguageCode value is required on every transcription job.

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

Yes. Because Jentic One runs self-hosted, you decide which Transcribe operations your agent may call, and its access is limited to exactly those. Since Transcribe routes every action through a single endpoint by X-Amz-Target rather than by resource paths, you scope at the operation level, for example allowing StartTranscriptionJob and GetTranscriptionJob so the agent can submit and poll jobs. Management operations such as CreateVocabulary or CreateLanguageModel stay out of reach unless you explicitly add them, and your AWS keys are held by your own instance rather than exposed to the agent.
