SWAYAM API

India's Universal Voice AI - Developer Documentation

v3.1.0 8 Personas 11 Languages 53 Tools

🚀 Quick Start

Get started with SWAYAM in under a minute.

Option 1: Embed Widget (Easiest)

<script src="https://swayam.digimitra.guru/swayam-widget.js"
        data-persona="swayam"
        data-language="hi">
</script>

Option 2: NPM Package

npm install @swayam/sdk

// JavaScript/TypeScript
import { Swayam } from '@swayam/sdk';

const swayam = new Swayam({
  persona: 'wowtruck',
  language: 'hi'
});

swayam.on('response', (text, audio) => {
  console.log('AI:', text);
});

await swayam.connect();
await swayam.send('Delhi से Mumbai का route बताओ');

Option 3: Direct WebSocket

const ws = new WebSocket('wss://swayam.digimitra.guru/swayam');

ws.onopen = () => {
  ws.send(JSON.stringify({
    type: 'join',
    sessionId: 'my_session',
    userId: 'user_123',
    language: 'hi',
    persona: 'swayam'
  }));
};

ws.onmessage = (event) => {
  const msg = JSON.parse(event.data);
  console.log('Response:', msg);
};

// Send text
ws.send(JSON.stringify({ type: 'text', text: 'नमस्ते' }));

🔌 WebSocket API

Real-time bidirectional communication with voice AI.

Endpoints

WS wss://swayam.digimitra.guru/{persona}

Message Types

TypeDirectionDescription
joinClient → ServerJoin session with language/persona
textClient → ServerSend text message
audioClient → ServerSend audio (Base64)
toolClient → ServerExecute MCP tool
responseServer → ClientAI response with audio
transcriptServer → ClientSTT transcription
tool_resultServer → ClientTool execution result
audio_chunkServer → ClientStreaming TTS chunk

Join Message

{
  "type": "join",
  "sessionId": "unique_session_id",
  "userId": "user_123",
  "language": "hi",     // See Languages section
  "persona": "swayam",  // See Personas section
  "wakeWord": false,    // Enable wake word detection
  "streaming": true     // Enable streaming TTS
}

📡 REST API

GET /health

Check service health and version.

POST /tts

Text-to-Speech synthesis.

// Request
{ "text": "नमस्ते", "language": "hi", "voice": "anushka" }

// Response
{ "audio": "base64...", "duration": 1.5, "voice": "anushka" }
GET /mcp/tools

List all available MCP tools.

POST /mcp/execute

Execute a specific MCP tool.

// Request
{ "tool": "gst_calc", "params": { "amount": 10000, "rate": 18 } }

// Response
{ "success": true, "result": { "totalAmount": "11800.00" } }
GET /api/learning/analytics

Get learning analytics and patterns.

GET /metrics

Prometheus-compatible metrics.

🧪 Try It

// Result will appear here

🎭 AI Personas

8 specialized AI assistants for different use cases.

🔗
swayam
Universal AI
🚛
wowtruck
Logistics TMS
📋
complymitra
Compliance
📦
freightbox
Shipping
💼
erp
ERP Bharat
👥
crm
CRM Saathi
🎤
bani
Voice AI
🚚
saathi
Driver Assistant

🌐 Supported Languages

11 Indian languages with TTS and STT support.

hi Hindi हिंदी
en English
bn Bengali বাংলা
ta Tamil தமிழ்
te Telugu తెలుగు
mr Marathi मराठी
gu Gujarati ગુજરાતી
kn Kannada ಕನ್ನಡ
ml Malayalam മലയാളം
pa Punjabi ਪੰਜਾਬੀ
od Odia ଓଡ଼ିଆ

🔧 MCP Tools (53)

Integrated tools for compliance, logistics, finance, and more.

Compliance & Tax

gst_calc gst_verify hsn_lookup tds_calc income_tax pan_verify

Finance

emi_calc sip_calc calculator upi_send upi_verify

Logistics

logistics_search logistics_route logistics_compliance distance_calc toll_estimate

Fleet & Shipping

fleet_vehicles vehicle_position drivers trips container_track

Government APIs

vehicle_verify fastag pm_kisan epf_balance pincode_info

📦 SDK Installation

NPM

npm install @swayam/sdk

React

import { useSwayam, SwayamWidget } from '@swayam/sdk/react';

function App() {
  const { send, response, isConnected } = useSwayam({
    persona: 'wowtruck',
    language: 'hi'
  });

  return (
    <div>
      <p>{response}</p>
      <button onClick={() => send('Hello')}>Send</button>
      <SwayamWidget persona="swayam" language="hi" />
    </div>
  );
}

CDN (Browser)

<script src="https://swayam.digimitra.guru/swayam-widget.js"></script>
<script>
  SwayamWidget.open();
  SwayamWidget.send('नमस्ते');
</script>