---
title: "bge-m3 API hosted in the EU: multilingual embeddings"
description: "Run bge-m3 on inference.eu: a compact multilingual embedding model for search and RAG, 100+ languages and 8192-token inputs, processed in the EU."
canonical: "https://inference.eu/models/bge-m3/"
language: "en"
---

Embeddings · BAAI (Beijing Academy of Artificial Intelligence)

# Run bge-m3 embeddings in the EU through an OpenAI-compatible API

bge-m3 is one of the most widely used open embedding models for multilingual search and retrieval-augmented generation. It is small, supports more than 100 languages and reads inputs of up to 8192 tokens. On inference.eu you call it through the OpenAI embeddings format, with your documents processed in EU data centres and never used for training.

[Contact sales](https://inference.eu/contact/)[Example request](#example)

1.  01568M
2.  02EU data centres
3.  03MIT

## What bge-m3 is

bge-m3 was released in January 2024 by the Beijing Academy of Artificial Intelligence (BAAI) under the MIT licence. The M3 stands for multi-functionality, multi-linguality and multi-granularity. It is based on XLM-RoBERTa, with 24 layers, about 568 million parameters and 1024-dimension dense vectors.

The model can produce three kinds of output from one pass: dense embeddings, sparse lexical weights similar to BM25, and multi-vector ColBERT-style representations. It supports more than 100 working languages and handles inputs from short sentences to long documents of up to 8192 tokens. It is the base model of the bge-reranker-v2-m3 reranker.

## What it does well, and where it falls short

bge-m3 is a strong, cheap default for multilingual retrieval. Its small size makes embedding millions of documents affordable, its 1024-dimension vectors keep indexes compact, and it works well across European languages and in cross-lingual search, such as a German query finding an English document. It has broad support in vector databases and RAG frameworks.

Its limits come from its age and size. Newer and much larger models such as Qwen3 Embedding 8B usually retrieve better on hard queries and read longer inputs. bge-m3 has a fixed vector size and does not take task instructions. For the best ranking quality, combine it with a reranker such as bge-reranker-v2-m3.

## Calling bge-m3 through the API

inference.eu uses the OpenAI request format, so any OpenAI SDK, LangChain, LlamaIndex or vector database integration that calls `/v1/embeddings` works unchanged. Set the base URL to the inference.eu API, use your inference.eu key and set the model to `bge-m3`.

Pass a string or a list of strings as `input` and you receive the dense 1024-dimension vector for each. Unlike some embedding models, bge-m3 needs no query prefix or instruction: queries and documents are embedded the same way. Batch documents in one request when indexing a corpus, and use the same model string for queries so that vectors stay comparable.

## Data residency for bge-m3

Indexing a knowledge base means sending the full text of your documents to the embedding model. On inference.eu, bge-m3 runs on infrastructure in the European Union, so contracts, tickets, wiki pages and customer records are processed in EU data centres, are not sent to China and are never used to train any model.

Every customer receives a data processing agreement under Article 28 of the GDPR and our subprocessor list, which helps you document your search or RAG pipeline in your records of processing. Billing is in euros, on one invoice with the chat models that use the retrieved passages. The MIT licence allows commercial use with few conditions.

## BGE-M3

Maker

BAAI (Beijing Academy of Artificial Intelligence)

Made in

China

Type

Embeddings

Parameters

568M

Context window

8,192 tokens

Licence

[MIT](https://opensource.org/license/mit)

Released

January 2024

Model ID

bge-m3

Processing

EU data centres

Training on your data

Never

Source

[huggingface.co](https://huggingface.co/BAAI/bge-m3)

bge-m3 · Python

```
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.inference.eu/v1", api_key=os.environ["INFERENCE_EU_API_KEY"])

result = client.embeddings.create(
    model="bge-m3",
    input=["Where is my data processed?"],
)
print(len(result.data[0].embedding))
```

## What teams use it for

-   1

    ### Multilingual RAG

    Index documents in several European languages and retrieve the right passages for a chat model, whatever language the user writes in.

-   2

    ### Large-scale semantic search

    Embed millions of documents at low compute cost and keep the index compact with 1024-dimension vectors.

-   3

    ### Deduplication and clustering

    Find near-duplicate records, group similar tickets or cluster feedback by topic across languages.

## BGE-M3: common questions

The questions buyers, developers and legal teams ask us most. Something missing? Ask us directly.

Compliance depends on how you process data. On inference.eu, bge-m3 requests are processed in EU data centres, not used for training and covered by a data processing agreement under Article 28 GDPR with a published subprocessor list. Your documents are not sent to the model's maker.

bge-m3 accepts inputs of up to 8192 tokens, from short sentences to long documents. For RAG, shorter chunks of a few hundred tokens often retrieve more precisely, but the long limit means whole sections can be embedded when that suits your data.

The dense embeddings have 1024 dimensions. That is compact compared with many newer models, which keeps storage costs and search times low in vector databases. The size is fixed: bge-m3 does not offer shorter vectors on request.

Yes. bge-m3 is released under the MIT licence, one of the most permissive open-source licences. It allows commercial use, modification and redistribution, with the main condition that the licence notice is kept when you redistribute the weights.

BAAI states support for more than 100 working languages, inherited from XLM-RoBERTa and extended in training. That includes German, French, Spanish, Italian, Dutch, Polish and other European languages, with good cross-lingual retrieval between them.

No. Unlike e5 or Qwen3 embedding models, bge-m3 does not use instructions or prefixes. You embed queries and documents in the same way, which keeps integration simple and avoids mistakes from missing or inconsistent prefixes.

Besides dense vectors, bge-m3 can output sparse lexical weights, similar to keyword search, and multi-vector ColBERT representations for finer matching. Combining them can improve accuracy. Through the OpenAI-format embeddings endpoint you receive the dense vectors, which suit most search and RAG setups.

Qwen3 Embedding 8B is about fourteen times larger, reads 32K tokens and supports flexible dimensions and instructions, so it usually retrieves better on hard queries. bge-m3 is far cheaper to run on large corpora and remains a solid default. Test both on your data.

bge-m3 is an open model from BAAI. On inference.eu its weights run in EU data centres, so your documents never go to China or to BAAI. An embedding model returns only vectors, not generated text, which limits concerns about content bias.

For precise answers, yes. A common setup retrieves the top 50 to 100 candidates with bge-m3, then reorders them with bge-reranker-v2-m3, which reads query and passage together. Both run on inference.eu with the same API key.

[Ask a question](https://inference.eu/contact/)

## Related

[All models](https://inference.eu/models/#directory)

-   [BGE Reranker v2 M3Run bge-reranker-v2-m3 on inference.eu: a light multilingual reranker that sorts search and RAG results by relevance, processed in the EU.Reranking](https://inference.eu/models/bge-reranker-v2-m3/)
-   [Qwen3 Embedding 8BRun Qwen3 Embedding 8B on inference.eu: multilingual text embeddings for search and RAG, up to 4096 dimensions and 32K tokens, processed in the EU.Embeddings](https://inference.eu/models/qwen3-embedding-8b/)
-   [multilingual-e5-large-instructRun multilingual-e5-large-instruct on inference.eu: compact embeddings in 100 languages for search, RAG and classification, processed in the EU.Embeddings](https://inference.eu/models/multilingual-e5-large-instruct/)

## Move your AI workloads to EU infrastructure

Tell us which models you use and roughly how much traffic you have. We reply within one working day with pricing and next steps.

-   Reply within one working day
-   Pricing for your volume
-   DPA ready to sign
