One web search API for every provider
A unified TypeScript SDK to search and scrape the web from your agents. Swap providers without touching your app code, and hand framework-native tools straight to your model.
- Providers
- 5
- Unified API
- 1
- Dual builds
- ESM + CJS
- Heavy deps
- 0
Providers
Unified API
Dual builds
Heavy deps
Provider-agnostic
Swap providers, keep your code
search() and scrape() always return the same shape. Change the provider factory on one line — the rest of your code never moves.
Capabilities
Everything an agent needs to read the web
Pluggable providers
Firecrawl, Tavily, Exa, Brave, Serper — one small factory each. Switch by changing a single line.
Always-unified results
Identical SearchResult / ScrapeResult shapes across every provider, no matter the underlying API.
Agent-ready tools
web.tools() returns a Vercel AI SDK ToolSet (web_search + web_scrape) ready for your agent.
Capability-aware
Scrape tools and methods are only exposed when the active provider actually supports them.
Lightweight
Providers use native fetch — no heavy vendor SDKs dragged into your dependency tree.
ESM + CJS + types
Ships dual builds with full TypeScript declarations. Works everywhere on Node 18+.
Quick start
From install to first search in two steps
Install core + a provider
The Vercel AI SDK adapter is built into core. Add ai only if you want agent tools.
Search the web
Pass a provider, then call the unified API. A bare string works too.
Give your agent the whole web, one API at a time
Start with one provider and switch any time. Adding a provider or framework adapter is purely additive.