Embed — paste once, speak everywhere

Public surfaces. Drop the script tag, mark a slot, ship. No SDK, no build step.
Snippets use a placeholder — swap vv_live_YOUR_KEY_HERE for a real API key (Settings → API keys) before pasting into a host page.
Floating voicebot bubbleSNIPPET · HTML
Pins a mic-bubble to the corner; tapping opens a 340×480 voice panel — support, onboarding, lead-capture.
<script src="https://vaanilabs.in/embed/v1/vaanivoice.js" defer></script>
<script>
  window.addEventListener('load', () => {
    VaaniVoice.voicebot({
      apiKey: 'vv_live_YOUR_KEY_HERE',
      position: 'bottom-right',   // or 'bottom-left'
    });
  });
</script>
Meeting roomSNIPPET · HTML
Same meeting surface as Meet Agent, mountable in your own page.
<div id="vaani-meeting" style="height:600px"></div>
<script src="https://vaanilabs.in/embed/v1/vaanivoice.js" defer></script>
<script>
  window.addEventListener('load', () => {
    VaaniVoice.meeting({
      apiKey: 'vv_live_YOUR_KEY_HERE',
      container: '#vaani-meeting',
    });
  });
</script>

Cache & versioning

Versioned path /embed/v1, ships immutable. Breaking changes bump to v2.

CSP

Host allows connect-src wss://vaanilabs.in + frame-src for meeting surfaces.

Permissions

Mic (+ camera for meetings) are user-gated — nothing fires until the visitor taps Start.