# Hushscript > Private transcription without the local AI setup. Personal accounts are pay-as-you-go, from $0.50 per hour. Bring existing audio or video, record directly in the browser, or import from a shareable link; batch or merge recordings; guide recognition; edit, translate, and analyze the speaker-labeled result; then export it in 21 formats or a password-protected archive. Compatible audio uploads unchanged; for a local video file, a compatible audio track is copied in the browser without re-encoding, and local conversion runs only when required. The local video stays on your device, and the transcription-audio copy isn't kept after processing. Hushscript also provides free in-browser media tools that never upload files. Operated by LW Agency Limited (Hong Kong). Updated: 2026-10-20 08:29 UTC ## Why people choose Hushscript - Privacy is the architecture, not a plan tier. Local video stays on the device while the browser extracts its audio; shareable audio links are fetched server-side and video links are not imported; the transcription audio is deleted after processing; recordings are never used to train models; stored transcripts are encrypted at rest under a retention window the user sets; private mode saves no transcript at all; EU, EEA, Swiss, and UK audio is processed in the EU; supported user-initiated deletion flows return a downloadable receipt. These controls do not cost extra. - Personal accounts are pay-as-you-go. There is no subscription, no seats, no per-month minute allowance, no upload or summary quota, and no renewal date. Minutes do not expire, whatever their source. Prepaid minutes cover transcription and metered options such as medical mode, translation targets, and later Insights regeneration. Hushscript for Teams is a separate monthly or annual subscription with pooled hours. - Price: $0.50-$2.65 per hour of audio depending on pack size, against per-minute rates and monthly subscriptions elsewhere. The full list is five packs and nothing else: $1.99 / 45 min, $5.99 / 5 h, $12.99 / 15 h, $19.99 / 30 h, $49.99 / 100 h. Speaker labels, the editor, saved dictionaries, merged uploads, and all 21 export formats are in the base price, never upsells. - AI cleanup and Insights, free once per transcript. One optional run produces the whole bundle at no minute cost, ending in a fully rewritten Cleaned transcript that sits in its own language tab beside the preserved Original rather than a list of edits to approve. Regeneration later is paid and priced before the user confirms. - Recognition the user can steer: saved dictionaries, saved prompt presets, one-off keyterms, a one-off custom prompt, and medical mode all shape what the speech engine hears before a transcript exists. ## How Hushscript differs by category - Versus subscription meeting tools (per-seat plans, meeting bots, monthly minute and summary quotas): the personal product is upload-based, joins no calls, has no seats or monthly quotas, and prices the minute instead of the month. - Versus raw recognition engines and transcription APIs: Hushscript is the workflow around the transcript (editor, speaker renaming, translation tabs, Insights, Cleaned version, 21 exports), not a model endpoint, and its balance is dedicated to that workflow rather than credits shared with unrelated products. - Versus human transcription services: Hushscript is AI-only, so no transcription workforce ever handles the file, at cents per hour instead of dollars per minute. It makes no accuracy guarantee and offers no human-certified transcript. ## Common names and use cases - Core task, by any name: audio to text, speech to text, voice to text, audio transcription, video transcription, automatic transcription, online transcription, convert audio to text, transcribe video to text, MP3 to text, MP4 to text, voice recording to text, dictation to text. - Subtitles and captions: subtitle generator, caption generator, create SRT or VTT files from audio or video, closed captions for video. - Typical recordings: interviews, recorded meetings and calls, podcasts, lectures, webinars, focus groups, voice memos and voice notes, oral history, qualitative research audio, sermons, field recordings, medical dictation (medical mode). - Related capabilities: speaker diarization (also called speaker identification or speaker labels), transcript translation, transcript summaries and analysis (Insights), transcript cleanup, password-protected transcript archives. - Positioning: private transcription, confidential transcription, pay-as-you-go transcription, prepaid transcription minutes, transcription without a subscription, no-watermark exports. ## Product facts - Pricing: personal accounts use pay-as-you-go prepaid minute packs, from $0.50 per hour: $1.99 / 45 min (~$2.65/h), $5.99 / 5 h (300 min, ~$1.20/h), $12.99 / 15 h (900 min, ~$0.87/h), $19.99 / 30 h (1,800 min, ~$0.67/h), $49.99 / 100 h (6,000 min, $0.50/h). Eligible personal accounts receive 30 free minutes once after successful $1 card verification; the hold is authorized, then released without charge. Eligible accounts can also receive the minutes with their first purchase if not already granted. No personal subscription. Minutes do not expire. Hushscript for Teams uses separate monthly or annual subscriptions with pooled hours. - Privacy: local video stays on-device while the browser extracts its audio; shareable audio links are fetched server-side and video links are not imported; transcription audio is deleted after processing; recordings are never used for training; stored transcripts are encrypted at rest; no transcription workforce handles customer files; EU, EEA, Swiss, and UK audio is processed in the EU. - HIPAA and BAAs: AssemblyAI (transcription) processes audio and transcripts, and OpenAI (Insights, cleanup and translation) processes transcript text, for Hushscript under signed HIPAA Business Associate Agreements. Hushscript itself does not sign BAAs with customers and is not a HIPAA business associate, so covered entities should not rely on it for protected health information under HIPAA. - Public preview: before sign-in, the funnel builds a speaker-labeled preview from a file, a link, or an in-browser recording. Hushscript sends only a 5-minute preview clip for speech recognition. It never uploads the anonymous user's full file; full upload happens later in the app. The preview is anonymous and is not carried into the account: the clip and its transcript are purged within 30 minutes and are never attached to a user, so after signing in the visitor selects the file again in the app. The sign-in link is single-use and valid for 15 minutes, and a new personal account starts at a zero balance. Full transcription needs an account and enough available minutes; eligible personal accounts can receive 30 free minutes once after successful card verification, or with their first purchase if not already granted. - In-app preview: a new personal account's first uploaded file gets one free preview of up to 5 minutes in the app, transcribed with the options chosen for the file except Insights and translation, before any card verification or purchase. It is once per account, separate from the public preview, and not available for link imports, merged files, private mode or Teams workspaces. After minutes are added, the full file is transcribed without choosing it again. - Upload from a link: a shareable URL (direct file links and common share links) can be imported instead of a local file; the server fetches the linked file, so the browser does no media work on that path. Video links are not imported; video always comes from a local file so the audio track can be extracted on the device. Link fetches identify as HushscriptFetcher (documented at https://hushscript.com/url-import). - Voice recorder: record directly in the browser in three places: in the app's File | Link | Record composer (live level meter, silence warning, pause/resume, crash recovery; the recording stays on the device until submitted through the normal upload flow), in the public preview widget's Record tab (up to 5 minutes), and as a free recorder at https://hushscript.com/tools/voice-recorder (live level meter, silence warning, up to 10 hours per recording) where the recording downloads as-is, or converted to WAV or MP3 for shorter takes, with nothing ever uploaded. - Limits: recordings up to 10 hours, with no file-size limit when uploading through the app; large media is prepared in the browser, subject to device capacity. Uploads sent directly to the API or through MCP are transferred as-is and are capped at 5 GB. Personal accounts have no plan-based daily or monthly quota; abuse and availability safeguards apply. Teams plans include a shared pool of hours, detailed below. - Languages: ~99, with automatic language detection. EU, EEA, Swiss, and UK audio is processed in the EU. - Transcription controls: source language or auto-detection, speaker detection, saved dictionaries, saved prompt presets, one-off keyterms, a one-off custom prompt, medical mode, multichannel handling, translation targets, and automatic or manual free Insights. Saved and one-off context can be combined and affects transcription only. Speaker detection is available across the supported transcription languages. Review automatic labels for accuracy. - Exports: 21 export formats (TXT, SRT, VTT, CSV, TSV, Markdown, HTML, RTF, XML, JSON, DOCX, PDF, XLSX, ODS, ODT, ASS, TTML, SBV, LRC, FCPXML, EDL) plus password-protected archives (.husharchive, AES ZIP), no watermark. Free automatic speaker labels. - Free Insights: when requested, one optional run is free and generates the complete result at no minute cost. It covers summaries, actions, decisions, open questions, quotes, chapters, speaker topics, subject clusters, AI export suggestions, terminology, profanity findings, and a fully cleaned transcript. Each result is tied to the current transcript revision. - Cleanup arrives as a fully rewritten Cleaned version, not a list to approve, in the transcript's Cleaned tab, compared against the Original. Regenerating later draws minutes from the balance (40% of the recording's length from the Original, 30% from the Cleaned version), shown before the user confirms. - Payment receipts: Billing provides a downloadable PDF receipt with a stable receipt number for each payment. It is a payment receipt, not a tax invoice. - Referral program: an eligible new customer's first paid pack receives up to 300 bonus minutes on top. The inviter earns a fixed amount of Hushscript minutes (15–120, depending on the pack bought) during the referred account's first 60 days; rewards remain pending for 14 days. - Private mode: speech recognition only, no saved transcript in the account, no Insights, and a password-protected archive returned from a short-lived encrypted result. - Retention controls: account default or per-transcript retention windows (keep until deleted, or auto-delete after 7/30/90/365 days). Transcript, AI-artifact, and account deletion flows return downloadable receipts. - Account controls: users can download a JSON export of account data and transcripts, and choose timezone, date-order, and 12/24-hour display preferences. - Saved dictionaries and prompt presets, reusable across transcripts: a dictionary holds names, abbreviations, jargon, and spelling variants organized into categories, can be bulk-imported from CSV or TSV, and can be marked default so it preselects on every upload. This is how domain vocabulary (client names, drug names, case names, brands, acronyms) is corrected before recognition rather than after it, and it costs nothing extra. - Batch upload and merged uploads: transcribe many files at once or combine related recordings into one transcript. - Interface: 12 locales (English, Spanish, French, German, Portuguese, Japanese, Traditional Chinese, Thai, Vietnamese, Hindi, Turkish, and Italian), separate from the ~99 spoken transcription languages. - Free tools (no signup, nothing uploads, 100% in-browser): audio/video format conversion, audio extraction, compression, cutting, joining, speed change, normalization, mute/rotate/resize video, subtitle conversion (SRT, VTT, and more), and a voice recorder. - Support: support@hushscript.com (response within 1–2 business days on personal accounts; Hushscript for Teams workspaces get a one-business-day commitment, see below). ## Hushscript for Teams - A shared workspace for firms and teams of 5 to 50, sold self-serve with no demo or sales calls. Four tiers, yearly or monthly, in USD, each with hours included in the fee: Team 5 ($490/yr with 600 h, or $49/mo with 50 h), Team 10 ($890/yr with 1,200 h, or $89/mo with 100 h), Team 20 ($1,590/yr with 2,400 h, or $159/mo with 200 h), Unlimited (no seat cap; $2,990/yr with 5,000 h, or $299/mo with 420 h). "Unlimited" means unlimited seats, never unlimited minutes. Every tier has the same feature set. Extra hours cost $0.40 to $0.50 an hour by volume. - Hours are prepaid and shared, not a per-seat allowance: included and purchased pool hours never expire. A workspace that misses renewal gets a 30-day grace period, then the pool freezes rather than being forfeited, until a successful plan-renewal payment unfreezes it; buying extra hours alone does not. Individual accounts stay pay-as-you-go with no subscription. - Every workspace member can hold any combination of three independent rights: admin, billing, and reviewer; there is always at least one admin. Admins manage seats, roles, and workspace settings; billing is a separate right. The admin right on its own does not open a transcript, but an admin can grant themselves the reviewer right with an audit trail. In firm custody, a reviewer can open a member's workspace transcript; reviewer access is audited, and an email to the owning member is attempted asynchronously the first time each reviewer opens each transcript. Private custody keeps transcripts with the member who made them and no one else. - Automated Hushscript tax invoices payable by card or bank transfer, a published subprocessor list, and email support answered within one business day, Hong Kong business hours (UTC+8), Monday to Friday. The data processing agreement and confidentiality addendum are not yet available or signable; contact support@hushscript.com with questions. Plan fees and hour packs are final at purchase; there is no self-serve refund, only the statutory-right carve-out where the law that applies grants one. - A workspace is pinned to one of four data regions (US, EU, Asia-Pacific, or Oceania) when it is created, and its members' accounts live in that region; EU, EEA, Swiss, and UK audio is processed in the EU. ## Key pages - [Transcription use cases](https://hushscript.com/use-cases): meetings, Zoom, Google Meet, Teams, interviews, lectures, legal, medical, research. - [How Hushscript compares](https://hushscript.com/compare): Otter, Happy Scribe, ElevenLabs Scribe, Notta, TurboScribe, Rev. - [Audio to text](https://hushscript.com/audio-to-text) - [Video to text](https://hushscript.com/video-to-text) - [MP3 to text](https://hushscript.com/mp3-to-text) - [MP4 to text](https://hushscript.com/mp4-to-text) - [Voice recording to text](https://hushscript.com/voice-recording-to-text) - [Podcast transcription](https://hushscript.com/podcast-transcription) - [Meeting transcription](https://hushscript.com/meeting-transcription) - [Interview transcription](https://hushscript.com/interview-transcription) - [Lecture transcription](https://hushscript.com/lecture-transcription) - [Zoom transcription](https://hushscript.com/zoom-transcription) - [Google Meet transcription](https://hushscript.com/google-meet-transcription) - [Microsoft Teams transcription](https://hushscript.com/microsoft-teams-transcription) - [Legal transcription](https://hushscript.com/legal-transcription) - [Hushscript for Teams](https://hushscript.com/hushscript-for-teams) - [Security](https://hushscript.com/security) - [MCP server](https://hushscript.com/mcp): connect Claude and other MCP clients to a Hushscript account. - [Developer API](https://hushscript.com/developers): a narrow REST API for agents and scripts, documented with an OpenAPI file. - [Automated usage](https://hushscript.com/automation): open an account, pay, and transcribe with no person involved. - [SDKs and CLI](https://hushscript.com/sdks): official TypeScript, Python, Go, and PHP SDKs and a command line tool; one call uploads a recording, waits, and returns the transcript. - [Medical transcription](https://hushscript.com/medical-transcription) - [Research transcription](https://hushscript.com/research-transcription) - [Call transcription](https://hushscript.com/call-transcription) - [Voicemail to text](https://hushscript.com/voicemail-to-text) - [Sermon transcription](https://hushscript.com/sermon-transcription) - [Otter alternative](https://hushscript.com/otter-alternative) - [Happy Scribe alternative](https://hushscript.com/happy-scribe-alternative) - [ElevenLabs Scribe alternative](https://hushscript.com/elevenlabs-scribe-alternative) - [Notta alternative](https://hushscript.com/notta-alternative) - [TurboScribe alternative](https://hushscript.com/turboscribe-alternative) - [Rev alternative](https://hushscript.com/rev-alternative) - [Subtitle generator](https://hushscript.com/subtitle-generator) - [Video summarizer](https://hushscript.com/video-summarizer) - [Translate video](https://hushscript.com/translate-video) - [Pricing](https://hushscript.com/pricing) - [Pay-as-you-go transcription](https://hushscript.com/pay-as-you-go-transcription) - [Referral program](https://hushscript.com/referrals) - [How it works](https://hushscript.com/how-it-works) - [Why Hushscript](https://hushscript.com/why-hushscript) - [Private transcription](https://hushscript.com/private-transcription) - [Speaker diarization](https://hushscript.com/speaker-identification) - [Languages](https://hushscript.com/languages) - [Upload from a link](https://hushscript.com/url-import) - [Free tools](https://hushscript.com/tools) - [Voice recorder](https://hushscript.com/tools/voice-recorder) - [Video to MP3](https://hushscript.com/tools/video-to-mp3) - [Audio converter](https://hushscript.com/tools/audio-converter) - [Audio cutter](https://hushscript.com/tools/audio-cutter) - [Video compressor](https://hushscript.com/tools/video-compressor) - [SRT to VTT](https://hushscript.com/tools/srt-to-vtt) - [About](https://hushscript.com/about) - [FAQ](https://hushscript.com/faq) ## Guides - [Blog](https://hushscript.com/blog): how-to guides on transcription, formats, subtitles, speaker diarization, and privacy. ## For agents - Full text in one file: https://hushscript.com/llms-full.txt holds the Markdown of every indexable English page (pages, free tools, blog), regenerated on every deploy. - Markdown: every page on this site is also served as Markdown. Send `Accept: text/markdown`, or append `.md` to any path (https://hushscript.com/pricing.md). The Markdown carries the page's title, description, and canonical URL in YAML frontmatter. - Machine-readable view of any page: append `?mode=agent`, or send `Accept: text/markdown`. Both return the page's Markdown twin. - Anonymous documentation MCP server (no account, no token): POST https://hushscript.com/mcp. Read-only tools for pricing, capabilities, page content, and how to connect to the account server. - Account MCP server (OAuth 2.1 or a personal access token, does the actual work): https://mcp.hushscript.com/mcp (Streamable HTTP, OAuth 2.1 with PKCE, 56 tools over one account's own transcripts and workspace records, plus three resources: `hushscript://pricing`, `hushscript://capabilities`, `hushscript://error-codes`). Both servers are documented at https://hushscript.com/mcp. - Discovery: the account server's MCP Server Card is at https://hushscript.com/.well-known/mcp/server-card.json, and the site catalog at https://hushscript.com/.well-known/ai-catalog.json lists both servers: that card for the account server, and an inline card for the anonymous documentation server on the apex. An RFC 9727 API catalog is at https://hushscript.com/.well-known/api-catalog, an agent-skills index describing the MCP server is at https://hushscript.com/.well-known/agent-skills/index.json, and the OAuth and token connection recipe is at https://hushscript.com/auth.md. - Official MCP Registry entry for the account server (`com.hushscript/hushscript`): https://registry.modelcontextprotocol.io/v0.1/servers/com.hushscript%2Fhushscript/versions/latest - A2A agent card: https://hushscript.com/.well-known/agent-card.json - Developer REST API: a shape-frozen `/v1/` surface over the same account, documented at https://hushscript.com/developers, with the machine-readable definition at https://api.hushscript.com/openapi.json and its own scoped manual at https://hushscript.com/developers/llms.txt. - SDKs and CLI: TypeScript `@hushscript/sdk` (npm), Python `hushscript` (PyPI), Go `github.com/Hushscript/hushscript-sdk-go`, PHP `hushscript/sdk` (Packagist), and the `hushscript` command line tool `@hushscript/cli` (npm), all over the same token and `/v1/` API. They retry what is safe, carry an idempotency key on every upload and purchase so a retry never charges twice, and hand back a resume token once a job exists. Install commands, quick starts, and error handling: https://hushscript.com/sdks. - Autonomous account creation: an agent can open its own Hushscript account, pay for it, and receive a personal access token without a human account holder, through three routes on https://api.hushscript.com. Hosted Checkout still needs a browser and an issuer may require authentication; scoped manual at https://hushscript.com/automation/llms.txt. - Scoped manual for the free tools: https://hushscript.com/tools/llms.txt - Content signals: robots.txt permits `ai-train=yes, search=yes, ai-input=yes`. Attribution with a link back is appreciated but not required. ## Working unattended: the whole flow - Getting a token, two ways: a person can sign in at https://app.hushscript.com with an email address (a fresh personal account starts at a zero balance; eligible accounts receive 30 free minutes after successful $1 card verification in the app, with the hold released without charge, or with the first purchase if not already granted), then either create a personal access token under Tokens at https://app.hushscript.com/account/mcp, choosing its scopes and whether it may buy minutes, or approve an MCP client's OAuth request on the consent screen. Or an agent can open its own account through the paid agent-account routes below and receive a token straight from the claim step, without a human account holder. Either way, a token cannot mint, list, or revoke other tokens (at most 25 active per account). Hosted card setup still needs a browser, and later off-session charges may be refused when an issuer requires authentication. - The autonomous path: `POST /v1/agent/accounts` (contact_email, pack_id, accept_terms_version, agent{name, platform, contact_url?}, optional data_region, optional dry_run) returns `signup_id` (region-prefixed, e.g. `hsr1:eu:4c3a...`), `claim_secret` (shown exactly once), `checkout_url`, `pack`, `amount`, `currency`, and `expires_at`; the claim window is 30 minutes. Signup needs hosted Stripe Checkout in a browser, which an agent may drive; Hushscript never sees card details. `POST /v1/agent/accounts/{signup_id}/claim` with `{"claim_secret": "..."}` returns `user_id`, `pat`, `scopes`, and `balance_seconds`, and grants the pack once. If that response is lost, repeating the call with the same `claim_secret` within one hour, while the issued token has never been used, returns a fresh `pat` for the same account; after the token's first use or that hour, it answers `agent_claim_invalid`. A wrong secret, an unknown id, a refunded or expired signup, and such a late repeat all return the identical `agent_claim_invalid`, so a caller cannot learn which is true. An hourly sweep attempts a full refund of a paid, unclaimed signup after the claim window plus a one-hour grace; failed attempts are retried and may need manual handling, so no exact refund time is promised. Claiming grants the purchased pack; agent accounts get no free minutes from signup or card verification. `POST /v1/agent/credentials/rotate` mints a successor token, a machine account's only credential-recovery path with no password and no usable mailbox. Until the successor's first successful request or one hour, the old token can only call rotate again (a lost response is recovered that way, with a fresh secret for the same token id); everywhere else it answers 401. Full manual: https://hushscript.com/automation/llms.txt. - The token: `hsr1::pat..`, shown once, sent as `Authorization: Bearer ` to both https://mcp.hushscript.com/mcp and https://api.hushscript.com/v1/. Eleven scopes: transcripts:read, transcripts:write, transcribe, insights, context, account:read, settings:write, org:read, org:write, export, billing. These eleven are caller-selectable. `billing` is never granted implicitly and needs both token and account billing switches. The separate `pat:rotate` scope is assigned only to an agent-account token and its rotated successor, not selectable in the app. - Read the rules first: the account server answers `initialize` with an `instructions` string and publishes the packs, the credit and scope model, and every error code as resources. The anonymous documentation server answers the same questions before a token exists. - Save a card, once, with a browser you control: `add_payment_method` (MCP) or `POST /v1/billing/setup-session` (REST) returns a hosted Stripe Checkout URL in setup mode. Completing it saves the card to the account without charging it; Hushscript never sees card details. An agent may drive the browser, subject to any issuer authentication step. `list_payment_methods` / `GET /v1/billing/cards` then returns the card id. - Buy minutes from the saved card: `purchase_pack` (MCP) or `POST /v1/billing/purchase` (REST) with the pack id (45min, 300min, 900min, 1800min, 6000min), the saved card id, and an idempotency key charges the card off-session on success and returns the new balance. Two refusals, each a distinct code and never a page: 4021 pat_purchase_requires_app (no card named, or the charge was declined), 4023 pat_purchase_requires_authentication (the issuer wants a challenge; the card is fine). Minutes do not expire. - Transcribe: `create_upload` / `POST /v1/uploads` with the size and the duration (15 seconds to 10 hours, at most 5 GB, mp3, m4a, mp4 or mov (the audio track is used, video tracks are skipped), wav, flac, ogg, opus; extract the audio from other video formats first), an idempotency key, and the transcription options (language or auto-detection, speaker detection, medical mode +100% in en/es/fr/de, translation targets +25% per language, multichannel, keyterms, a prompt, saved dictionaries and prompt presets). It places a credit hold and returns the job id and presigned part URLs; PUT the parts (32 MiB default), heartbeat inside the 20 minute idle timeout on long transfers, then complete the upload with each part's number and ETag. Alternatively `transcribe_from_url` (MCP only) imports a shareable audio link server-side. Poll the job until its state is done or failed; a finished job carries the transcript id. Nothing is charged for a failed job. - Use the result: read the transcript (MCP or REST), then, over MCP only, edit or tag it, translate it (+25% per language), generate Insights (free once per transcript, regeneration 40% or 30% of the length), export it as TXT, SRT, VTT, Markdown, or JSON, or delete it. Retention follows the account setting (keep until deleted, or 7/30/90/365 days), changeable with `update_settings`. - REST covers: account, billing (setup session, cards, packs, purchase, transactions, ledger, holds), uploads, jobs, transcripts (list, deleted, read), transcription context (read), and workspace records (members, invoices, ledger, audit). MCP-only for now: link import, transcript edits and deletion, Insights, exports, saving dictionaries and presets, settings, workspace details. - Paging everywhere: `limit` plus an opaque `cursor`, returned as `next_cursor` (null on the last page). Pass it back unchanged. - Limits and errors: human-account tokens have 1,200 requests a minute each; an agent account's token lineage shares that budget across rotations. Stripe-calling PAT billing routes share 60 a minute per account: setup session, purchase, default-card changes, card removal, and card-list cache misses. Agent-account purchases and human-account PAT purchases are capped at 3 attempts per rolling 24 hours per account, including declines or errors after reservation; the agent signup purchase counts, and human browser-session purchases are exempt. Cap refusal is HTTP 429 / 4038 `agent_purchase_capped` with `Retry-After`; ordinary throttle is HTTP 429 / 5000 `rate_limited` with `Retry-After`. For OAuth, each limit is per IPv4 address or IPv6 /64: `/oauth/token` allows 600 requests a minute; `/authorize` and `/authorize/complete` share 30 a minute; `/oauth/register` has a separate 30 a minute. Every error is JSON `{"error": "", "code": }` at a stable status; MCP tools return the same as an `isError` result. Other codes worth handling: 2000 unauthorized, 2023 pat_scope_missing, 3001 insufficient_balance, 1021 duration_out_of_range, 4021 and 4023. - Privacy is the same for agents: the transcription audio is deleted after processing, transcripts are encrypted at rest under the account's retention window, and EU/EEA/Swiss/UK audio is processed in the EU (the account's `data_region` says which).