BGE M3 API
BGE M3 embeds text in more than 100 languages for multilingual search and RAG, from $0.009.
- 1024 dim vectors
- MTEB mean 59.56
- 8K token inputs
- MIT licensed weights
from openai import OpenAI
client = OpenAI(
base_url="https://api.modelsheep.com",
api_key=API_KEY_MODELSHEEP,
)
response = client.embeddings.create(
model="BAAI/bge-m3",
input="The quick brown fox jumps over the lazy dog.",
)
print(response.data[0].embedding)How to use the BGE M3 API
- 1
Create a ModelSheep account and copy an API key from the dashboard.
- 2
Point the OpenAI SDK at
https://api.modelsheep.comand set the model toBAAI/bge-m3. - 3
Call
/embeddingswith your text and nodimensionsargument, which this model rejects, and the answer is one vector of 1024 values.
What BGE M3 is
BGE M3 is a multilingual embedding model from BAAI, built on the XLM-RoBERTa backbone. Its model card lists more than 100 working languages and inputs up to 8K tokens, where the English BGE v1.5 models before it stop at 512. One pass produces three representations: a dense vector, lexical weights for sparse matching, and ColBERT vectors for late interaction. The MTEB figure on this page comes from a leaderboard snapshot of 24 May 2025, because the live leaderboard publishes no mean for BGE M3.
What it does well
- Matches a query in one language against passages in another, across the languages the card lists.
- Embeds a full report up to 8K tokens. A long document needs no chunking first.
- Indexes a corpus without a query prefix. BGE M3 drops the instruction that earlier BGE models need.
What it is not for
- Hybrid indexes off one call. The endpoint returns the dense vector. The lexical weights and the ColBERT vectors need the FlagEmbedding library or the vLLM pooling API.
- Top of the leaderboard work. Newer embedding models in this catalogue post a higher MTEB mean.
Calling it
Post to /embeddings with the model string BAAI/bge-m3. Do not send a dimensions argument. BGE M3 is not a Matryoshka model, so the server rejects the request, and every vector comes back 1024 values wide.
BAAI/bge-m3 /embeddings
SDKs and languages
BGE M3 answers on an HTTP endpoint, so any language that can post JSON reaches it. These are the ones the box above writes out.
- OpenAI SDK
- PythonTypeScriptGoJavaC#PHPRust
- HTTP
- cURLPythonTypeScriptGoRustJavaC#PHP
Specifications
| Author | BAAI |
|---|---|
| Category | embedding |
| Accepts | text |
| Returns | vector |
| Total parameters | 0.568B |
| Active parameters | dense, all of them |
| Score | 59.56 on MTEB multilingual v2 |
| Languages | 100+BAAI writes "more than 100 working languages" and warns that its training data is unbalanced across them, so quality differs. |
| Precision served | FP8 |
| Context | 8K tokens |
| Vector | 1024 dimensions |
| License | MIT |
Price
Input
$0.009
per million tokens
Output
n/a
this model returns a vector
Against OpenRouter
10%
below the cheapest of 1 provider
The cheapest OpenRouter price for this model was $0.010 in and n/a out, with a median of $0.010 and n/a across the comparable providers. Read on 2026-09-17.
License
MIT covers the weights. You can use, change and redistribute them in a commercial product, and no vendor terms sit on top.
Similar models
- Parameters
- 7.953B
- Context
- 33K
- Vector
- 4096
- Input per 1M
- $0.031
- Output per 1M
- n/a
- License
- OpenMDW 1.1
- Parameters
- 0.308B
- Context
- 2K
- Vector
- 768
- Input per 1M
- $0.001
- Output per 1M
- n/a
- License
- Gemma
- Parameters
- 0.6B
- Context
- 33K
- Vector
- 1024
- Input per 1M
- $0.004
- Output per 1M
- n/a
- License
- Apache 2.0
Start using BGE M3
Point the OpenAI SDK at api.modelsheep.com. Your prompts stay in Germany, and nothing is retained.