S/SearchSuite
A typed search toolkit

Search,
simplified.

A lightweight, type-safe TypeScript SDK for search and web content across providers. One consistent API lets you focus on the product logic that matters.

ESM ONLY  ·  ZERO RUNTIME DEPENDENCIES  ·  NODE 24+
SAMPLE SEARCH RESPONSE / 001NORMALIZED
query  “TypeScript search SDK”
resultsprovider: tavily
01
Building a Type-safe API for Search
developer.example.com / guides / search
A practical guide to designing a consistent interface across search providers.
02
The TypeScript Handbook
typescript.example.com / docs
Typed requests. Predictable response shapes. Native web platform APIs.
2 results  ·  184 ms✓ typed response
09
Search providers
04
Content providers
0
Runtime dependencies
1×
Request per call
Connected by design

One API.
Your choice of provider.

From your application to the search provider you choose. A single interface handles the request and returns normalized results.

Your application connects to SearchSuite, then to one explicitly selected provider: Baidu, Doubao, Tavily, Exa, Serper, DeepSeek, Zhipu, Bocha, or Alibaba. Each terminal node shows its provider logo. Normalized results return to your application.
The branches show your provider choices. Each call uses one selected provider and makes at most one upstream request. Scroll horizontally on narrow screens.
Designed for your stack

Clear boundaries.
Simpler integration.

SearchSuite translates provider APIs into one consistent TypeScript interface. You stay in control of provider choice and application logic.

01 / TYPED

Provider-aware types

Get provider-specific options and response types from your selection. Catch configuration mistakes at compile time.

02 / NORMALIZED

Consistent responses

Normalize results, usage, latency, warnings, and errors while keeping provider-specific features available through typed options.

03 / EXPLICIT

No hidden behavior

Each call makes at most one provider request. No implicit retries, fallbacks, cross-provider routing, or caching.

04 / CONTENT

Search and fetch

Retrieve web content from supported providers with explicit content types and truncation status.

05 / NATIVE

Native web APIs

Built on fetch, AbortSignal, and standard ESM. Zero runtime dependencies. Requires Node.js 24 or newer.

06 / PORTABLE

Framework independent

Use the same SDK in server-side and agent applications. The core package does not depend on an application framework.

Connect your provider
BaiduDoubaoTavilyExaSerperDeepSeekZhipuBochaAlibaba
Up and running

A few lines of code
to start searching.

Install the SDK, choose a provider, and make a familiar async/await call. Switch providers by changing the provider field.

Read the getting started guide ↗
quick-start.ts
// npm install searchsuite
import { SearchSuite } from 'searchsuite'

const client = new SearchSuite()
const response = await client.search({
  provider: 'tavily',
  query: 'Recent advances in AI agents',
  maxResults: 5,
})

for (const result of response.results) {
  console.log(result.title, result.url)
}
Open source · MIT License

Make provider integration
the easy part.

View on npm ↗