Aqua API
Dictate and edit text with each user’s preferences. Transcribe audio with Avalon. Connect agents to Aqua through MCP.
API routes
Use Aqua product routes for dictation, session history, and user settings. Use Avalon routes for OpenAI-compatible transcription. Both use api.aquavoice.com and the same API key.
Aqua product routes
Dictate and edit text with the user's own preferences, read stored sessions, and manage dictionary terms, replacements, custom instructions, and app settings. Aqua object shapes, one consistent error envelope, and rate-limit headers on every response.
POST /v1/dictations
GET /v1/sessions
GET /v1/me
GET /v1/customizations
Avalon transcription routes
Batch speech-to-text with avalon-v1.5. OpenAI request, response, and error shapes, ready for the official SDKs. Run requests synchronously or as durable async jobs.
POST /v1/audio/transcriptions
POST /v1/audio/transcription-jobs
GET /v1/models
Dictation and voice editing
POST /v1/dictations applies the user's language setting, dictionary, replacements, custom instructions, and learned preferences, then returns text ready to insert.
Voice editing built in: send operation=edit with the selected text and Aqua applies the spoken instruction, with the same app context the desktop app uses.
Sessions land in Aqua history: each result carries a session ID, and stored sessions expose transcripts, summaries, and action items.
Privacy is honored end to end: with retention off, the text is returned to the caller and nothing is stored.
cURL
curl https://api.aquavoice.com/v1/dictations \ -H "Authorization: Bearer $AQUA_API_KEY" \ -H "Idempotency-Key: update-note-118" \ -F "audio=@dictation.wav" \ -F "operation=dictate"# {# "raw_text": "hello aqua can you send the update",# "text": "Hello, Aqua! Can you send the update?",# "session_id": "ses_a1e2c85b1cbf43af9dc678a1a7423dcc",# "duration_seconds": 2.84, ...# }
OpenAI-compatible transcription
The transcription routes serve avalon-v1.5, the latest version of Avalon, the model that debuted #1 among proprietary models on the public OpenASR leaderboard in October 2025 at 6.24% average word error rate and scores 97.3% on AISpeak, our benchmark of AI and coding terms. Swap the base URL and model name, and the official OpenAI SDKs work unchanged.
Python
from openai import OpenAIclient = OpenAI( api_key="your-avalon-api-key", base_url="https://api.aquavoice.com/v1")transcript = client.audio.transcriptions.create( model="avalon-v1.5", file=open("speech.mp3", "rb"),)print(transcript.text)
Nine audio formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, and webm, up to 25 MiB and one hour of audio.
Five response formats: json, text, srt, vtt, and verbose_json with segment timestamps.
Synchronous requests, or async jobs that return 202 with a durable job ID you can poll.
Full benchmarks, hallucination examples, and the model story live on the Avalon page.
Requests and errors
Idempotent by design
Send an Idempotency-Key and retry safely. A terminal result replays for 24 hours without another inference or charge, and a retry can never create a duplicate dictation.
Durable async jobs
Transcription jobs return 202 with a job ID and stay durably queued for up to 72 hours. If a synchronous request times out after the job is stored, the error includes the job ID so the work is never lost.
Rate limits in the open
Responses carry rate-limit headers for both requests and concurrency, so your client can pace itself instead of guessing.
Errors built for retries
Stable error codes with explicit retryable semantics: OpenAI error shapes on transcription routes, one predictable envelope on product routes.
Health you can poll
GET /v1/health reports public service readiness. GET /v1/health/functional is backed by a real end-to-end transcription canary that runs every minute.
API keys
One key covers dictation, sessions, MCP, and transcription. An organization key acts as a member through the Aqua-User header. Full keys are shown only once, and each account can hold up to 30 keys.
Connect your AI agent over MCP
Aqua is also a remote MCP server. Point Claude, ChatGPT, or Codex at the endpoint below and your agent gets ten tools over OAuth: read sessions and transcripts, file feedback that can teach Aqua a correction when learned preferences are enabled, manage dictionary terms, and update settings.
MCP endpoint
https://api.aquavoice.com/mcp
Aqua MCP is in limited access. Your AI provider must support remote MCP and may require workspace admin approval. Read access is requested first; write access requires separate approval.
MCP connection guideUsage pricing
Your first $1.00 of usage is free. After that, pay for the audio you process.
- Avalon transcription
- $0.39 per audio hour
- Aqua dictation
- $0.49 per audio hour
- Billed per second, 10-second minimum
- Dictate and Edit Mode share one rate
- Failed requests and idempotent replays are never billed
- No seat fees
Frequently asked questions
What is the difference between the Aqua API and the Avalon API?
Avalon is Aqua's speech-to-text model, served on the OpenAI-compatible transcription routes. The Aqua API is the whole platform around it: personalized dictation and voice editing, stored sessions with transcripts and summaries, dictionary and settings management, and the MCP server for AI agents, alongside those transcription routes.
Is the Aqua API OpenAI-compatible?
The transcription routes are: they keep OpenAI request, response, and error shapes, so the official OpenAI SDKs work unchanged after swapping the base URL and model name. The product routes for dictation, sessions, customizations, and settings use Aqua object shapes with one consistent error envelope.
How do I get an API key?
Create a key in the Aqua API dashboard. One key covers dictation, sessions, customizations, settings, MCP, and transcription. Your account activates with the first key, and the first $1.00 of usage is free, so the first request needs no card. Each account can hold up to 30 keys.
Which languages does the API support?
Dictation supports 50 languages plus automatic detection. Transcription accepts any ISO 639-1 language code as a hint, or detects the language automatically.
What does Aqua store from an API dictation?
That depends on the user's privacy and zero-data-retention settings, which the API respects. When retention is off, the result goes to the caller and no session is kept. When history is available, the dictation is stored as a session in Aqua history, identified by the session ID in the response.