Web Search Tools¶
The web search tools provide functionality to perform web searches through various search engines. This module supports multiple search engines, including Brave, Serper, SearXNG, Tavily, and Google (via BrightData/Scrapeless).
Bing Search Removed
Bing Search has been removed due to frequent bot detection issues. Please use alternative search providers.
Free Tier Summary¶
Here's a quick overview of free tier offerings for each search provider:
| Provider | Free Tier | Monthly Limit | Notes |
|---|---|---|---|
| Brave Search | Changed | ~1,000 queries | $5 free credits/month (Feb 2026), credit card required |
| Serper | Yes | 2,500 queries | Google search results |
| Bright Data | Yes | 5,000 queries | No verification required |
| Tavily | Yes | 1,000 queries | AI-optimized search |
| Scrapeless | No | - | Paid plans only |
| SearXNG | Free | Unlimited | Self-hosted, open source |
tip "Maximizing Free Usage"¶
- Multi-API Key Rotation: All providers support multiple API keys for load balancing
- SearXNG for High Volume: Consider self-hosting SearXNG for unlimited free searches
Free Tier Policy
All free tier information may be subject to provider policy changes. Information is accurate at the time of writing.
Module Overview¶
The web search tools mainly include the following:
- Unified Web Search (
WebSearch) - Single entry point for all search providers with auto-selection, fallback, and dynamic engine discovery. See Unified Web Search - Individual Search Providers (
websearch) - Direct access to specific search engines (Brave, Tavily, SearXNG, etc.)
Search Engine Support¶
Currently supported search engines include:
- Unified Web Search - All-in-one entry point with auto engine selection and fallback
- Brave Search - Using Brave search engine
- Serper Search - Using Serper API for Google search results
- Tavily Search - Using Tavily search API (AI-optimized)
- SearXNG Search - Using SearXNG meta search engine (Privacy-focused)
- BrightData Search - Using BrightData for Google results
- Scrapeless Search - Using Scrapeless Universal API with support for multiple search engines
- Bing Search - REMOVED - Previously used Bing search engine (removed in v0.6.0)
Basic Usage¶
Unified Entry Point (Recommended)¶
from toolregistry_hub.websearch import WebSearch
# Auto-select the best available engine
ws = WebSearch()
results = ws.search("Python programming", max_results=5)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Content: {result.content}")
print("-" * 50)
# Specify a particular engine
results = ws.search("machine learning", engine="brave", max_results=5)
# List available engines
engines = ws.list_engines()
Direct Engine Usage¶
from toolregistry_hub.websearch import BraveSearch, SearXNGSearch, TavilySearch, BrightDataSearch, ScrapelessSearch, SerperSearch
# Using Brave search (Recommended)
brave_search = BraveSearch()
results = brave_search.search("Python programming", max_results=5)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Content: {result.content}")
print(f"Score: {result.score}")
print("-" * 50)
# Using SearXNG search
searxng_search = SearXNGSearch()
results = searxng_search.search("machine learning tutorial", number_results=3)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Excerpt: {result.excerpt}")
print("-" * 50)
# Using Brave search
brave_search = BraveSearch()
results = brave_search.search("artificial intelligence", number_results=5)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Content: {result.content}")
print(f"Score: {result.score}")
print("-" * 50)
# Using Tavily search
tavily_search = TavilySearch()
results = tavily_search.search("quantum computing", number_results=5)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Content: {result.content}")
print(f"Score: {result.score}")
print("-" * 50)
# Using Bright Data Google search
brightdata_search = BrightDataSearch()
results = brightdata_search.search("web scraping", max_results=5)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Content: {result.content}")
print(f"Score: {result.score}")
print("-" * 50)
# Using Scrapeless Google search
scrapeless_search = ScrapelessSearch()
results = scrapeless_search.search("web scraping", max_results=5)
for result in results:
print(f"Title: {result.title}")
print(f"URL: {result.url}")
print(f"Content: {result.content}")
print(f"Score: {result.score}")
print("-" * 50)
Detailed Documentation¶
- Unified Web Search - All-in-one entry point with auto engine selection and fallback
- Search Result Types - Data structure of search results
- Base Search Class - Base class for all search engines
- Brave Search - Implementation of Brave search engine
- Serper Search - Implementation of Serper API for Google search results
- Tavily Search - Implementation of Tavily search API
- SearXNG Search - Implementation of SearXNG search engine
- BrightData Search - Implementation of BrightData for Google results
- Scrapeless Search - Implementation of Scrapeless Universal API
- Bing Search - REMOVED Implementation of Bing search engine (removed in v0.6.0)