embed
One dense vector per input.
embed capability.embed/sparse
A learned-sparse term→weight vector (SPLADE).
sparseEmbed capability.embed/multi
A matrix of per-token/per-patch vectors (ColBERT/ColPali).
multiVector.embed — dense
Gated by embed. One vector per input, in order.
(string | Content)[]
required
Bare strings or Content blocks.
A text-only server accepts only strings; a multimodal server that advertises
embed.modalities also accepts image/audio blocks."query" | "document"
Lets asymmetric encoders (e5/BGE query vs passage prefixes) select the right
pooling.
float[][]
One vector per input, in the same order.
For backward compatibility a server MUST also accept the legacy field name
texts as a synonym for inputs. Requests SHOULD respect embed.batchLimit.Compact wire encoding (f32-base64)
JSON numbers are a poor carrier for embeddings: a 1000×1024 float32 batch is
~10–20 MB as decimal text but only ~4 MB as raw bytes. A server that advertises
it lets a client opt into a binary encoding per request (spec §7.3.1):
json— an array of JSON numbers. Always supported; the default and fallback, so a client that ignores this feature is never broken.f32-base64— the vector as little-endian IEEE-754binary32, concatenated and base64-encoded (RFC 4648 §4, with padding). Byte order is little-endian regardless of host, so the wire is reproducible across platforms.
"encoding": "f32-base64"; the server MUST echo the encoding
it used and MUST NOT use one the client did not request. Requesting an
unadvertised encoding is -32005 (OptionUnsupported).
Response (f32-base64)
embed/sparse — learned-sparse
Gated by sparseEmbed. Each entry is a sparse vector over the model
vocabulary (SPLADE-style term weights).
object[]
One entry per input.
indices are vocabulary ids; values are the learned
term weights. Search these with an inverted index.embed/multi — multi-vector (late interaction)
Gated by multiVector. Each input yields a matrix of token- (ColBERT) or
patch- (ColPali/ColQwen) level embeddings for late-interaction scoring.
rerank method:"colbert". Servers SHOULD advertise
multiVector.similarity. Visual-document servers advertise
multiVector.modalities:["image"] and accept rendered pages as image Content
blocks — each page yields one patch matrix.