# AirCaps AI > AirCaps AI API: English speech-to-text, speaker diarization and speaker identification. A5S Async v1 (batch transcription with speaker labels), A5S Small V2 Streaming (live captions over WebSocket), AirCaps Diarization-v1 (who spoke when) and AirCaps Speaker ID-v1 (recognize enrolled voices). Model research and benchmarks: https://aircaps.ai/research - [Speech-to-text, diarization and speaker ID API](https://aircaps.ai/docs/index.md): Speech-to-text, speaker diarization and speaker identification: live streaming, batch transcription, who spoke when, and who is speaking. - [Quickstart](https://aircaps.ai/docs/quickstart.md): A first request to each model. - [API keys](https://aircaps.ai/docs/authentication.md): Create, use and revoke keys. - [Models](https://aircaps.ai/docs/models.md): What each model does and when to use it. - [Use with AI](https://aircaps.ai/docs/ai-tools.md): Give coding assistants and agents the AirCaps docs as Markdown, llms.txt or an MCP server. - [Batch transcription](https://aircaps.ai/docs/guides/async-transcription.md): Transcribe recordings with A5S Async v1. - [Live streaming](https://aircaps.ai/docs/guides/streaming.md): Real-time captions with A5S Small V2 Streaming over WebSocket. - [Speaker diarization](https://aircaps.ai/docs/guides/diarization.md): Find who spoke when in a recording with AirCaps Diarization-v1. - [Speaker identification](https://aircaps.ai/docs/guides/speaker-id.md): Recognize enrolled people by voice with AirCaps Speaker ID-v1: enroll, then score clips. - [Webhooks](https://aircaps.ai/docs/guides/webhooks.md): Get notified when a transcript or diarization finishes. - [Code samples](https://aircaps.ai/docs/guides/samples.md): Copy-paste examples in Python, Node.js and cURL. - [Limits](https://aircaps.ai/docs/limits.md): Free usage, credits, concurrency and rate limits. - [Errors](https://aircaps.ai/docs/errors.md): HTTP errors, job errors and retries. - [Data & privacy](https://aircaps.ai/docs/data-privacy.md): What AirCaps keeps, for how long, and how to delete it. - [Overview](https://aircaps.ai/docs/api-reference/overview.md): Base URL, authentication and conventions. - [Create a transcript](https://aircaps.ai/docs/api-reference/create-transcript.md): Start transcribing audio with A5S Async v1. The job runs asynchronously: poll [Get a transcript](/api-reference/get-transcript) or pass `webhook_url`. - [Transcribe (one request)](https://aircaps.ai/docs/api-reference/transcribe.md): Send the audio and get the finished transcript back in one request: the upload, [Create a transcript](/api-reference/create-transcript) and the wait in one call. The body is the raw audio (any audio or video format) with the options as query parameters, or a `multipart/form-data` form whose `file` f… - [Get a transcript](https://aircaps.ai/docs/api-reference/get-transcript.md): Status and, once `completed`, the result. Pass `wait` to hold the request until the transcript finishes instead of polling. - [List transcripts](https://aircaps.ai/docs/api-reference/list-transcripts.md): Your transcripts, newest first. Items omit the result fields (`text`, `speakers`, `utterances`, `words`). - [Delete a transcript](https://aircaps.ai/docs/api-reference/delete-transcript.md): Cancels a `queued` or `processing` job (its `error.code` becomes `canceled`), or deletes a finished transcript and its stored data, including the uploaded file it used. Afterwards the ID returns `404`. - [Get subtitles](https://aircaps.ai/docs/api-reference/subtitles.md): SRT or WebVTT captions for a completed transcript, with the speaker in each cue. - [Create a diarization](https://aircaps.ai/docs/api-reference/create-diarization.md): Find who spoke when with AirCaps Diarization-v1 (enabled per account). The job runs asynchronously: poll [Get a diarization](/api-reference/get-diarization) or pass `webhook_url`. - [Get a diarization](https://aircaps.ai/docs/api-reference/get-diarization.md): Status and, once `completed`, the result. - [List diarizations](https://aircaps.ai/docs/api-reference/list-diarizations.md): Your diarizations, newest first. Items omit the result fields. - [Delete a diarization](https://aircaps.ai/docs/api-reference/delete-diarization.md): Cancels a `queued` or `processing` job (its `error.code` becomes `canceled`), or deletes a finished diarization and its stored data, including the uploaded file it used. Afterwards the ID returns `404`. - [Get RTTM](https://aircaps.ai/docs/api-reference/diarization-rttm.md): The segments of a completed diarization as an RTTM file (one `SPEAKER` line per segment), the format diarization scoring tools read. - [Identify a speaker](https://aircaps.ai/docs/api-reference/identify-speaker.md): Score one clip against your enrolled speakers: every speaker (or the ones in `speaker_ids`), best first, with a similarity score for each speaker's profile and for each enrollment. Synchronous: the result is the response. No threshold is applied; see [Speaker ID](/guides/speaker-id#scores-and-thresh… - [Create a speaker](https://aircaps.ai/docs/api-reference/create-speaker.md): Create a speaker to enroll (AirCaps Speaker ID-v1, enabled per account). A speaker is a name and optional metadata until you [add enrollments](/api-reference/add-enrollment). - [Add an enrollment](https://aircaps.ai/docs/api-reference/add-enrollment.md): Add one clip of this speaker. The model turns it into a speaker embedding, which is stored; the audio is not. A speaker's profile combines all of its enrollments, so several clips from different recordings make it sturdier. Synchronous: the response is the new enrollment and the updated speaker. - [Get a speaker](https://aircaps.ai/docs/api-reference/get-speaker.md): The speaker and its enrollments. - [List speakers](https://aircaps.ai/docs/api-reference/list-speakers.md): Your enrolled speakers, newest first, with their enrollments. - [Update a speaker](https://aircaps.ai/docs/api-reference/update-speaker.md): Change the name or metadata. Omitted fields stay as they are; `null` clears one. - [Delete an enrollment](https://aircaps.ai/docs/api-reference/delete-enrollment.md): Removes one enrollment's embedding, immediately and permanently. The speaker's profile is recomputed from the rest. - [Delete a speaker](https://aircaps.ai/docs/api-reference/delete-speaker.md): Deletes the speaker and all its enrollment embeddings, immediately and permanently. Afterwards the ID returns `404`. - [Create an upload URL](https://aircaps.ai/docs/api-reference/upload-url.md): Get a presigned URL to upload a file of up to 5 GB straight to storage. `PUT` the raw bytes to `upload_url` within an hour, then use `id` as `file_id`. - [Upload a file](https://aircaps.ai/docs/api-reference/upload-file.md): Upload up to 1 GB in the request body. For larger files (up to 5 GB), use an upload URL. An upload that takes longer than about 2.5 minutes is answered with a 303 redirect to its result: follow redirects (most HTTP clients do by default). - [Realtime stream](https://aircaps.ai/docs/api-reference/realtime.md): Live transcription with A5S Small V2 Streaming over a WebSocket. - [List models](https://aircaps.ai/docs/api-reference/models.md): The available models. No authentication needed. - [Get account](https://aircaps.ai/docs/api-reference/account.md): Your usage limit, per-model access (`enabled`) and limits. For higher limits or model access, [talk to sales](https://aircaps.ai/contact). - [Get usage](https://aircaps.ai/docs/api-reference/usage.md): Daily usage of each model your account can use. - [Transcript object](https://aircaps.ai/docs/api-reference/objects/transcript.md): Returned by every transcript endpoint. The result fields (text, speakers, utterances, words) appear only in Get a transcript, once status is completed. - [Utterance object](https://aircaps.ai/docs/api-reference/objects/utterance.md): One speaker turn. Times are seconds from the start of the audio. - [Word object](https://aircaps.ai/docs/api-reference/objects/word.md): One word with its timing and speaker. - [Diarization object](https://aircaps.ai/docs/api-reference/objects/diarization.md): Returned by every diarization endpoint. The result fields (num_speakers, speakers, segments, speech_duration, overlap_duration) appear only in Get a diarization, once status is completed. - [Segment object](https://aircaps.ai/docs/api-reference/objects/segment.md): One stretch of speech by one speaker. Segments of different speakers overlap where they talk at the same time. - [Speaker object](https://aircaps.ai/docs/api-reference/objects/enrolled-speaker.md): An enrolled speaker of AirCaps Speaker ID-v1: a name, metadata and enrollments. Returned by the speaker endpoints. - [Speaker enrollment object](https://aircaps.ai/docs/api-reference/objects/speaker-enrollment.md): One enrollment clip of a speaker. Only its speaker embedding is stored, never the audio. - [Speaker identification object](https://aircaps.ai/docs/api-reference/objects/speaker-identification.md): The result of Identify a speaker: every compared speaker, best first, with scores. Not stored. - [File object](https://aircaps.ai/docs/api-reference/objects/file.md): An uploaded file. Use id as file_id for up to 24 hours after upload; the file is then deleted within the next 24 hours, or right away when a transcript that used it is deleted. - [Error object](https://aircaps.ai/docs/api-reference/objects/error.md): Every HTTP error uses this envelope. See [Errors](/errors) for all codes. - [Webhook event](https://aircaps.ai/docs/api-reference/objects/webhook-event.md): The body AirCaps `POST`s to your `webhook_url`. See [Webhooks](/guides/webhooks) for signing and retries. ## OpenAPI Specs - [openapi](/docs/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.