Ferret Python SDK
Python client for Ferret — open source alternative to Tavily.
Installation
pip install ferret-client
Or directly from the repo:
pip install git+https://github.com/duan78/ferret.git
Usage
from ferret import FerretClient
client = FerretClient("http://localhost:9093")
# Multi-engine web search
results = client.search("AI developments 2026")
for r in results["items"]:
print(f"[{r.get('source', '?')}] {r['title']}")
# Deep research (5 engines in parallel + summary)
report = client.research("AI 2026")
print(report["answer"])
# Content extraction
content = client.extract("https://example.com")
# Crawl a whole site
client.crawl("https://docs.ferret.guru")
# Single-engine search
client.search("rust programming", engine="bing")
# Multi-search across all engines
client.search_all("rust programming")
French data (49 parsers)
dvf = client.dvf("75001") # Real estate prices, Paris 1er
sirene = client.sirene("Decathlon") # Company search
rna = client.rna("Restos du Cœur") # Associations
International APIs
uk_data = client.uk_data("population")
eurostat = client.eurostat_gdp("FR")
bbc = client.bbc_news("technology")
who = client.who_health()
Business endpoints
# SEO audit (returns structured JSON)
audit = client.get("/seo/audit", params={"q": "example.com"})
# LLM-ready markdown prompt (~800 tokens)
prompt = client.get("/seo/audit/llm", params={"q": "example.com"})
# France quality-of-life report
living = client.get("/france/living", params={"q": "75001"})
Export formats
# CSV
csv_bytes = client.search("rust", format="csv")
# XML
xml_bytes = client.search("rust", format="xml")
Utilities
ip = client.ip()
geo = client.geolocate("8.8.8.8")
Configuration
# Default: http://localhost:9093
client = FerretClient("http://192.168.0.37:9093") # Remote server
client = FerretClient("https://api.ferret.guru") # Production
See also
- API Reference — the full list of 363 endpoints
- JavaScript SDK
- LangChain integration