Exa-compatible SDKs

exa-py, exa-js, langchain-exa and other tools built on them, pointed at typesearch.

typesearch has a compatibility layer that speaks Exa’s API: the same endpoints (/search, /findSimilar, /contents), parameters, response shapes and errors. Anything built on Exa’s SDKs that lets you set the base URL works with a typesearch key.

ToolHow
exa-pyExa(api_key=…, base_url="https://api.typesearch.ai/compat/exa")
exa-py, asyncAsyncExa(api_key=…, api_base="https://api.typesearch.ai/compat/exa")
exa-jsnew Exa(apiKey, "https://api.typesearch.ai/compat/exa")
langchain-exa (Python)exa_base_url="https://api.typesearch.ai/compat/exa": see LangChain
@langchain/exa (JavaScript)Pass it an exa-js client with the base URL: see LangChain
from exa_py import Exa

exa = Exa(api_key=TYPESEARCH_API_KEY, base_url="https://api.typesearch.ai/compat/exa")

results = exa.search("EU AI Act enforcement", num_results=10, type="fast")

The key goes in the x-api-key header, as the SDKs already send it. Every parameter, and what it becomes on typesearch, is in Migrate from Exa.

What doesn’t work

Tools that hard-code Exa’s address can’t be pointed elsewhere: Exa’s own MCP server and its AI SDK package are two of them.

For MCP clients, use our MCP server; for the Vercel AI SDK, see Vercel AI SDK.

Tako and Perplexity

Their SDKs work the same way, against their own compatibility layers: see Migrate from Tako and Migrate from Perplexity.

On this page