Embedding models determine what your retrieval system can actually retrieve — they compress each input into a vector, making related items closer to each other, and thus enabling semantic rather than literal search. For this reason, choosing the right model is always a different challenge for RAG, multilingual archives, code repositories, and image-text collections. On September 11, OpenRouter verified its own embedding model directory, which includes 37 entries, and conducted batch requests through the embeddings API to 19 models, performing 28 checks using an actual test guide that lays out the selection logic.

The most practical conclusion is to choose candidates based on scenarios. English RAG should start with openai/text-embedding-3-small by default, as it has low cost, 8192 token context, and adjustable dimensions; when the input exceeds 8192 tokens, or when switching between different levels of Voyage4 without rebuilding the index, test voyage-4-large, which provides 32000 token context and four optional dimensions, and is compatible with other Voyage4 level vectors. If you want an open-weight alternative, qwen3-embedding-8b offers a longer context window and lower prompt cost. Multilingual retrieval is handled by qwen3-embedding-8b (open weights, supports over 100 languages), code search uses voyage-code-4, and text plus image retrieval should choose google/gemini-embedding-2 or voyage-multimodal-3.5. The cheapest in paid texts is perplexity/pplx-embed-v1-0.6b, costing only $0.004 per million input tokens; the free text routes nvidia/nemotron-3-embed-1b:free comes with a 32768 token context.

image.png

Putting the contenders in one table makes differences obvious. text-embedding-3-small is text-based, with 8192 context, 1536 dimensions, costs $0.02 per million tokens, and is closed-source; 3-large has the same 8192 context but 3072 dimensions and costs $0.13. The Voyage4 family is consistent: lite, standard, large, code-4, multimodal-3.5 all have 32000 context, 1024 dimensions, and prices range from $0.02 to $0.12, all closed-source. Qwen3Embedding8B is text-based, with 32768 context, 4096 dimensions, costs only $0.01 per million tokens, and is open-weighted; the 4B version has 2560 dimensions and costs $0.02. Perplexity's 0.6B and 4B are 1024 dimensions at $0.004 and 2560 dimensions at $0.03, both open. Gemini Embedding2 covers text and images, 8192 context, 3072 dimensions, costs $0.20 per million text tokens and $0.45 per million image tokens, closed-source; NVIDIA's free route has 32768 context, 2048 dimensions, and covers 34 languages. There are also alternatives like bge-m3, mistral-embed, codestral-embed in the directory, but the guide focuses mainly on the above ones.

The testing methods are worth mentioning. OpenRouter sent batch requests with two strings to 19 models, covering bulk inputs, configurable dimensions, image inputs, text plus image, and error handling, performing 28 checks. 16 paid models returned a vector for every input. The dimensions parameter worked on OpenAI3Small, Gemini2, and Voyage4Large, for example, setting the value to 256 or 512 would return vectors of corresponding lengths. Requests to non-existent models resulted in a 400 error indicating the model does not exist. However, it's important to draw clear boundaries: these tests confirm request and response behavior, not retrieval quality, and response time was excluded because each model's service conditions vary. Three free routes returned 404 in the test account because the account's privacy settings disabled allowing providers to use free model prompt training — this actually reminds developers that free switches, workspace barriers, or provider.data_collection set to deny will directly result in 404 errors.

Regarding specific scenarios, the default for English RAG is 1536 dimensions of Small, half of Large. Initial evaluation keeps the default, and only consider reducing when storage or search costs become a bottleneck. Using dimensions=256 can further reduce the vector size, but may affect retrieval quality, so it's essential to test before changing the existing index. The Voyage4 series supports four dimension levels: 256, 512, 1024, 2048, and the official statement says that 4-series vectors are compatible with each other, so no need to rebuild the index when switching. For multilingual tasks, Qwen3Embedding8B defaults to 4096 dimensions, with a MTEB multilingual score of 70.58 reported by the vendor; the 4B version has 2560 dimensions and is more resource-efficient. bge-m3 is the second open multilingual option, with 8192 context and 1024 dimensions. Code search should prioritize voyage-code-4, while codestral-embed-2505 can be used as a comparison. CoIR benchmarks can help with horizontal comparisons. In text and image retrieval, Gemini Embedding2 places both types of input into the same vector space. A 64x64 PNG counts as 258 tokens, costing $0.000128; voyage-multimodal-3.5 also validated, where a 64x64 PNG counts as 89 tokens, costing $0.00003, but their vector spaces differ, so a choice must be made before building the index.

On the evaluation side, OpenRouter's advice is very cautious: using the same corpus, queries, relevance labels, chunking, and metrics, only changing the model, keeping everything else fixed, so results can be compared. For English RAG, start with chunks of 512 to 1024 tokens, measuring the ranking when multiple blocks are relevant using nDCG. For multilingual tasks, report separately by language to avoid average numbers masking weaknesses. For code search, map issue descriptions to the files and chunks that solve them. Storage costs should also be considered: 1 million 4096-dimensional float32 vectors take about 16.4 GB, and 1 million 1024-dimensional vectors take about 4.1 GB. The formula is number of vectors multiplied by dimensions multiplied by bytes per value; selecting the smallest dimension that meets the goal is the most cost-effective.

Finally, there's a strict rule: vectors from different model families do not share the same coordinate space. An index built with 3-small must use it to generate query vectors; mixing them will result in unreliable outcomes. Gemini2 and 001 are also in different spaces, so switching requires rebuilding. The only documented exception is compatibility within the Voyage4 family, so check the retrieval quality on samples before switching dimensions. When deploying, remember to store the model slug, output dimensions, prompt format, and creation date along with the index metadata, making it easy to verify configurations later. As for common questions — changing models usually requires re-embedding the entire corpus, the fastest model doesn't run latency benchmarks, ada-002 is no longer the default for new indexes, and if free routes return 404, check privacy settings — the guide gives straightforward answers. For developers building a retrieval system, this list that ranks 19 models by use case, price, and dimensions saves a significant amount of trial-and-error costs.