All models

Google

EmbeddingGemma 2

About

EmbeddingGemma 2 is a 740M open-weight model from Google. Multimodal embeddings: text, images, video, audio, and PDF pages in one 768-d space. It accepts text, images, documents, and video. Context window is 8K. Released September 14, 2026.

  • Parameters

    740M

    Published parameter count.

  • Context window

    8K

    Tokens of context on a request.

  • License

    Apache-2.0

    License on the weights.

Pricing

Token rates are US dollars per 1M tokens. Image rates are per 1K images. Audio rates are per 1M audio seconds.

RatePrice
Input / 1M$0.01
Cached input / 1M$0.01
Output / 1M$0

Compare

EmbeddingGemma 2 is the smallest embedding model here, at 740M, and the one that accepts documents.

ModelWhat it doesPriceParametersContext
EmbeddingGemma 2Multimodal embeddings: text, images, video, audio, and PDF pages in one 768-d space.$0.01 / 1M input740M8K
Qwen3-VL Embedding 2BMultimodal embedding model for text, image, and video inputs.$0.02 / 1M input2B8K

Benchmarks

Published scores for EmbeddingGemma 2, from the EmbeddingGemma 2 model card. MMEB v2, full 768-d vectors.

Evals
ReadingExample
QualitativeClear structure, grounded in the input
QuantitativeMMEB image: 57.28.
Cost and performanceLower listed rate, mid-pack latency

Methods

Methods this model serves. Payload shapes are in the docs.

MethodReturns
embedAn embedding vector

Supported inputs

  • textYes

    A string, an array of strings, or text content parts. About 32 kB per input.

  • image_urlYes

    280 tokens an image, so up to 29 in one input.

  • video_urlYes

    8 frames sampled per part, at 140 tokens a frame.

  • audio_url, input_audioYes

    One clip per input, up to 327 seconds, resampled to 16 kHz mono.

  • document_urlYes

    One PDF per input, up to 28 pages at 280 tokens a page. Select pages with document_pages. The pages pool into one vector.

  • Served over POST /v1/openai/embeddings. Only method: embed.
  • Parts interleave in one input and share one 8,192-token window. One vector per input item; up to 512 items a request. Over a cap is a 400, never a truncation.
  • The response model carries the modality that ran, for example google/embeddinggemma-2:image.
  • Weights: google/embeddinggemma-2, 740M parameters. Alias: embeddinggemma-2.

Parameters

ParameterDefaultDescription
dimensions768768, 512, 256, or 128. The shorter vector is re-normalized. Any other value is a 400.
prompt_nameClassificationTask prefix for text. See Task prefixes. An unknown name is a 400.
encoding_formatfloatfloat or base64 (little-endian float32).
document_pagesallPages of a document_url part to read: indices, or [start, stop] ranges.
document_max_pages28Pages one document may add to an input.

Task prefixes

The model is trained with a short prefix on text inputs. The wrong prefix still returns a vector, at lower precision, so pick the one that matches the task. Asymmetric tasks use one prefix for queries and Document for the corpus. Symmetric tasks use the same prefix on both sides.

prompt_nameTaskPair with
SearchQueryWeb and document searchDocument
QuestionAnsweringQuestion answeringDocument
FactCheckingFact checkingDocument
CodeRetrievalCode searchDocument
ClassificationText classification (default)itself
ClusteringClusteringitself
SentenceSimilaritySemantic similarityitself
from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.vlm.run/v1/openai",
    api_key="<VLMRUN_API_KEY>",
)

query = client.embeddings.create(
    model="google/embeddinggemma-2",
    input="What causes the northern lights?",
    dimensions=256,
    extra_body={"prompt_name": "SearchQuery"},
)
docs = client.embeddings.create(
    model="google/embeddinggemma-2",
    input=["The northern lights are caused by charged particles from the sun."],
    dimensions=256,
    extra_body={"prompt_name": "Document"},
)

Note

Queries and documents must share one dimensions value. A 256-d query cannot be scored against a 768-d index.

Multimodal inputs

A flat list of parts is one input and returns one vector. Wrap several lists in an outer list for a batch.

from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.vlm.run/v1/openai",
    api_key="<VLMRUN_API_KEY>",
)

response = client.embeddings.create(
    model="google/embeddinggemma-2",
    input=[
        {"type": "text", "text": "Invoice from Tampa Aquarium"},
        {"type": "image_url", "image_url": {"url": "https://storage.googleapis.com/vlm-data-public-prod/hub/examples/document.invoice/invoice_1.jpg"}},
    ],
)

For one vector per page, send one request per page: document_pages applies to the whole request.

Estimate cost

Estimate. A page is 2,500 input tokens and 1,000 output tokens. An hour of video is 15 frames a minute at 256 tokens a frame, plus the audio in that request, and 500 output tokens a minute.

$3.48

Quick start

Call this model on the OpenAI-compatible gateway. The model id is already filled in.

from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.vlm.run/v1/openai",
    api_key="<VLMRUN_API_KEY>",
)

response = client.embeddings.create(
    model="google/embeddinggemma-2",
    input="Extract a vector representation for this text.",
)

print(len(response.data[0].embedding))

Response

The OpenAI shape, plus served_model_id, backend, and usage.cost. Media bills as tokens at the input rate:

{
  "id": "embd-f50f90d2775943d498d0dbdcd841102",
  "object": "list",
  "created": 1791808430,
  "model": "google/embeddinggemma-2:text",
  "served_model_id": "google/embeddinggemma-2",
  "backend": "sentence-transformers",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [
        0.01708984375,
        -0.003997802734375,
        0.056640625,
        -0.0264892578125
      ]
    }
  ],
  "usage": {
    "prompt_tokens": 13,
    "total_tokens": 13,
    "cost": 0.0
  }
}

Get an API key. Ship vision today.