HomeBlog › Embeddings API cost compared

What Embeddings Actually Cost: OpenAI vs Cohere vs Voyage vs Gemini (2026)

28 July 2026 · AI & LLMs · 6 min read

I embedded a whole documentation set last month — about 50 million tokens of text — and the OpenAI bill came to one dollar. A single dollar. I actually re-read the invoice because I was sure I had dropped a decimal. Embeddings are the cheapest thing in the entire AI stack, so cheap that comparing providers on the embedding rate alone is almost pointless. The number that will actually hurt you is somewhere else, and I will get to it. But first, the real prices, because people still ask.

The real 2026 prices, per 1M tokens

These are the pay-as-you-go input rates I track. Embeddings only charge for input — you send text, you get vectors back, there is no "output token" side to the bill. Everything below is dollars per one million tokens of text embedded.

ModelPrice / 1M tokensDimensionsNotes
OpenAI text-embedding-3-small$0.021536The default value pick
Voyage-3-lite$0.02512Cheap + tiny vectors
Voyage-3$0.061024Strong retrieval quality
Cohere Embed v3$0.101024Good multilingual
Mistral Embed$0.101024EU-hosted option
OpenAI text-embedding-3-large$0.133072Best OpenAI quality
Google gemini-embedding-001$0.153072Generous free tier first

The spread from cheapest to priciest is roughly — $0.02 to $0.15. That sounds dramatic until you multiply it by a realistic corpus and see how small the absolute numbers stay.

What embedding a real corpus costs

Here is the one-time cost to embed three corpus sizes. 50M tokens is a mid-size docs site or knowledge base. 200M is a big product's entire help center plus history. 1B is enterprise-scale — think every support ticket you have ever filed.

Corpus3-small / Voyage-liteVoyage-3Cohere / Mistral3-largeGemini
50M tokens$1.00$3.00$5.00$6.50$7.50
200M tokens$4.00$12.00$20.00$26.00$30.00
1B tokens$20.00$60.00$100.00$130.00$150.00

Even at a billion tokens, the most expensive option here is $150 — once. Your query side is even cheaper: a RAG app that embeds one million user questions a month at ~80 tokens each burns 80M tokens, which is $1.60 on 3-small. I have never seen the embedding line item crack even 2% of an AI product's monthly bill. So why does anyone care which one you pick?

The real bill is the vector database

Look back at the dimensions column. That is the number that actually costs money, and it costs it every single month, not once. A vector database charges you to store and search those vectors, and the price scales with how many dimensions each one has. text-embedding-3-large produces 3072-dimension vectors. Voyage-3-lite produces 512. That is a 6× difference in storage and memory for the exact same documents.

So the "premium" $0.13 model does not just cost 6× more to embed — it can cost several times more to host, forever. On a managed vector DB, a few million 3072-dim vectors sitting in memory is a real monthly line item, while the same corpus at 512 dims might fit in a free or near-free tier. The embedding API is a rounding error. The index it feeds is the recurring charge. I priced the storage side separately in the Pinecone vs pgvector breakdown — that is where the money actually lives.

The trap nobody warns you about

Embeddings from different models are not compatible. A vector from OpenAI means nothing to a Cohere index. So the day you decide to switch providers — or even upgrade from 3-small to 3-large — you have to re-embed your entire corpus from scratch and rebuild the index. That $1 job is cheap to run once; it is annoying to run because you swapped models six months in and now every stored vector is garbage.

This is why the smart move is not "pick the cheapest per token." It is "pick a model whose dimension count your vector DB can afford to host, and whose retrieval quality is good enough that you never need to re-embed." For most people that answer is text-embedding-3-small or Voyage-3-lite: two cents a million tokens, small vectors, quality that holds up. You reach for 3-large or a reranker only when retrieval quality is measurably failing, not by default.

What I actually do

I default to text-embedding-3-small. It is $0.02/1M, the vectors are a manageable 1536 dimensions, and OpenAI lets you shorten them further if your DB is tight on memory. When I need better multilingual recall I test Voyage or Cohere on my own eval set before committing — because switching later means re-embedding everything. And I budget the vector database as the real cost, not the API. Run your own numbers before you commit to a dimension count you have to pay for every month:

New to usage-based API pricing? Start with the free API-cost guides. And if you are building the full retrieval app, embeddings are the cheap third — see what the LLM side costs after caching for where the real per-call money goes.

Prices are provider list rates as tracked in our catalog (July 2026) and are reference estimates — confirm current rates on each provider's pricing page before budgeting. Dimension counts are default model outputs; some models (including OpenAI's) support shortening. Corpus costs are one-time; vector-database storage is recurring and billed separately.