Devtoolwatch BoardGet it every Monday

Exa review

Exa Python SDK is the official Python package for Exa, the web search API for AI, covering search, page contents, answers and agents.

Updated Nov 1, 2026. Review written Oct 22, 2026 from the project's own sources; usage data refreshed every Monday.

TL;DR

Exa Python SDK (exa-py) is the official Python client for the Exa web search API for AI. It is for Python developers who want web search, page contents and answers in their code or LLM agents. It includes ready-made web_search tools for OpenAI and Anthropic tool loops, plus an Agent API for structured research tasks.

Exa at a glance

Category
RAG, data and memory
Maintained by
Exa Labs (organization, @exa-labs on GitHub)
License
MIT
Language
Python, Jinja, Makefile
Repository
github.com/exa-labs/exa-py
Website
pypi.org/project/exa-py
npm package
exa-js 2.26.0
Latest release
v2.26.0 on GitHub, Oct 19, 2026
First published
Jul 4, 2023

What Exa does

  • Exa searches the web with filters such as number of results, published date and included domains, and can return highlights from each result.
  • Exa can return search output as plain text or as structured JSON that follows an output_schema you supply.
  • Exa fetches the contents of pages you already have URLs for, as text or highlights, through get_contents.
  • Exa answers questions directly with exa.answer and can stream answers and search output as chunks.
  • Exa provides web_search and get_contents tools for OpenAI Chat Completions, the OpenAI Responses API and Anthropic, plus helpers that handle tool calls.
  • Exa's Agent API runs research queries that return structured output, with effort levels including ultra and an optional cost budget.
  • Exa Agent Monitors, in beta, keep a table of entities and fields fresh on a set cadence and expose a change feed.

How it works

Exa SDK is a Python client for the hosted Exa API. You create an Exa or AsyncExa client with an API key and call methods such as search, get_contents, answer and agent.runs.create. For LLM apps, you pass exa.openai or exa.anthropic tool definitions to the model and let the SDK handle the resulting tool calls. A JavaScript SDK, exa-js, also exists for Node.js and the browser.

How to install and start using Exa

With pip

pip install exa-py

Requirements

  • Python 3.9 or newer
  • An Exa API key

First steps

  1. Install the package with pip install exa-py on Python 3.9 or newer.
  2. Run exa.search with type="auto" and contents={"highlights": True} to get web results with highlights.
  3. Call exa.answer with a question to get a direct answer.

Who Exa is for

  • Python developers adding live web search to LLM agents built on OpenAI or Anthropic models.
  • RAG pipelines that need page contents or highlights from web results as model context.
  • Research workflows that need structured JSON output, such as lists of companies or people.
  • Teams tracking changes about a set of companies over time with Agent Monitors.

Limitations to know

  • Exa SDK depends on the hosted Exa API and needs an API key. It does not run search locally.
  • Exa structured search output with type object is limited to a nesting depth of 2 and 10 total properties.
  • Exa Agent Monitors are in beta and require a beta header identifier.
  • Exa's sync client cannot cancel a blocking read from another thread. Only the timeout bounds network inactivity.

Is Exa growing? Usage data

In the week of Oct 25–31, 2026, Exa ranked #337 on the Devtoolwatch Board and #34 in RAG, data and memory, with a momentum score of 24 out of 100. Its main package had about 1.2M downloads that week, +2% against its own 4-week average.

New GitHub stars per week for Exa12 weeks from Aug 9, 2026: 2, 2, 3, 1, 0, 1, 0, 0, 0, 0, 1, 2 new stars, an average of 1 a week.Aug 9week of Oct 25
New GitHub stars per week for the last 12 weeks, from GitHub's stargazer history (today's stargazers by the week they starred).
Show the weekly numbers
New GitHub stars per week for Exa
Week ofNew stars
Aug 9, 20262
Aug 16, 20262
Aug 23, 20263
Aug 30, 20261
Sep 6, 20260
Sep 13, 20261
Sep 20, 20260
Sep 27, 20260
Oct 4, 20260
Oct 11, 20260
Oct 18, 20261
Oct 25, 20262

On Hacker News

The Board ranks tools by four signals each week: new stars, new stars for the repo's size, added downloads and download growth beyond the market. How the ranking works.

Exa alternatives

Other RAG, data and memory tools on the Board in the week of Oct 25–31, 2026, by momentum:

RAG, data and memory ranked by momentum, the week of Oct 25–31, 2026
RankToolStarsDownloads/wk
#1XERJXERJ is a local-first search engine and MCP server for AI agents, packaged as one Rust binary with an Elasticsearch-compatible API.17.9k–
#2MemvidMemvid is a single-file memory layer for AI agents that packages data, embeddings, search indexes, and metadata into one portable .mv2 file.17.3k–
#3LEANNLEANN is a Python vector database and RAG library that recomputes embeddings on demand to keep indexes small on personal devices.13.7k–
#4GraphifyGraphify is an AI coding assistant skill that turns a codebase, with its docs, PDFs, images and videos, into a queryable knowledge graph.140k480.7k
#5MarkItDownMarkItDown is a lightweight Python utility from Microsoft that converts PDFs, Office documents, images, audio and other files to…193.2k4.7M
#6FirecrawlFirecrawl is an API and open source project to search, scrape, crawl, and interact with web pages, returning LLM-ready markdown or JSON…197.4k2.9M

All RAG, data and memory tools, ranked

Recent Exa releases

Exa FAQ

Is Exa free and open source?

Yes. Exa's source code is on GitHub (exa-labs/exa-py) under the MIT license, so you can use it for free.

How do I install Exa?

Run pip install exa-py. The install section above has the other options from the project's README.

Is Exa still maintained?

Yes. The exa-labs/exa-py repository was last updated on Oct 19, 2026, and the latest release, v2.26.0 on GitHub, came out on Oct 19, 2026.

How popular is Exa?

Exa has 237 GitHub stars as of Nov 1, 2026. It gained 2 new stars in the week of Oct 25–31, 2026, against a 12-week average of 1 a week. Its main package had about 1.2M downloads that week, +2% against its own 4-week average. That made it #34 among RAG, data and memory tools on the Devtoolwatch Board.

Exa vs Firecrawl: how do they compare?

Exa and Firecrawl are both tracked by Devtoolwatch as RAG, data and memory tools. Exa has 237 GitHub stars and Firecrawl has 197.4k. In the week of Oct 25–31, 2026, Exa's main package had 1.2M downloads and Firecrawl's had 2.9M. Firecrawl is an API and open source project to search, scrape, crawl, and interact with web pages, returning LLM-ready markdown or JSON for AI agents. Firecrawl review.

What are the best alternatives to Exa?

Other RAG, data and memory tools on the Devtoolwatch Board in the week of Oct 25–31, 2026, by momentum: XERJ (#1), Memvid (#2), LEANN (#3), Graphify (#4), MarkItDown (#5). The alternatives table above has their numbers.

How do I use Exa as a tool with OpenAI or Anthropic?

Exa provides exa.openai.web_search() and exa.anthropic.web_search() tool definitions to pass in the model's tools list. You then call exa.openai.handle_tool_calls on the model message. With no arguments, web_search uses Exa's recommended settings: type="auto" and highlights.

Can Exa run alongside Anthropic's built-in web search tool?

Exa can run alongside it. Anthropic requires unique tool names, so you pass a custom name, such as exa.anthropic.web_search(name="exa_web_search"), next to the built-in web_search_20250305 tool.

Does Exa support async Python?

Exa supports async code through the AsyncExa client, which you await like the sync client. You can cancel an in-flight request by cancelling the asyncio task awaiting it.

How do timeouts work in Exa SDK?

Exa clients default to a 600-second network inactivity timeout, not a wall-clock deadline. You can set it client-wide or per call. A request that exceeds it raises ExaTimeoutError.

What deep search modes does Exa offer?

Exa offers three deep search variants: deep-lite, deep and deep-reasoning. These variants also support additional_queries.

Sources

  1. exa-labs/exa-py on GitHub
  2. Exa README
  3. exa-js on npm
  4. Exa website
  5. Release v2.26.0 (Oct 19, 2026)
  6. Release v2.25.0 (Oct 1, 2026)
  7. Release v2.24.0 (Oct 1, 2026)
  8. Hacker News: PyPI Was Subpoenaed
  9. Hacker News: Black, the uncompromising Python code formatter, is stable
  10. Hacker News: Pypi.org is running a survey on the state of Python packaging
  11. Devtoolwatch Board, the week of Oct 25–31, 2026

Exa README badge

Maintainers can show the tool's weekly Board rank in their README:

Devtoolwatch badge for Exa

[![Devtoolwatch](https://index.devtoolwatch.com/badge/exa.svg)](https://index.devtoolwatch.com/tools/exa/)

How this page is made: Devtoolwatch writes each review from the project's README, releases, package metadata and website, with an AI model, then checks every claim against the source it cites and drops what the sources don't support. The numbers come from Devtoolwatch's daily GitHub snapshots, GitHub's stargazer history, and the npm and PyPI download APIs. Spotted an error? Email [email protected].