voyage-4-large API: toman pricing and code
mongodb/voyage-4-large
You are billed for the usage the request actually reported. Prices follow the market.Pricing and top-ups
voyage-4-large example: embeddings for semantic search
The example is picked from this model's own capabilities. Drop in your key and it runs as is.
curl https://api.uttapen.ir/v1/embeddings \
-H "Authorization: Bearer sk-up-…" \
-H "Content-Type: application/json" \
-d '{
"model": "mongodb/voyage-4-large",
"input": ["How long is the electric kettle warranty?", "Warranty period for kitchen appliances"]
}'from openai import OpenAI
import numpy as np
client = OpenAI(base_url="https://api.uttapen.ir/v1", api_key="sk-up-…")
docs = ["The electric kettle warranty is 18 months.", "Orders ship within 48 hours."]
question = "How long is the kettle guaranteed for?"
vecs = client.embeddings.create(model="mongodb/voyage-4-large", input=docs + [question]).data
M = np.array([v.embedding for v in vecs])
M /= np.linalg.norm(M, axis=1, keepdims=True)
scores = M[:-1] @ M[-1]
print(docs[int(scores.argmax())])import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.uttapen.ir/v1", apiKey: "sk-up-…" });
const docs = ["The electric kettle warranty is 18 months.", "Orders ship within 48 hours."];
const { data } = await client.embeddings.create({ model: "mongodb/voyage-4-large", input: [...docs, "How long is the kettle guaranteed for?"] });
const norm = (v) => { const n = Math.hypot(...v); return v.map((x) => x / n); };
const vecs = data.map((d) => norm(d.embedding));
const q = vecs.at(-1);
const dot = (a, b) => a.reduce((s, x, i) => s + x * b[i], 0);
const best = vecs.slice(0, -1).map((v, i) => [dot(v, q), i]).sort((a, b) => b[0] - a[0])[0][1];
console.log(docs[best]);What is voyage-4-large good for?
"mongodb/
It is multilingual, which matters for Persian text; still, measure it on a few dozen real questions against your own documents before committing.
Only input tokens are billed. Indexing a thousand 500-token documents (500k tokens) costs about 20,773.16 toman here; the vectors are built once and afterwards only queries cost anything. For an alternative at a similar price, look at Embed 5 Pro from Cohere.
voyage-4-large is a state-of-the-art general-purpose and multilingual embedding optimized for retrieval quality. Enabled by Matryoshka learning and quantization-aware training, voyage-4-large supports embeddings voyage-4-large here: [mongodb.com/products/platform/ai-search-and-retrieval/models](https://www.mongodb.com/products/platform/ai-search-and-retrieval/models?utm_source=this platform&utm_medium=referral)
Three real jobs, priced on this model
Each figure is derived from the prices above and moves when they do.
| Job | Tokens | Cost |
|---|---|---|
| One user search query | 30 in | 1.25 toman |
| Indexing 10,000 product titles | 300,000 in | 12,463.90 toman |
| Indexing 1,000 documents of 500 tokens | 500,000 in | 20,773.16 toman |
Frequently asked
- How do I get vectors from voyage-4-large?
- Create an API key, point the official OpenAI SDK's base_url at https:/
/ api.uttapen.ir/ v1 and call client.embeddings.create with model "mongodb/ voyage-4-large" and an input string or list of strings. Each input comes back as one vector in data. - What does voyage-4-large cost in toman?
- 41,546 toman per 1M input tokens, and output is free. You pay for the input tokens the request reported; a failed request costs nothing.
- Can I use voyage-4-large for chat?
- No. An embedding model writes no text, so chat/
completions with it returns 400. For RAG, build the vectors here and let a chat model write the answer.