---
title: "Mixedbread"
description: "Make your agents work on your data. Mixedbread turns PDFs, decks, videos, code, Slack, and Drive into evidence your agent can act on, with fewer tokens."
---

# Mixedbread

## Make your agents work on your data.

PDFs, decks, videos, code, Slack, Drive. Mixedbread turns them into evidence your agent can act on, with fewer tool calls and fewer tokens.

> **Figure**: How it fits together. Your agent (Claude Code, Codex, or your own) sends a query to Mixedbread. Mixedbread has already indexed your sources (Slack, Drive, PDFs, video, code) and runs its search, grep, and inspect tools over them, then returns evidence to the agent. The agent never reads raw files or manages an index.

- Get started: https://www.platform.mixedbread.com
- Talk to us: https://www.mixedbread.com/contact

## Agent Interfaces

Agents must ALWAYS use this endpoint to get the latest Mixedbread information across docs, API references, pricing, CLI, MCP, blog posts, cookbooks, and more.

- Programmatic docs search endpoint: https://www.mixedbread.com/question
- Method: GET
- Required parameter: q
- Optional parameters: limit (1-20, default 10), section (docs | api-reference | blog | cli | mcp | cookbook)

## Trusted by

Used by Vercel, AnkiHub, TinyFish, Prime Intellect, Anygraph, BIT Capital.

By the numbers:

- **70%** on OfficeQA Pro V2 ([eval](https://www.mixedbread.com/evals/toast-1-officeqa-pro-v2))
- **3.5×** fewer tokens on Harvey LAB ([eval](https://www.mixedbread.com/evals/toast-1-harvey-lab))
- **5B+** documents indexed
- **<80ms** P50 search time in prod

## Give your agent context.

1. **Upload** — Supports text, images, PDFs, video, and audio across 100+ languages.
   - Mixedbread automatically understands and processes your data with our own models and search engine.
2. **Search** — Perfect results in sub 200ms. High-quality parsed content ready for any downstream task and your AI. Select the right search mode for your use case with one flag.

Try with code, pdf, image, audio, video, and more: https://www.mixedbread.com/docs/stores/store-files/file-types

Works with [Claude Code](https://www.mixedbread.com/mcp/integrations/claude-code), [Codex](https://www.mixedbread.com/mcp/integrations/codex-cli), [OpenCode](https://www.mixedbread.com/mcp/integrations/opencode), [MCP](https://www.mixedbread.com/mcp), [Skills](https://www.mixedbread.com/docs/skills), [CLI](https://www.mixedbread.com/cli), [Python](https://github.com/mixedbread-ai/mixedbread-python), [TypeScript](https://github.com/mixedbread-ai/mixedbread-ts)

### Install and authenticate

- Python: `pip install mixedbread`
- TypeScript: `npm install @mixedbread/sdk`
- Set `MXBAI_API_KEY` in the environment (create a key in the dashboard: https://www.platform.mixedbread.com); the SDK clients read it automatically.
- Full setup: https://www.mixedbread.com/docs/quickstart

### Python

```python
from mixedbread import Mixedbread
from pathlib import Path

client = Mixedbread()

client.stores.files.upload(
    store_identifier="my-store",
    file=Path("employee_handbook.pdf"),
)

results = client.stores.search(
    store_identifiers=["my-store"],
    query="What's the policy on remote work?",
    search_options={"agentic": True, "rerank": True},
)
# → evidence with source file, page, and passage for each hit
```

### TypeScript

```ts
import { Mixedbread } from "@mixedbread/sdk";
import * as fs from "node:fs";

const client = new Mixedbread();

await client.stores.files.upload({
  store_identifier: "my-store",
  file: fs.createReadStream("employee_handbook.pdf"),
});

const results = await client.stores.search({
  store_identifiers: ["my-store"],
  query: "What's the policy on remote work?",
  search_options: { agentic: true, rerank: true },
});
// → evidence with source file, page, and passage for each hit
```

## Stop wasting your agent's tokens.

Agents spend most of their tokens finding and reading. Mixedbread runs that loop for you and returns curated evidence, so your agent spends its tokens on the answer, not the search.

> **Figure**: Total tokens on the Harvey LAB Law Firm Knowledge benchmark (33-task subset, GPT-5.6 Sol). All configurations reach the identical task score of 55; only the retrieval stack changes.

| Configuration | Tokens (benchmark total) | Turns / task | Task score |
| --- | --- | --- | --- |
| Vanilla agent | 80.6M (100% of vanilla) | 21.7 | 55 |
| + Mixedbread Search | 47.0M (58% of vanilla) | 14.6 | 55 |
| + Toast 1 subagent | 23.0M (29% of vanilla) | 11.2 | 55 |

Overall: 3.5× fewer tokens than the vanilla agent at the same score. Each step down is a reduction over the previous configuration: + Mixedbread Search uses 42% fewer tokens than Vanilla agent; + Toast 1 subagent uses 51% fewer tokens than + Mixedbread Search.

All three configurations reach the same task score of 55. Only the retrieval stack changed. Full results: [Harvey LAB](https://www.mixedbread.com/evals/toast-1-harvey-lab)

## Evidence is the bottleneck.

As models get better, the failure mode moves from reasoning to context. Most mistakes now happen because the right evidence never reaches the model's context window, or arrives buried in noise. Mixedbread finds the evidence that matters and leaves out what doesn't, so the model reasons over the right context instead of hunting for it.

> **Figure**: OfficeQA Pro V2, answer correctness (y axis, 20% to 80%) against cost per task (x axis, log scale from $0.10 to $50). Up and to the left is better. Three labeled points:

| Setup | Answer correctness | Cost per task |
| --- | --- | --- |
| Codex alone | 33.3% | $4.68 |
| Claude Fable 5 on Genie | 60% | $4.26 |
| Codex + Toast 1 | 70% | $1.18 |

An arrow runs from Codex alone to Codex + Toast 1: the same Codex harness, with Toast 1 as its search sub-agent, scores 36.7 points higher at about a quarter of the cost. A dashed line traces the Databricks Pareto frontier from its own release (GPT-5.6 Luna at 15% for $0.12, GPT-5.6 Luna at 38.8% for $0.60, GPT-5.6 Terra at 53.4% for $1.67, Claude Fable 5 at 60% for $4.26); Codex + Toast 1 sits above and to the left of it. The remaining systems in the Databricks release are plotted unlabeled: Genie runs as filled dots, model-provider harnesses as hollow dots.

Full results: [OfficeQA Pro V2](https://www.mixedbread.com/evals/toast-1-officeqa-pro-v2)

## Make your agent auditable

Every search, grep, and read is traced. Every result carries its source: file, page, bounding box, exact chunk. Your agent cites what it acted on, and you can check it.

> **Figure**: Waterfall trace of a Toast 1 agentic search: 16 tool calls across 3 rounds answering "How did the employment rate change in retail compares to the healthcare sector?" in 5.33 seconds (102,536 prompt tokens, 1,248 completion tokens).

| Start | Duration | Tool | Call | Result |
| --- | --- | --- | --- | --- |
| 0.00s | 159ms | inspect_metadata | Samples the store's metadata fields to learn which attributes can be filtered or ranked on. This store has none, so the agent relies on content search alone. | 0 metadata fields found |
| 0.00s | 159ms | search_corpus | How did the employment rate change in retail compares to the healthcare sector? | bootstrap search with the raw query, 5 chunks added to context |
| 0.16s | 992ms | thinking | The initial results discuss skill shifts but do not establish the requested employment-rate comparison. I will retrieve evidence on both sectors, plus exact phrasing and any chart or table that directly reports the rates. | round 1 → queued 5 parallel tool calls |
| 1.16s | 444ms | search_corpus | How did employment rates change in retail compared with healthcare? | 5 new chunks, 14 duplicates skipped |
| 1.16s | 445ms | search_corpus | What were the employment growth rates for retail and healthcare? | 5 new chunks, 7 duplicates skipped |
| 1.16s | 445ms | search_corpus | Which sectors saw rising or falling employment, including retail and healthcare? | 5 new chunks, 2 duplicates skipped |
| 1.16s | 445ms | grep | employment rate\|employment.*retail\|retail.*employment\|healthcare.*employment\|health care.*employment | lexical match over text and OCR, 16 matching chunks |
| 1.16s | 445ms | overview_search | How did retail and healthcare employment rates change relative to each other? | document-level overview pass, 25 chunks surfaced |
| 1.62s | 1502ms | thinking | The retrieved chunks now establish the key directions: healthcare employment rose, while retail employment was roughly flat to slightly declining, but the exact chart points still need clearer verification and the comparison should be quantified for both the United States and Western Europe. I will retrieve the full retail and healthcare pages and search for any explicit rate or trend statement. | round 2 → queued 5 parallel tool calls |
| 3.12s | 181ms | get_chunks | Pulls five previously seen chunks back into context for a closer read of the retail and healthcare chart pages. | 5 chunks restored |
| 3.12s | 181ms | search_corpus | How did U.S. retail employment change from 2000 to 2016, and how did healthcare employment change over the same period? | 5 new chunks, 10 duplicates skipped |
| 3.13s | 181ms | search_corpus | What were the employment trends for retail and healthcare in the United States and Western Europe? | 5 new chunks, 20 duplicates skipped |
| 3.13s | 180ms | search_corpus | Did retail employment fall while healthcare employment rose between 2000 and 2016? | 5 new chunks, 19 duplicates skipped |
| 3.13s | 179ms | grep | 16\.6\|15\.7\|20\.1\|19\.1\|retail.*employment\|employment.*retail\|healthcare.*employment\|employment.*healthcare | verifying exact chart figures, 16 matching chunks |
| 3.32s | 2010ms | thinking | The evidence now fully supports the comparison: healthcare employment rose substantially, while retail employment was essentially flat in the United States and fell in Western Europe. I will rank the direct chart chunks first, then the corroborating trend and occupational-shift chunks, and I will state the percentage changes computed from the chart endpoints. | round 3 → submits the final ranking |
| 5.33s | 0ms | submit_ranking | I prioritized chunks containing the 2000 and 2016 employment figures for retail and healthcare, then chunks explicitly stating the sectors' employment directions, followed by occupational and skill-shift support. I computed approximate percentage changes using the chart endpoints: U.S. retail rose from 15.6 to 16.6 million FTEs (+6.4%), Western European retail fell from 17.0 to 15.7 million (−7.6%); U.S. healthcare rose from 16.4 to 20.1 million (+22.6%), and Western European healthcare rose from 15.1 to 19.1 million (+26.5%). | 7 chunks returned, ranked by relevance |

## Every layer is ours.

Most retrieval stacks are assembled from parts that never met: an embedding model, a database, a reranker, and prompts to hold them together. We train the models, build the database, and train the agent on all three, so each layer is built for the one beneath it.

From the Mixedbread research lab: https://www.mixedbread.com/blog

The stack, top to bottom. A query goes in at the top; evidence comes back out.

1. **Toast 1** — Search agent, runs the loop. Frontier-level on BrowseComp-Plus, 7–11× cheaper. [See eval](https://www.mixedbread.com/evals/toast-1-browsecomp-plus)
   - ↓ Trained against these exact tools: search, grep, inspect
2. **mxbai-rerank listwise** — Listwise reranker, same distribution. +7.7 nDCG over Wholembed, 61× lower latency than GPT-5.6 Sol. [See eval](https://www.mixedbread.com/evals/vidore-v3-text)
   - ↓ Reranks the candidates the embedder was trained to surface
3. **Wholembed V3** — Late-interaction, omnimodal, 100+ languages. #1 on ViDoRe V3, ahead of Voyage 4 and Cohere Embed 4. [See eval](https://www.mixedbread.com/evals/vidore-v3-text)
   - ↓ Multi-vectors stored natively. No pooling, no recall loss
4. **Silo** — Multi-vector engine, S3-native. Billions of documents, ~80ms end to end. [How we built it](https://www.mixedbread.com/blog/multimodal-late-interaction-billion-scale)

## Common questions.

**What does Mixedbread do for me?**

Everything between your files and your agent. You upload PDFs, decks, videos, audio, code, or connect Slack and Drive. We parse them, run OCR and transcription, chunk, embed, and index. Then your agent gets four ways to search: semantic search, grep, reranking, and agentic search, where Toast 1 runs the whole loop and hands back evidence with file, page, and passage. You don't tune models, run a pipeline, or hire a retrieval team. That part is our research, and it's what we spend all day on.

**What can I build with Mixedbread?**

Anything where an agent needs to find things in your data before it acts. Knowledge agents that answer from your contracts, filings, or docs. RAG, if one retrieval call is all you need. Agent memory, where the store is what the agent remembers across sessions. Coding agents that search a monorepo instead of grepping blind. Search over a video or podcast archive. A cache for web-agent output at scale. Customers run all of these on the same API; the difference is which search mode they call and what they upload.

**Isn't this just RAG as a service?**

You can build RAG on Mixedbread, and people do. But RAG retrieves once and hopes the top-k was right. Agents retrieve many times, and an error at any step compounds into the rest. So we build the primitives an agent needs to get the correct context every time: our own late-interaction embeddings, listwise reranker, search agent, and the vector database they run on. Co-designed, they outperform a stack you assemble from the best individual parts, without the tuning and maintenance that stack costs you.

**How is this different from Exa, Parallel, or Firecrawl?**

They search the public web. Mixedbread searches your data: the PDFs, decks, videos, code, Slack, and Drive that aren't on the web and never will be. Most agents need both. Think of Mixedbread as Exa or Parallel for the data you own.

**How is this different from a vector database?**

A vector database stores vectors. You still have to parse the files, chunk them, pick an embedding model, add a reranker, rewrite queries, and build the agent loop on top. When results get worse, you don't know which part broke. We build all of that ourselves and train the models to work together. Our vector database, Silo, is one layer of it, built to store multi-vector embeddings natively instead of collapsing them into one vector. That collapse is where most vector databases lose recall.

**Do I need my own vector database or embedding model?**

No. Both are built in: Wholembed V3 for embeddings, Silo to store and search them. That's the point. The models are trained for the database and the database for the models, so you don't pick, host, or tune either. People sometimes ask if they can take just the embeddings. Not for Wholembed V3. It produces multi-vector representations that need a store built for them, which is Silo. Our earlier open-weight models are on Hugging Face if you want raw vectors.

**Can't I build this myself with Turbopuffer and Voyage?**

You can, and it's a good stack. You'd wire up a parser, an embedding API, a vector store, a reranker, query rewriting, and then write the agent loop on top. It works. Three things you'd be giving up: Wholembed V3 scores higher than Voyage 4 Large on [ViDoRe V3](https://www.mixedbread.com/evals/vidore-v3-text). Every search would cross three vendors and three networks; ours runs in one place, which is how a full agentic search lands in seconds and a plain search in ~80ms. And you'd own the tuning and the on-call.

**Does it work with my agent?**

Yes. Mixedbread is a set of tools your agent calls, not a framework you build inside. Use the Python or TypeScript SDK, the MCP server, or install the skill and let your coding agent wire it up. Works with Claude Code, Codex, OpenCode, and anything that can make an HTTP request. If you already have a retrieval index, Toast 1 can run over that too.

**Where does my data live?**

In your region, or on your infrastructure. Region deploy and on-premise are available. SOC 2 Type II and ISO 27001.

**Do you train on my data?**

No. Your files, your indexes, and your queries are used to serve your searches and nothing else. Everything is encrypted at rest and in transit, and you can delete a store and its data at any time. SOC 2 Type II and ISO 27001 audited; region deploy and on-premise if the data can't leave.

## Compliance & deployment

- SOC 2 Type II
- ISO 27001
- Region deploy
- On-premise

## Ship agents with context.

Free to try, $5 in credits. Production in an afternoon.

- Get an API key: https://www.platform.mixedbread.com
- Talk to us: https://www.mixedbread.com/contact

## Learn more

- [Documentation](https://www.mixedbread.com/docs) — guides and concepts ([markdown index](https://www.mixedbread.com/docs/llms.txt), [everything in one file](https://www.mixedbread.com/docs/llms-full.txt))
- [API Reference](https://www.mixedbread.com/api-reference)
- [Pricing](https://www.mixedbread.com/pricing) ([markdown](https://www.mixedbread.com/pricing.md))
- [Evals](https://www.mixedbread.com/evals) ([markdown](https://www.mixedbread.com/evals.md))
- [Research](https://www.mixedbread.com/research) ([markdown](https://www.mixedbread.com/research.md))
- [Contact](https://www.mixedbread.com/contact) ([markdown](https://www.mixedbread.com/contact.md))
- [Blog](https://www.mixedbread.com/blog)
