Gemini Embedding 2 API: toman pricing and code

google/gemini-embedding-2

Image inputFile inputAudio inputEmbeddings
Input · per 1M tokens
69,244 toman
Output
Vector · not billed
Embedding 1,000 words ≈
90.02 toman

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/gemini-embedding-2" on POST /v1/embeddings — it does not answer chat requests. Each input can hold up to 8,192 tokens, so large chunks embed without being cut. Of the 35 paid embedding models in the catalogue, 32 cost less per input token.

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.

Provider's own description

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.

JobTokensCost
One user search query30 in2.08 toman
Indexing 10,000 product titles300,000 in20,773.16 toman
Indexing 1,000 documents of 500 tokens500,000 in34,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.