Voice input for your website.
One script tag.
Whisper-accurate dictation in any text field on your site. No backend, no audio code, no browser quirks. Live in 60 seconds.
Running on the shared demo key (3 min/day). Your key removes the limits.
Free tier included — no credit card required.
Quickstart
Paste this before </body>. A mic appears in every text field on the page.
Add the script tag with your publishable key.
Your users click the mic and speak — in any of 20+ languages.
Accurate text lands in the field, with real input events your framework understands.
Or let your AI do it
Using Cursor, Claude, Copilot or ChatGPT? Copy the setup instructions below and paste them into your assistant — it has everything needed for a correct integration (swap in your key after you create one).
Configuration
Everything is a data-attribute on the script tag. No JavaScript required.
| Attribute | Default | What it does |
|---|---|---|
data-key | — (required) | Your publishable key (pk_live_…). Safe to expose — protected by your domain allowlist. |
data-target | all text fields | CSS selector(s) for which fields get a mic, e.g. "textarea, .voice". |
data-theme | light | light or dark — match your site. |
data-position | inside-right | inside-right or inside-left — where the mic sits in the field (RTL-friendly). |
data-language | auto | ISO code (en, es, fr, yi, …) or auto to detect. 20+ languages. |
data-api | https://sleekio.io/api | Override if you proxy requests through your own domain. |
Works with your stack
Text is inserted through native setters + synthetic input events — the trick that makes React and Vue controlled inputs update correctly (plain .value = breaks them).
The annoying parts, handled
You could wire a speech API yourself in a day. This is everything else you'd be maintaining for years — full breakdown in build vs. buy: voice input for websites.
Cross-browser audio
Chrome/Firefox WebM-Opus, iOS Safari MP4 — codecs detected and handled automatically, including MediaRecorder quirks.
Framework-safe insertion
Native prototype setters + synthetic events, inserted at the cursor. React, Vue, Svelte and plain HTML all just work.
20+ languages, auto-detected
Whisper-class accuracy with automatic language detection, or pin a language per page.
Never breaks your page
Shadow-DOM isolated UI, graceful failure states, provider fallbacks behind the API. Under 15 KB, zero dependencies.
Privacy: your users' audio is processed in memory, transcribed, and immediately discarded — never stored, never used for training. Transparency: the widget client is open source — read it on GitHub before you add it. It runs on the same production backend as the Sleekio Chrome extension (4.6★ on the Chrome Web Store), where the codec and insertion handling was battle-tested first.
Pricing for websites
Plans are metered in credits: 1 credit = up to 30 seconds of speech, so a typical dictation costs one credit. Generous free tier to start.
Basic
- ✓1,000 credits / mo
- ✓2 domains
- ✓Badge removed
Starter
- ✓3,000 credits / mo
- ✓3 domains
- ✓Badge removed
Growth
- ✓15,000 credits / mo
- ✓10 domains
- ✓Priority processing