Web Search By Searxng
Search using a custom SearXNG instance via HTTP API. Enables privacy-friendly web search by aggregating results from multiple search engines. Supports query,...
Description
name: web-search-by-searxng description: Search using a custom SearXNG instance via HTTP API. Enables privacy-friendly web search by aggregating results from multiple search engines. Supports query, format (json/csv/rss), language, time range, categories, engines, pagination, and safe search filtering. Requires a user-provided or configured SearXNG instance URL.
SearXNG Search
This skill enables web search using a custom SearXNG instance via its HTTP API.
Overview
SearXNG is a privacy-respecting metasearch engine that aggregates results from multiple search engines. This skill allows you to search using a custom SearXNG instance URL.
API Endpoints
GET /orGET /search- Query parameters in URLPOST /orPOST /search- Form data
Required Configuration
You need a SearXNG instance URL. The user can provide:
- A public instance URL (e.g.,
https://searx.be) - A self-hosted instance URL
- An environment variable
SEARXNG_URLcontaining the instance URL
Parameters
| Parameter | Required | Description |
|---|---|---|
q |
Yes | Search query string |
format |
No | Output format: json, csv, rss (default: HTML) |
language |
No | Language code (e.g., en, zh, de) |
pageno |
No | Page number (default: 1) |
time_range |
No | Time filter: day, month, year |
categories |
No | Comma-separated category list |
engines |
No | Comma-separated engine list |
safesearch |
No | Safe search level: 0, 1, 2 |
Categories and Engines
SearXNG organizes search into categories (tabs) with multiple engines per category.
Available Categories:
general- General web searchimages- Image searchvideos- Video searchnews- News articlesmap- Maps and locationsmusic- Music and audioit- IT/Technology resourcesscience- Scientific publicationsfiles- Files and torrentssocial_media- Social media content
Common Engines:
- Web:
google,duckduckgo,bing,brave,startpage,wikipedia - Images:
google images,bing images,unsplash,flickr - Videos:
youtube,google videos,vimeo,dailymotion - News:
google news,bing news,reuters - IT:
github,stackoverflow,arch linux wiki,pypi - Science:
google scholar,arxiv,pubmed
Bang Syntax: Use ! prefix in queries to target specific engines:
!go python- Search Google!wp artificial intelligence- Search Wikipedia!github machine learning- Search GitHub
For detailed engine lists and features, see references/engines_and_categories.md.
Usage
Using the Python Script
# Basic search
python scripts/searxng_search.py -u https://searx.example.org -q "python tutorial"
# JSON output
python scripts/searxng_search.py -u https://searx.example.org -q "python tutorial" --format json
# With language and time range
python scripts/searxng_search.py -u https://searx.example.org -q "news" --lang en --time-range day
# Use environment variable for URL
export SEARXNG_URL=https://searx.example.org
python scripts/searxng_search.py -q "search query"
# Search specific category
python scripts/searxng_search.py -u https://searx.example.org -q "AI" --categories news
# Search specific engines
python scripts/searxng_search.py -u https://searx.example.org -q "python" --engines google,stackoverflow
Using HTTP Requests Directly
import requests
url = "https://searx.example.org/search"
params = {
"q": "python tutorial",
"format": "json",
"language": "en",
"categories": "general,it", # Multiple categories
"engines": "google,duckduckgo" # Specific engines
}
response = requests.get(url, params=params, timeout=30)
results = response.json()
Bang Syntax in Query
# Use bang syntax to target specific engines
params = {
"q": "!github machine learning framework", # Only search GitHub
"format": "json"
}
JSON Response Format
{
"query": "search query",
"number_of_results": 1000000,
"results": [
{
"title": "Result Title",
"url": "https://example.com",
"content": "Snippet text...",
"engine": "google",
"score": 1.0
}
],
"answers": [],
"suggestions": [],
"unresponsive_engines": []
}
Important Notes
- Format Availability: JSON/CSV/RSS formats must be enabled in the instance's
settings.yml. Many public instances disable these formats. - Rate Limiting: Be respectful of the instance's resources. Add delays between requests.
- Self-Hosting: For reliable API access, consider self-hosting a SearXNG instance.
- Time Range: Not all engines support time range filtering. Check instance preferences.
- Engine Availability: Not all engines are enabled on all instances. Check the instance's preferences page.
Example Workflows
Basic Web Search
- Ask user for SearXNG instance URL or use configured URL
- Construct search query
- Call API with
format=json - Parse and present results
Category-Specific Search
- Choose category based on query type (news, images, science, etc.)
- Use
categoriesparameter or bang syntax - Filter results as needed
Multi-Page Search
- Perform initial search
- If more results needed, increment
pagenoparameter - Combine results from multiple pages
Filtered Search
- Use
time_range=dayfor recent results - Use
safesearch=2for strict filtering - Use
languageparameter for locale-specific results - Use
categoriesorenginesto narrow search scope
References
- engines_and_categories.md - Complete list of engines and categories
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!