brime

Migrating from Tavily

Point your existing TavilyClient at Brime — no code changes.

Brime exposes Tavily's wire format under /tavily/v1/*. Change one line and your existing Tavily integration keeps working.

One-line migration

from tavily import TavilyClient

client = TavilyClient(
    api_key="sk-brime-...",                      # Brime key
    api_base_url="https://api.brime.dev/tavily",  # ← only change
)

result = client.search("Tesla Cybertruck recall 2025")           # works as before
import { tavily } from "@tavily/core";

const client = tavily({
  apiKey: "sk-brime-...",
  apiBaseUrl: "https://api.brime.dev/tavily",
});

const result = await client.search("Tesla Cybertruck recall 2025");

What's compatible

Tavily endpointBrime pathStatus
/search/tavily/v1/search✅ Full
/extract/tavily/v1/extract✅ Full
/research (sync + stream + poll)/tavily/v1/research + /research/{id}✅ Full
/crawl—❌ Not yet (Brime engine work)
/map—❌ Not yet (Brime engine work)

Field mapping

Most fields are 1:1; a few are renamed or silently mapped. Highlights:

Tavily fieldBrime behaviour
search_depth: fast / ultra-fastmapped to Brime depth=instant
chunks_per_source > 1silently capped to 1 (Brime engine gap)
country, auto_parameters, citation_formatsilently ignored
output_schemasilently ignored (no structured output yet)
images[] per resultalways [] (no per-result image extraction yet)
favicon per resultalways null

Pricing

You're billed in Brime credits, not Tavily credits. The Brime credit table applies — see Pricing. Tavily's per-feature multipliers are not emulated.

Authentication

Pass your Brime key in the standard Tavily slot. Both header (Authorization: Bearer) and body (api_key) variants work:

curl https://api.brime.dev/tavily/v1/search \
  -H "Authorization: Bearer sk-brime-..." \
  -H "Content-Type: application/json" \
  -d '{"query":"renewable energy 2025"}'

Errors

Tavily SDK error parsers expect {"detail": {"error": "<message>"}}. Brime's adapter translates native errors into that shape automatically — BadRequestError, InvalidAPIKeyError, etc., raise correctly in tavily-python.

When to use the Tavily adapter vs the native brime SDK

  • Use the Tavily adapter when migrating an existing Tavily codebase with minimum churn.
  • Use the native brime SDK when starting fresh — better ergonomics (deep research polling helper, SSE streaming with Last-Event-ID resume, depth presets, typed responses).

Hit a parity gap?

Open an issue at github.com/orgs/brime-dev/repositories and we'll triage it. The migration matrix is updated when a Tavily endpoint or field is added or remapped.