Skip to content

[Feat] Add EXA AI Search API to LiteLLM - #15774

Merged
ishaan-jaff merged 38 commits into
mainfrom
litellm_add_exa_ai_search_api
Oct 22, 2025
Merged

[Feat] Add EXA AI Search API to LiteLLM#15774
ishaan-jaff merged 38 commits into
mainfrom
litellm_add_exa_ai_search_api

Conversation

@ishaan-jaff

@ishaan-jaff ishaan-jaff commented Oct 21, 2025

Copy link
Copy Markdown
Contributor

[Feat] Add EXA AI Search API to LiteLLM

Relevant issues

#15314

Provides a unified interface for search, use Exa AI API here

Adds https://docs.exa.ai/reference/search

Relevant issue

#15314

Add Exa AI Search Provider to Unified Search API

Summary

This PR adds Exa AI Search API support to LiteLLM's unified search interface, enabling users to perform web searches using Exa AI alongside existing providers (Perplexity, Tavily, Parallel AI). Exa AI provides intelligent embeddings-based neural search and traditional keyword search, automatically choosing the best approach for each query.

Usage

Basic Search

import litellm

# Simple Exa AI search
response = litellm.search(
    query="Latest research in LLMs",
    custom_llm_provider="exa_ai"
)

for result in response.results:
    print(f"{result.title}: {result.url}")
    print(f"{result.snippet}\n")

With Options

import litellm

# Search with domain filtering and max results
response = litellm.search(
    query="latest AI developments",
    custom_llm_provider="exa_ai",
    max_results=10,
    search_domain_filter=["arxiv.org", "paperswithcode.com"],
    country="US"
)

With Exa-Specific Features

import litellm

# Use Exa-specific parameters (passed through automatically)
response = litellm.search(
    query="AI research papers",
    custom_llm_provider="exa_ai",
    max_results=10,
    type="neural",  # Exa-specific: 'keyword', 'neural', 'fast', 'auto'
    category="research paper",  # Exa-specific: focus on research papers
    startPublishedDate="2024-01-01T00:00:00.000Z",  # Exa-specific
    endPublishedDate="2024-12-31T00:00:00.000Z"  # Exa-specific
)

Async Search

import litellm

response = await litellm.asearch(
    query="machine learning research",
    custom_llm_provider="exa_ai",
    max_results=5
)

Environment Setup

export EXA_API_KEY="your-exa-api-key"

# Optional: Override API base
export EXA_API_BASE="https://api.exa.ai"

Pre-Submission checklist

Please complete all items before asking a LiteLLM maintainer to review your PR

  • I have Added testing in the tests/litellm/ directory, Adding at least 1 test is a hard requirement - see details
  • I have added a screenshot of my new test passing locally
  • My PR passes all unit tests on make test-unit
  • My PR's scope is as isolated as possible, it only solves 1 specific problem

Type

🆕 New Feature
✅ Test

Changes

@vercel

vercel Bot commented Oct 21, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
litellm Ready Ready Preview Comment Oct 22, 2025 0:06am

@ishaan-jaff
ishaan-jaff merged commit 7b939b4 into main Oct 22, 2025
10 of 11 checks passed
@ishaan-berri
ishaan-berri deleted the litellm_add_exa_ai_search_api branch March 26, 2026 21:51
fzowl pushed a commit to fzowl/litellm that referenced this pull request Jun 24, 2026
* add BaseSearchConfig

* add BaseSearchConfig

* validate_environment

* fix handlers

* add PerplexitySearchConfig

* add PerplexitySearchConfig

* add LiteLLM Search API module.

* add BaseSearchConfig

* add _build_search_optional_params

* add search_testing

* add BaseSearchTest

* add TestPerplexitySearch

* fix BASE

* fix handler

* add search API

* add to init

* fix: working perplexity search API

* add _hidden_params to search

* add TAVILY to LlmProviders

* add TavilySearchConfig

* add TavilySearchConfig

* TestTavilySearch

* add tavily transform

* TestParallelAISearch

* add LlmProviders

* add ParallelAISearchConfig

* add ParallelAISearchConfig

* ParallelAISearchConfig

* add EXA AI Search API

* add ExaAISearchConfig

* TestExaAISearch

* add get_supported_perplexity_optional_params

* add Exa AI Search API

* add transform_search_request

* add ExaAISearchConfig

* fix linting errors

* transform_search_request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant