# Speech Revolutions Docs > Production speech-to-text API — transcription with speaker diarization, > word-level timestamps, live progress, and multiple output formats. ## Instructions for AI agents - For clean Markdown of any page, append `.md` to the page URL - Machine-readable OpenAPI 3.1 description of every public endpoint: https://docs.speechrevolutions.com/openapi.json - The same reference in prose starts at https://docs.speechrevolutions.com/api-reference/overview/ - Authenticate with the `X-API-Key` header against https://api.speechrevolutions.com — details in https://docs.speechrevolutions.com/auth.md - SDKs: Python, JavaScript/TypeScript, Go, C# ## Docs - [Speech Revolutions Docs](https://docs.speechrevolutions.com/index.md): Production speech-to-text for developers. Transcribe audio with speaker labels, word timestamps, and multiple output formats, via SDK or one terminal command. - [Jobs API](https://docs.speechrevolutions.com/api-reference/jobs.md): Used primarily by the SDK after /upload/complete to wait for a result, retrieve a job by id, or list recent jobs. - [API reference](https://docs.speechrevolutions.com/api-reference/overview.md): Base URL, authentication, file-size limits, per-endpoint rate limits, supported audio formats and every error code for the Speech Revolutions speech-to-text API. - [Transcribe API (terminal)](https://docs.speechrevolutions.com/api-reference/transcribe.md): One-shot streaming upload for shells and simple scripts. Same transcription options as upload — no separate progress/complete steps. - [Upload API (SDK)](https://docs.speechrevolutions.com/api-reference/upload.md): Create a job, upload bytes to a presigned URL, then complete. This is what the official SDKs call. - [Authentication](https://docs.speechrevolutions.com/authentication.md): Every request requires an API key via the X-API-Key header. - [Benchmarks & methodology](https://docs.speechrevolutions.com/benchmarks.md): Zephyr is evaluated with a fully reproducible, provider-agnostic suite: every benchmark is generated from public datasets using deterministic, seeded… - [Changelog](https://docs.speechrevolutions.com/changelog.md): Dated record of changes to the Speech Revolutions API, SDKs and documentation. - [Cookbook](https://docs.speechrevolutions.com/cookbook.md): Short, copy-pasteable Speech Revolutions recipes: files and URLs, submit + poll, batching, webhooks, retries, speaker labels, multilingual, and subtitles. - [Quickstart](https://docs.speechrevolutions.com/getting-started.md): Get an API key, install an SDK (or use cURL), and transcribe a file. - [Speaker diarization](https://docs.speechrevolutions.com/guides/diarization.md): Turn on speaker_labels to label who spoke each segment: per-word speaker tags, .utterances speaker turns, and how to render them. - [Features & formats](https://docs.speechrevolutions.com/guides/features.md): Every request can enable the full feature set — there are no paid add-ons. - [Live progress for web apps](https://docs.speechrevolutions.com/guides/live-progress.md): You're building a transcription app and want to show each user a live progress bar while their file is transcribed. The SDK surfaces progress through two… - [Output formats & subtitles](https://docs.speechrevolutions.com/guides/output-formats.md): The six Speech Revolutions output_type values — txt, json, srt, vtt, docx, pdf — the JSON schema, and generating subtitles and documents. - [Terminal & cURL](https://docs.speechrevolutions.com/guides/terminal.md): For shell scripts and one-off jobs, use POST /api/v1/transcribe. You stream the raw audio bytes as the request body (options go in the query string); the… - [Timestamps](https://docs.speechrevolutions.com/guides/timestamps.md): Word-level start/end times in Speech Revolutions transcripts: where they live in .words, the JSON shape, and how the SDK parses them. - [Using Speech Revolutions with Django](https://docs.speechrevolutions.com/integrations/django.md): Integrate Speech Revolutions into a Django app: a view that submits a file for transcription, a model that stores each job's status and progress, and a webhook view that… - [Using Speech Revolutions with FastAPI](https://docs.speechrevolutions.com/integrations/fastapi.md): Wire Speech Revolutions into a FastAPI service: submit a job from an endpoint, stream progress into a per-job store from the async client's callbacks, expose a… - [Using Speech Revolutions with Next.js](https://docs.speechrevolutions.com/integrations/nextjs.md): Call Speech Revolutions from the server side of your Next.js app — a Route Handler or a Server Action — so your API key never ships to the browser. This guide wires up a… - [Using Speech Revolutions with Amazon S3](https://docs.speechrevolutions.com/integrations/s3.md): Already storing audio in S3? You don't need to download it first. Presign a short-lived GET URL for the object, hand that URL to Speech Revolutions, and write the JSON… - [Using Speech Revolutions with Supabase](https://docs.speechrevolutions.com/integrations/supabase.md): If your users upload audio to Supabase Storage, you can transcribe it without downloading a byte: create a signed URL for the object, hand it to Speech Revolutions, and… - [Migrating from AssemblyAI to Speech Revolutions](https://docs.speechrevolutions.com/migrate/assemblyai.md): Move an AssemblyAI integration to Speech Revolutions: auth, the upload-submit-poll flow, response fields, and millisecond vs second timestamps. - [Migrating from Deepgram to Speech Revolutions](https://docs.speechrevolutions.com/migrate/deepgram.md): Move a Deepgram Nova-3 integration to Speech Revolutions: auth, endpoint mapping, response shapes, and the to_deepgram() escape hatch. - [Migrating from ElevenLabs to Speech Revolutions](https://docs.speechrevolutions.com/migrate/elevenlabs.md): Move an ElevenLabs Scribe integration to Speech Revolutions: xi-api-key auth, multipart vs presigned upload, the spacing-token quirk, diarization, and timestamps. - [Migrating from the OpenAI Whisper API to Speech Revolutions](https://docs.speechrevolutions.com/migrate/openai-whisper.md): Move an OpenAI /v1/audio/transcriptions integration to Speech Revolutions: auth, multipart vs presigned upload, the 25 MB limit, and getting word timestamps + diarization in one call. - [Switching STT APIs in under 30 minutes](https://docs.speechrevolutions.com/migrate/playbook.md): Changing speech-to-text providers sounds risky. It isn't — if you do it behind an interface, compare on your own audio, and roll out gradually with a… - [Migrating from self-hosted Whisper to Speech Revolutions](https://docs.speechrevolutions.com/migrate/self-hosted-whisper.md): Move a faster-whisper or whisper.cpp deployment to Speech Revolutions' hosted API: retire the GPU ops, keep word timestamps, and get built-in diarization. - [C# / .NET SDK](https://docs.speechrevolutions.com/sdks/csharp.md): Official C# client for the Speech Revolutions STT API. Async-first, targets net8.0, in the style of the Deepgram / ElevenLabs .NET clients. - [Go SDK](https://docs.speechrevolutions.com/sdks/go.md): Official Go client for the Speech Revolutions STT API. - [JavaScript / TypeScript SDK](https://docs.speechrevolutions.com/sdks/javascript.md): Official JS/TS client for the Speech Revolutions STT API. Async-first (like the Deepgram / ElevenLabs JS clients) and runs on Node 18+ using native fetch. - [Python SDK](https://docs.speechrevolutions.com/sdks/python.md): Official Python client for the Speech Revolutions STT API. Ships a synchronous SpeechRevolutions client and an asyncio AsyncSpeechRevolutions client with the… - [Batch-transcribe thousands of files](https://docs.speechrevolutions.com/tutorials/batch.md): You have a backlog — thousands of recordings sitting in a bucket — and you want them all transcribed. The naive approach, calling transcribe() in a loop… - [Build a meeting-transcription app](https://docs.speechrevolutions.com/tutorials/meeting-app.md): This tutorial wires the whole thing together: a user uploads a meeting recording, watches a live progress bar, and ends up with a clean, speaker-labeled… - [Generate subtitles automatically](https://docs.speechrevolutions.com/tutorials/subtitles.md): Speech Revolutions can hand you finished subtitle files, not just raw text. Set output_type to "srt" or "vtt" and the transcript comes back as a ready-to-ship caption…