brime

Migrating from Exa

Point your existing Exa client at Brime — no code changes.

Brime exposes Exa's wire format under /exa/v1/*. Three endpoints supported (/search, /answer, /contents) plus streaming for search and answer.

One-line migration

from exa_py import Exa

client = Exa(
    api_key="sk-brime-...",
    base_url="https://api.brime.dev/exa",
)

result = client.search("Tesla Cybertruck recall 2025")
import Exa from "exa-js";

const exa = new Exa("sk-brime-...", { baseUrl: "https://api.brime.dev/exa" });
const result = await exa.search("Tesla Cybertruck recall 2025");

What's compatible

Exa endpointBrime pathStatus
/search/exa/v1/search✅ Full (synthesised when type=neural/deep*)
/answer/exa/v1/answer✅ Full
/contents/exa/v1/contents✅ Full
/findSimilar—❌ Vector retrieval not yet (engine work)
/research/v0/tasks—❌ Not yet

stream: true is supported on /search and /answer — frames come as OpenAI chat.completion.chunk envelopes.

Field mapping

Exa fieldBrime behaviour
type: neural | deep | deep-lite | deep-reasoning | instantAll map to Brime ranking (vector retrieval is on the roadmap)
category (people / company / paper / news / personal / financial)Silently ignored
userLocationSilently ignored (no per-country routing)
additionalQueriesSilently ignored
outputSchemaSilently ignored (no structured output yet)
useAutopromptSilently ignored (no query expansion)
contents.highlightsAlways []
contents.summaryAlways ""
contents.subpagesAlways []
contents.livecrawl + livecrawlTimeoutSilently ignored
costDollarsSynthesised from Brime credits (rough estimate)

Hit a parity gap that's not listed? Open an issue at github.com/orgs/brime-dev/repositories.

Authentication

Both Authorization: Bearer <key> and Exa's x-api-key: <key> header work. Use whichever your client sets by default.

Streaming

Exa chat.completion.chunk envelope is preserved:

data: {"id":"...","choices":[{"delta":{"content":"The ECB held rates at 3.25% in October 2025..."}}]}
data: {"id":"...","citations":[{"url":"https://en.wikipedia.org/wiki/Generative_artificial_intelligence"}]}
data: [DONE]

The streaming layer is synthesised — Brime runs the underlying call synchronously, then chunks the response into SSE frames. Real LLM token-level streaming is on the roadmap.

Pricing

Brime credits. See Pricing.

When to use the Exa adapter vs the native brime SDK

  • Use the Exa adapter to keep an existing Exa codebase running with minimum churn.
  • Use the native brime SDK when starting fresh — wider feature surface (deep research, SSE replay, idempotency).