Ferret JavaScript SDK
JavaScript / TypeScript client for Ferret — open source alternative to Tavily.
Installation
npm install ferret-client
Usage
import { FerretClient } from 'ferret-client';
const client = new FerretClient('http://localhost:9093');
// Multi-engine web search
const results = await client.search('AI 2026');
console.log(results.items);
// Single-engine search
const bing = await client.search('AI 2026', { engine: 'bing' });
// Deep research
const report = await client.research('AI 2026');
console.log(report.answer);
// Content extraction
const content = await client.extract('https://example.com');
// Crawl a whole site
const pages = await client.crawl('https://docs.ferret.guru');
// Map a domain (URLs only, no content)
const urls = await client.map('https://example.com');
Business endpoints
// SEO audit (structured JSON)
const audit = await client.get('/seo/audit', { q: 'example.com' });
// LLM-ready markdown prompt (~800 tokens)
const prompt = await client.get('/seo/audit/llm', { q: 'example.com' });
// France quality-of-life report
const living = await client.get('/france/living', { q: '75001' });
Export formats
// CSV (returns a string)
const csv = await client.search('rust', { format: 'csv' });
// XML
const xml = await client.search('rust', { format: 'xml' });
French data
const dvf = await client.dvf('75001'); // Real estate prices
const sirene = await client.sirene('Decathlon'); // Company search
Configuration
// Default: http://localhost:9093
const client = new FerretClient('http://192.168.0.37:9093'); // Remote
const client = new FerretClient('https://api.ferret.guru'); // Production
See also
- API Reference — the full list of 363 endpoints
- Python SDK
- LangChain integration