Install
openclaw skills install serper-cloneWeb search via a self-hosted Serper-compatible API (powered by SearXNG). Free, no rate limits, runs on your own infrastructure. Use for: web searches, news,...
openclaw skills install serper-cloneWeb search using a self-hosted Serper-compatible API. Uses SearXNG as the search backend with a lightweight bridge that exposes the familiar Serper API format.
You need a running instance of the Serper Clone API. Options:
After deployment, note your:
https://search.example.com or http://192.168.1.50:8080)Create the API key file:
echo "API_KEY=your-api-key-here" > ~/.openclaw/workspace/.serper-clone-api-key
echo "BASE_URL=https://your-serper-clone-host" >> ~/.openclaw/workspace/.serper-clone-api-key
chmod 600 ~/.openclaw/workspace/.serper-clone-api-key
The skill will not activate until this file exists.
All endpoints accept POST requests with a JSON body.
| Endpoint | Description |
|---|---|
/search | General web search |
/news | News articles |
/images | Image search |
/videos | Video search |
/places | Local places/businesses |
/maps | Maps/location search |
/shopping | Shopping results |
/scholar | Academic papers |
/patents | Patent search |
/autocomplete | Query autocomplete suggestions |
API_KEY=$(grep '^API_KEY=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
BASE_URL=$(grep '^BASE_URL=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
curl -s -X POST "$BASE_URL/search" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "search query", "num": 10}' | jq .
{
"q": "search query", // Required: search terms
"gl": "us", // Country code
"hl": "en", // Language code
"num": 10, // Number of results (1-100)
"page": 1, // Result page number
"autocorrect": true, // Enable/disable spell correction
"location": "Austin, Texas" // Location hint
}
{
"searchParameters": { "q": "...", "gl": "us", "hl": "en", "num": 10 },
"organic": [
{
"title": "Result Title",
"link": "https://example.com",
"snippet": "Description of the result...",
"position": 1,
"date": "2026-02-16T00:00:00"
}
],
"answerBox": { "answer": "...", "snippet": "..." },
"relatedSearches": [ { "query": "related search" } ],
"credits": 0
}
curl -s -X POST "$BASE_URL/news" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "latest AI news", "num": 5}'
curl -s -X POST "$BASE_URL/images" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "neural network architecture diagram"}'
curl -s -X POST "$BASE_URL/scholar" \
-H "X-API-KEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"q": "mixture of experts transformer", "num": 10}'
For convenience in shell scripts:
serper_search() {
local endpoint="${1:-search}"
local query="$2"
local num="${3:-10}"
local api_key=$(grep '^API_KEY=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
local base_url=$(grep '^BASE_URL=' ~/.openclaw/workspace/.serper-clone-api-key | cut -d'=' -f2)
curl -s -X POST "$base_url/$endpoint" \
-H "X-API-KEY: $api_key" \
-H "Content-Type: application/json" \
-d "{\"q\": \"$query\", \"num\": $num}"
}
# Examples:
# serper_search search "OpenClaw agent framework" 10
# serper_search news "AI releases 2026" 5
# serper_search scholar "large language models" 10
chmod 600 (owner-read only)