Agent skill
serpapi
SerpApi search engine results API via curl. Use this skill to scrape Google, Bing, YouTube, and other search engines.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/serpapi
SKILL.md
SerpApi
Use SerpApi via direct curl calls to scrape search engine results from Google, Bing, YouTube, and more.
Official docs:
https://serpapi.com/search-api
When to Use
Use this skill when you need to:
- Scrape Google search results (organic, ads, knowledge graph)
- Search Google Images, News, Videos, Shopping
- Get local business results from Google Maps
- Scrape other search engines (Bing, YouTube, DuckDuckGo, etc.)
- Monitor SERP rankings for SEO analysis
Prerequisites
- Sign up at SerpApi
- Go to Dashboard and copy your API key
- Store it in the environment variable
SERPAPI_API_KEY
export SERPAPI_API_KEY="your-api-key"
Pricing
- Free tier: 100 searches/month
- API key is passed as a query parameter
api_key
Important: When using
$VARin a command that pipes to another command, wrap the command containing$VARinbash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bashbash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'
How to Use
All examples below assume you have SERPAPI_API_KEY set.
Base URL: https://serpapi.com/search
1. Basic Google Search
Search Google and get structured JSON results:
bash -c 'curl -s "https://serpapi.com/search?engine=google&q=artificial+intelligence&api_key=${SERPAPI_API_KEY}"' | jq '.organic_results[:3] | .[] | {title, link, snippet}
2. Search with Location
Search from a specific location:
bash -c 'curl -s "https://serpapi.com/search?engine=google&q=best+coffee+shops&location=San+Francisco,+California&gl=us&hl=en&api_key=${SERPAPI_API_KEY}"' | jq '.organic_results[:3]'
Parameters:
location: City, state, or addressgl: Country code (us, uk, de, etc.)hl: Language code (en, de, fr, etc.)
3. Google Image Search
Search for images:
bash -c 'curl -s "https://serpapi.com/search?engine=google_images&q=sunset+beach&api_key=${SERPAPI_API_KEY}"' | jq '.images_results[:3] | .[] | {title, original, thumbnail}
4. Google News Search
Search news articles:
bash -c 'curl -s "https://serpapi.com/search?engine=google_news&q=technology&api_key=${SERPAPI_API_KEY}"' | jq '.news_results[:3] | .[] | {title, link, source, date}
5. Google Shopping Search
Search products:
bash -c 'curl -s "https://serpapi.com/search?engine=google_shopping&q=wireless+headphones&api_key=${SERPAPI_API_KEY}"' | jq '.shopping_results[:3] | .[] | {title, price, source}
6. YouTube Search
Search YouTube videos:
bash -c 'curl -s "https://serpapi.com/search?engine=youtube&search_query=python+tutorial&api_key=${SERPAPI_API_KEY}"' | jq '.video_results[:3] | .[] | {title, link, channel, views}
7. Google Maps / Local Results
Search local businesses:
bash -c 'curl -s "https://serpapi.com/search?engine=google_maps&q=restaurants&ll=@40.7128,-74.0060,15z&api_key=${SERPAPI_API_KEY}"' | jq '.local_results[:3] | .[] | {title, rating, address}
Parameters:
ll: Latitude, longitude, and zoom level (e.g.,@40.7128,-74.0060,15z)
8. Pagination
Get more results using the start parameter:
# First page (results 1-10)
bash -c 'curl -s "https://serpapi.com/search?engine=google&q=machine+learning&start=0&api_key=${SERPAPI_API_KEY}"' | jq '.organic_results | length'
# Second page (results 11-20)
bash -c 'curl -s "https://serpapi.com/search?engine=google&q=machine+learning&start=10&api_key=${SERPAPI_API_KEY}"' | jq '.organic_results | length'
9. Check Account Info
Check your API usage and credits:
bash -c 'curl -s "https://serpapi.com/account?api_key=${SERPAPI_API_KEY}"' | jq '{plan_name, searches_per_month, this_month_usage}
Supported Engines
| Engine | Parameter | Description |
|---|---|---|
| Google Search | engine=google |
Web search results |
| Google Images | engine=google_images |
Image search |
| Google News | engine=google_news |
News articles |
| Google Shopping | engine=google_shopping |
Product search |
| Google Maps | engine=google_maps |
Local businesses |
| YouTube | engine=youtube |
Video search |
| Bing | engine=bing |
Bing web search |
| DuckDuckGo | engine=duckduckgo |
Privacy-focused search |
Common Parameters
| Parameter | Description |
|---|---|
q |
Search query (required) |
engine |
Search engine to use |
location |
Geographic location for search |
gl |
Country code (e.g., us, uk) |
hl |
Language code (e.g., en, de) |
start |
Pagination offset (0, 10, 20...) |
num |
Number of results (max 100) |
safe |
Safe search (active or off) |
device |
Device type (desktop, mobile, tablet) |
Guidelines
- Use specific engines: Use
google_images,google_newsetc. instead oftbmparameter for cleaner results - Add location for local searches: Use
locationandglfor geo-targeted results - Cache results: SerpApi caches results by default; use
no_cache=truefor fresh data - Monitor usage: Check
/accountendpoint to track API credits - Use jq filters: Filter large JSON responses to extract only needed data
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?