Agent skill
serpapi
SerpApi for search engine results. Use when user mentions "SERP", "search results", "Google scrape", or search API.
Install this agent skill to your Project
npx add-skill https://github.com/vm0-ai/vm0-skills/tree/main/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_TOKEN
export SERPAPI_TOKEN="your-api-key"
Pricing
- Free tier: 100 searches/month
- API key is passed as a query parameter
api_key
How to Use
All examples below assume you have SERPAPI_TOKEN set.
Base URL: https://serpapi.com/search
1. Basic Google Search
Search Google and get structured JSON results:
curl -s "https://serpapi.com/search?engine=google&q=artificial+intelligence&api_key=$(printenv SERPAPI_TOKEN)" | jq '.organic_results[:3] | .[] | {title, link, snippet}'
2. Search with Location
Search from a specific location:
curl -s "https://serpapi.com/search?engine=google&q=best+coffee+shops&location=San+Francisco,+California&gl=us&hl=en&api_key=$(printenv SERPAPI_TOKEN)" | 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:
curl -s "https://serpapi.com/search?engine=google_images&q=sunset+beach&api_key=$(printenv SERPAPI_TOKEN)" | jq '.images_results[:3] | .[] | {title, original, thumbnail}'
4. Google News Search
Search news articles:
curl -s "https://serpapi.com/search?engine=google_news&q=technology&api_key=$(printenv SERPAPI_TOKEN)" | jq '.news_results[:3] | .[] | {title, link, source, date}'
5. Google Shopping Search
Search products:
curl -s "https://serpapi.com/search?engine=google_shopping&q=wireless+headphones&api_key=$(printenv SERPAPI_TOKEN)" | jq '.shopping_results[:3] | .[] | {title, price, source}'
6. YouTube Search
Search YouTube videos:
curl -s "https://serpapi.com/search?engine=youtube&search_query=python+tutorial&api_key=$(printenv SERPAPI_TOKEN)" | jq '.video_results[:3] | .[] | {title, link, channel, views}'
7. Google Maps / Local Results
Search local businesses:
curl -s "https://serpapi.com/search?engine=google_maps&q=restaurants&ll=@40.7128,-74.0060,15z&api_key=$(printenv SERPAPI_TOKEN)" | jq '.local_results[:3] | .[] | {title, rating, address}'
If using location with Google Maps, include z or m:
curl -s "https://serpapi.com/search?engine=google_maps&q=3PL&location=Dallas-Fort+Worth,+Texas&z=14&api_key=$(printenv SERPAPI_TOKEN)"
Defensive local-results extraction:
curl -s "https://serpapi.com/search?engine=google_maps&q=3PL&ll=@32.7767,-96.7970,14z&api_key=$(printenv SERPAPI_TOKEN)" \
| jq 'if has("error") then .error else (.local_results[:5] | map({title,address,phone,website,link,type})) end'
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)
curl -s "https://serpapi.com/search?engine=google&q=machine+learning&start=0&api_key=$(printenv SERPAPI_TOKEN)" | jq '.organic_results | length'
# Second page (results 11-20)
curl -s "https://serpapi.com/search?engine=google&q=machine+learning&start=10&api_key=$(printenv SERPAPI_TOKEN)" | jq '.organic_results | length'
9. Check Account Info
Check your API usage and credits:
curl -s "https://serpapi.com/account?api_key=$(printenv SERPAPI_TOKEN)" | 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.
brave-search
Brave Search API for web search. Use when user says "search web", "Brave search", or asks to "find on web" without specifying Google.
supadata
Supadata API for YouTube/web data. Use when user mentions "Supadata", "YouTube data", "channel stats", or web scraping data.
roadmap-planning
Build and prioritize product roadmaps using scoring models like RICE, ICE, and value-effort matrices. Activate when creating a product roadmap, prioritizing features, sequencing initiatives, mapping dependencies, balancing team capacity, choosing between Now/Next/Later or quarterly planning, or communicating roadmap tradeoffs to executives and stakeholders.
qdrant
Qdrant API for vector search. Use when user mentions "Qdrant", "vector database", "semantic search", or embeddings storage.
calendly
Calendly scheduling API. Use when user mentions "Calendly", "calendly.com", "schedule a meeting", "booking link", "event types", or asks about interview scheduling.
stripe
Stripe API for payments. Use when user mentions "Stripe", "payment", "subscription", "billing", "invoice", or asks about payment processing.
Didn't find tool you were looking for?