If your users write in Tamil, Marathi or Hinglish, the model you pick changes both quality and your bill. Sarvam is an Indian provider whose API bundles chat, speech, translation and document models with prices in rupees. This guide covers what the API offers, what it costs, how to send a first request, and a cost sketch you can rerun with your own numbers.
I read Sarvam's docs and pricing pages on 2026-10-16. I did not have an API key in this session, so I did not call the API and I ran no quality tests. The code that talks to the API below is untested. The cost script I did run.
What does the Sarvam AI API include?
From the docs home page on 2026-10-16:
| Area | Product named on the page | Notes from the page |
|---|---|---|
| Chat | Sarvam-105B | Flagship, 128K context |
| Chat | Gemma 4, GLM 5.3, DeepSeek V4.1 Flash | Third-party models served through the same API |
| Speech to text | Saaras v3 | 23 languages (22 Indian plus English) |
| Text to speech | Bulbul v3, Bulbul V4 | Bulbul v3 listed as end of life on Voice Agents on November 10, 2026, with V4 as replacement |
| Translation | Mayura, Document Translation | Mayura covers 11 languages (10 Indian plus English) |
| Document AI | Sarvam Vision, Doc Agents | OCR and structured extraction, 23 languages |
| Beta | Dubbing, Instant Voice Cloning | Cloning lists 13 Indian languages |
| Agent platforms | Voice Agents, Cowork, Coding Agents | Voice Agents from Rs 3 per minute |
Two details matter when you plan. Language coverage differs per product, so "22 languages" is not a promise for every endpoint. And the lineup moves: the page already carries an end-of-life date for one voice model.
How much does the Sarvam API cost?
The pricing page lists pay as you go at Rs 0 per month, then paid plans (Pro Rs 2,000, Growth Rs 10,000, Business Rs 50,000 per month). Free credits for new sign-ups exist, are described as universal across APIs, non-expiring and non-refundable, but the amount was not on the page. These are the pay-as-you-go prices I read:
| Service | Unit | Pay as you go |
|---|---|---|
| Sarvam 105B (input / cached / output) | per 1M tokens | Rs 15 / 5 / 60 |
| Gemma 4 | per 1M tokens | Rs 35 / 10 / 90 |
| GLM 5.3 Flash | per 1M tokens | Rs 13.50 / 2.50 / 45 |
| DeepSeek V4.1 Flash | per 1M tokens | Rs 25 / 0.50 / 105 |
| Speech to text, real-time or batch | per minute | Rs 0.49 |
| Bulbul V4 Flash text to speech | per 1,000 characters | Rs 2.00 |
| Translate | per 1,000 characters | Rs 2.00 |
| Document translation | per 1,000 characters | Rs 5.00 |
Prices change. Treat this table as a snapshot and re-read the pricing page before you quote a client.
How do you make a first chat request?
The docs list base URL https://api.sarvam.ai. The chat endpoint reference lists POST /v1/chat/completions with models sarvam-105b (128K context) and sarvam-105b-conversations (32K context). It lists both api-subscription-key and Authorization: Bearer as headers, while the authentication page says the first is recommended and Bearer also works. Sending both is the safe choice.
# UNTESTED: I had no API key. Fields follow the chat reference read on 2026-10-16.
import os
import requests
resp = requests.post(
"https://api.sarvam.ai/v1/chat/completions",
headers={
"api-subscription-key": os.environ["SARVAM_API_KEY"],
"Authorization": f"Bearer {os.environ['SARVAM_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "sarvam-105b",
"messages": [
{"role": "user", "content": "Say hi in one word"},
],
"max_tokens": 256,
},
timeout=60,
)
print(resp.status_code, resp.json())
Things the docs say that will save you an hour:
- A bad or missing key returns 403, not 401. Look at
error.codeforinvalid_api_key_error. - Other documented errors on the newer chat endpoint: 404 unknown model ID, 413 body over 10 MB, 429 rate limit, and 502 or 503 which the docs say to retry with backoff.
max_tokensdefaults to 2048 and, on the v2 reference, includes reasoning tokens. A reasoning-heavy answer can eat the whole budget and returnfinish_reason: length.reasoning_efforttakeslow,highormax. The two chat references I read disagree on the default (one saysmax, the othermedium), so set it explicitly.- There is also a
/v2/chat/completionsendpoint listed as requiring beta access, with model IDssarvam-105b,glm5.3,gemma4anddeepseekv4.1-flash. Model IDs are case-sensitive.
What does a conversation actually cost?
Token prices are hard to feel, so here is a script that turns them into rupees per 1,000 chats. The prices come from the table above. The workload (3,000 input and 400 output tokens per conversation, no caching) is my assumption, not a measurement. Replace it with your own logs.
CHAT = {
"Sarvam 105B": (15.00, 5.00, 60.00),
"Gemma 4": (35.00, 10.00, 90.00),
"GLM 5.3 Flash": (13.50, 2.50, 45.00),
"DeepSeek V4.1 Flash": (25.00, 0.50, 105.00),
}
def chat_cost(model, in_tok, out_tok):
i, _, o = CHAT[model]
return in_tok / 1e6 * i + out_tok / 1e6 * o
Output when I ran it on 2026-10-16:
Text chat, per conversation (3000 in / 400 out tokens, no caching):
Sarvam 105B Rs 0.0690 -> Rs 69.00 per 1,000 chats
Gemma 4 Rs 0.1410 -> Rs 141.00 per 1,000 chats
GLM 5.3 Flash Rs 0.0585 -> Rs 58.50 per 1,000 chats
DeepSeek V4.1 Flash Rs 0.1170 -> Rs 117.00 per 1,000 chats
So under that assumed workload the model choice moves the bill by about 2.4x between cheapest and dearest. It does not tell you which answers are better.
For voice, the same method on one assumed exchange (one minute of caller audio, 600 characters spoken back, 1,500 input and 200 output tokens on Sarvam 105B):
One voice exchange (assumed: 1 min audio in, 600 chars out, 1500/200 tokens):
STT Rs 0.490 + LLM Rs 0.035 + TTS Rs 1.200 = Rs 1.724
share of total: STT 28%, LLM 2%, TTS 70%
The useful finding is the shape, not the total: in that setup speech, not the language model, is where the money goes. If you cut cost, shorten spoken replies before you shop for a cheaper chat model. For a full voice cost model with telephony, see the voice agent cost per minute calculator.
Should you pick Sarvam for Indian language work?
Decide with a test, not a headline. A fair test takes an afternoon:
- Collect 30 real user messages in your languages, including code-mixed ones.
- Run each through two or three candidate models with the same system prompt.
- Have a native speaker score fluency, correctness and tone blind.
- Log tokens used per answer and compute cost per good answer.
Tokenisation is part of this. Indic scripts can cost more tokens per word on some tokenizers, which I measured for several vendors in tokenizer cost for Hindi, Tamil and Bengali. Prompting tips for these languages are in prompting in Hindi and Indian languages and the Hinglish prompting guide. If you are building phone agents, the architecture guide for India shows where STT, LLM and TTS sit.
What I could not verify
- Live API behaviour, latency and quality: no key, no calls.
- The free credit amount and the exact rate limits per plan.
- Whether Sarvam's own models are open-weight. Press coverage disagrees, so check the official model pages.
- Any independent benchmark. I found none from a primary source and give none.



