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