Providers

Pick a provider, keep your code

Every provider factory accepts an optional { apiKey?, baseUrl? } and reads its env variable by default. Scrape is only exposed where the provider supports it.

Firecrawl

@search-sdk/firecrawl
Site

Search and full-page scraping with clean markdown output. The most complete provider — supports both search and scrape.

SearchScrape
FIRECRAWL_API_KEY
Get a key

Tavily

@search-sdk/tavily
Site

Search built for LLMs with optional synthesized answers and content extraction from result URLs.

SearchScrape(extract)Synthesized answer
TAVILY_API_KEY
Get a key

Exa

@search-sdk/exa
Site

Neural, embeddings-based search with page contents retrieval and synthesized answers.

SearchScrape(contents)Synthesized answer
EXA_API_KEY
Get a key

Brave

@search-sdk/brave
Site

Independent web index with fast, privacy-first search results. Search only.

SearchScrape
BRAVE_API_KEY
Get a key

Serper

@search-sdk/serper
Site

Fast, affordable Google SERP results with knowledge-graph answers. Search only.

SearchScrapeSynthesized answer
SERPER_API_KEY
Get a key

Capability matrix

Package Search ScrapeEnv variable
@search-sdk/firecrawlFIRECRAWL_API_KEY
@search-sdk/tavily(extract)TAVILY_API_KEY
@search-sdk/exa(contents)EXA_API_KEY
@search-sdk/braveBRAVE_API_KEY
@search-sdk/serperSERPER_API_KEY

Calling scrape() on a search-only provider throws a WebSearchError.