> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt.
> For full documentation content in one file, see https://docs.sarvam.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Developer Quickstart

> Learn how to make your first API request with Sarvam AI in under 5 minutes. Complete guide with code examples for chat completion, speech-to-text, and translation APIs.

Get started with Sarvam APIs in under a minute using just a few lines of code

To get started: (1) **Create an API Key** at [dashboard.sarvam.ai](https://dashboard.sarvam.ai), (2) **Set Up Your Environment** by exporting `SARVAM_API_KEY`, (3) **Install the SDK** via `pip install -U sarvamai` or `npm install sarvamai@latest`, and (4) **Make Your First API Call** using the SDK or REST API.

Visit the [Sarvam AI dashboard](https://dashboard.sarvam.ai) and create a new API key. Keep this key secure - you'll need it to authenticate your requests.

Export your API key as an environment variable:

```bash
export SARVAM_API_KEY="YOUR_SARVAM_API_KEY"
```

```powershell
$env:SARVAM_API_KEY="YOUR_SARVAM_API_KEY"
```

Choose your preferred language and install our SDK:

```bash
pip install -U sarvamai
```

```bash
npm install sarvamai@latest
```

```python
from sarvamai import SarvamAI

client = SarvamAI(
    api_subscription_key="YOUR_SARVAM_API_KEY",
)

response = client.text.translate(
    input="Hi, My Name is Vinayak.",
    source_language_code="auto",
    target_language_code="gu-IN",
    speaker_gender="Male"
)

print(response)
```

```javascript
import { SarvamAIClient } from "sarvamai";

const client = new SarvamAIClient({
    apiSubscriptionKey: "YOUR_SARVAM_API_KEY"
});

const response = await client.text.translate({
    input: "Hi, My Name is Vinayak.",
    source_language_code: "auto",
    target_language_code: "gu-IN",
    speaker_gender: "Male"
});

console.log(response);
```

```bash
curl -X POST https://api.sarvam.ai/translate \
-H "api-subscription-key: <YOUR_SARVAM_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"input": "input",
"source_language_code": "auto",
"target_language_code": "gu-IN"
}'
```

**Quick Tips:** - Store your API key securely and never commit it to version
control - Use environment variables or a secure configuration manager

## Sarvam AI APIs

Saaras v3 is our latest speech recognition model. It supports multiple output modes — `transcribe` (default, original language), `translate` (to English), `verbatim` (word-for-word), `translit` (romanization), and `codemix` (mixed script).

```python
from sarvamai import SarvamAI

client = SarvamAI(
    api_subscription_key="YOUR_SARVAM_API_KEY",
)

response = client.speech_to_text.transcribe(
    file=open("audio.wav", "rb"),
    model="saaras:v3",
    mode="transcribe",  # or "translate", "verbatim", "translit", "codemix"
)

print(response)
```

```javascript
import {SarvamAIClient} from "sarvamai";
import fs from 'fs';

const client = new SarvamAIClient({
    apiSubscriptionKey: process.env.SARVAM_API_KEY
});

const audioFile = fs.createReadStream("recording.wav");

const response = await client.speechToText.transcribe({
    file: audioFile,
    model: "saaras:v3",
    mode: "transcribe",  // or "translate", "verbatim", "translit", "codemix"
});

console.log(response);
```

```bash
curl -X POST https://api.sarvam.ai/speech-to-text \
  -H "api-subscription-key: <YOUR_SARVAM_API_KEY>" \
  -H "Content-Type: multipart/form-data" \
  -F model="saaras:v3" \
  -F mode="transcribe" \
  -F file=@file.wav
```

Use `transcribe` for same-language output, `translate` to convert audio to English text, or `verbatim`/`translit`/`codemix` for specialized formatting. `mode` defaults to `transcribe` when omitted.

```python
from sarvamai import SarvamAI

client = SarvamAI(
    api_subscription_key="YOUR_SARVAM_API_KEY",
)

response = client.text_to_speech.convert(
    text="Hello, how are you?",
    target_language_code="hi-IN",
)

print(response)
```

```javascript
import { SarvamAIClient } from "sarvamai";

const client = new SarvamAIClient({
    apiSubscriptionKey: "YOUR_SARVAM_API_KEY"
});

const response = await client.textToSpeech.convert({
    text: "Hello, how are you?",
    target_language_code: "hi-IN",
});

console.log(response);
```

```bash
curl -X POST https://api.sarvam.ai/text-to-speech \
  -H "api-subscription-key: <YOUR_SARVAM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "text":"Welcome to Sarvam AI!",
    "target_language_code": "bn-IN",
    "speaker": "anushka"
  }'
```

```python
from sarvamai import SarvamAI

client = SarvamAI(
    api_subscription_key="YOUR_SARVAM_API_KEY",
)

response = client.text.translate(
    input="Hello, how are you?",
    source_language_code="auto",
    target_language_code="hi-IN",
    speaker_gender="Male"
)

print(response)
```

```javascript
import { SarvamAIClient } from "sarvamai";

const client = new SarvamAIClient({
    apiSubscriptionKey: "YOUR_SARVAM_API_KEY"
});

const response = await client.text.translate({
    input: "Hello, how are you?",
    source_language_code: "auto",
    target_language_code: "hi-IN",
    speaker_gender: "Male"
});

console.log(response);
```

```bash
curl -X POST https://api.sarvam.ai/translate \
  -H "api-subscription-key: <YOUR_SARVAM_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "input",
    "source_language_code": "auto",
    "target_language_code": "en-IN"
  }'
```

```python
from sarvamai import SarvamAI

client = SarvamAI(
    api_subscription_key="YOUR_SARVAM_API_KEY"
)

response = client.chat.completions(
    model="sarvam-105b",
    messages=[
        {"role": "user", "content": "Hey, what is the capital of India?"}
    ],
)

print(response)
```

```javascript
import { SarvamAIClient } from "sarvamai";

// Initialize the SarvamAI client with your API key
const client = new SarvamAIClient({
    apiSubscriptionKey: "YOUR_SARVAM_API_KEY"
});

async function main() {
    const response = await client.chat.completions({
        model: "sarvam-105b",
        messages: [
            {
                role: "user",
                content: "What is the capital of India?"
            }
        ]
    });
    console.log(response.choices[0].message.content);
}

main();
```

```bash
curl -X POST https://api.sarvam.ai/v1/chat/completions \
  -H "Authorization: Bearer $SARVAM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sarvam-105b",
    "messages": [
      {
        "role": "user",
        "content": "What is the capital of India?"
      }
    ]
  }'
```

## Next Steps

Explore Sarvam AI's specialized [Models](/api-reference-docs/getting-started/models) for Indian languages - from speech processing to text generation and translation.

Discover our comprehensive [API Capabilities](/api-reference-docs/introduction) for speech technologies, text processing, and analytics.

Browse our [Cookbook](/api-reference-docs/cookbook) for some inspiration and step-by-step tutorials.

Join our [Discord community](https://discord.com/invite/5rAsykttcs) for support, discussions, and updates.