Gemini Embedding 2 API: toman pricing and code
google/gemini-embedding-2
You are billed for the usage the request actually reported. Prices follow the market. Per input image: 0.16 toman.Pricing and top-ups
Gemini Embedding 2 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": "google/gemini-embedding-2",
"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="google/gemini-embedding-2", 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: "google/gemini-embedding-2", 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 Gemini Embedding 2 good for?
Gemini Embedding 2 is an embedding model from Google: it turns text into a vector rather than writing a reply. Call it as "google/
Besides text it takes image, file, audio, video input and places everything in one vector space, so a text query can search images. 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 34,621.94 toman here; the vectors are built once and afterwards only queries cost anything. For an alternative at a similar price, look at Codestral Embed 2505 from Mistral.
Gemini Embedding 2 is Google's first multimodal embedding model. We currently support mapping text and images into a unified vector space for semantic search and retrieval-augmented generation (RAG). It supports...
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 | 2.08 toman |
| Indexing 10,000 product titles | 300,000 in | 20,773.16 toman |
| Indexing 1,000 documents of 500 tokens | 500,000 in | 34,621.94 toman |
Frequently asked
- How do I get vectors from Gemini Embedding 2?
- 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 "google/ gemini-embedding-2" and an input string or list of strings. Each input comes back as one vector in data. - What does Gemini Embedding 2 cost in toman?
- 69,244 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 Gemini Embedding 2 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.