# Introduction

swaram is a real-time **Malayalam voice API**. You send a user's voice over one
connection, and hear natural Malayalam stream back — speech in, Malayalam out.

You bring the **context** — your instructions, your tools, and your data — and
swaram is the voice. It follows the **OpenAI Realtime** event protocol, so if
you've built with a real-time voice model before, this will feel familiar.

## Base URL

```
wss://api.swaram.live/v1/realtime
```

Sign up and manage your API keys at [app.swaram.live](https://app.swaram.live).

## Two modes

You pick a mode with the `model` setting when you connect. Everything else —
events, tools, voices — is **identical** between them.

| Mode | `model` | Best for |
|---|---|---|
| Simple | `mal-realtime-simple` | Natural Malayalam voice at low cost. |
| Premium | `mal-realtime-premium` | Lower latency and a more expressive voice. |

Switching modes is just a different `model` value; your code stays the same.

## What you'll do

1. [Create an API key](authentication.html) on the dashboard.
2. [Connect](quickstart.html) and configure your session — instructions, voice, tools.
3. Stream the user's voice and play the Malayalam audio you get back.

## Already using a Realtime client?

swaram speaks the OpenAI Realtime event subset, so most existing real-time voice
clients work by changing three things: the **URL** (`wss://api.swaram.live/v1/realtime`),
the **API key**, and the **model** (`mal-realtime-simple`). See the
[Quickstart](quickstart.html) for plain-WebSocket examples in Python, Node, and the browser.

## For AI agents

The full documentation is available as plain Markdown for tooling and agents:
every page is served at `/docs/<page>.md`, and an index lives at
[`/llms.txt`](/llms.txt) (with the whole set concatenated at
[`/llms-full.txt`](/llms-full.txt)).
