{"id":23950,"library":"langchain-exa","title":"LangChain Exa Integration","description":"An integration package connecting Exa (formerly Metaphor) and LangChain. Current version 1.1.0, requires Python >=3.10 and <4.0.0. Maintained under the LangChain monorepo, with releases tied to LangChain core updates.","status":"active","version":"1.1.0","language":"python","source_language":"en","source_url":"https://github.com/langchain-ai/langchain","tags":["langchain","exa","search","integration","retriever"],"install":[{"cmd":"pip install langchain-exa","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Base abstractions for tools, retrievers, and chat models.","package":"langchain-core","optional":false},{"reason":"Official Exa Python SDK for API calls.","package":"exa_py","optional":false}],"imports":[{"note":"ExaSearchToolkit is exposed at the package root, not in a submodule.","wrong":"from langchain_exa.tools import ExaSearchToolkit","symbol":"ExaSearchToolkit","correct":"from langchain_exa import ExaSearchToolkit"},{"note":"","wrong":null,"symbol":"ExaRetriever","correct":"from langchain_exa import ExaRetriever"}],"quickstart":{"code":"import os\nfrom langchain_exa import ExaSearchToolkit\n\napi_key = os.environ.get('EXA_API_KEY', '')\ntoolkit = ExaSearchToolkit(api_key=api_key, max_results=5)\nresult = toolkit.search('latest AI news')\nprint(result)","lang":"python","description":"Initialize the Exa search toolkit with an API key and perform a search."},"warnings":[{"fix":"Replace 'from langchain_metaphor import ...' with 'from langchain_exa import ...'.","message":"In v1.0.0, the package was renamed from 'langchain-metaphor' to 'langchain-exa'. All imports have changed.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use 'ExaSearchToolkit' instead.","message":"The 'MetaphorSearchToolkit' alias was removed in v1.1.0.","severity":"deprecated","affected_versions":">=1.1.0"},{"fix":"Set EXA_API_KEY via os.environ and omit the api_key parameter.","message":"If you pass the API key directly, it may be logged or exposed in traces. Always use environment variables or a secrets manager in production.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install langchain-exa' and use 'from langchain_exa import ExaSearchToolkit'.","cause":"Package not installed or imported with wrong name (e.g., 'langchain-exa' instead of 'langchain_exa').","error":"ModuleNotFoundError: No module named 'langchain_exa'"},{"fix":"Use 'from langchain_exa import ExaSearchToolkit'.","cause":"Incorrect import path; ExaSearchToolkit is at the root package.","error":"ImportError: cannot import name 'ExaSearchToolkit' from 'langchain_exa.tools'"},{"fix":"Set the EXA_API_KEY environment variable or pass api_key='your-key' to the constructor.","cause":"No valid EXA_API_KEY provided.","error":"exa_py.exceptions.AuthenticationError: API key is invalid or missing"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}