Ai-workflow serpapi
SerpApi search engine results API via curl. Use this skill to scrape Google, Bing, YouTube, and other search engines.
install
source · Clone the upstream repo
git clone https://github.com/nicepkg/ai-workflow
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/nicepkg/ai-workflow "$T" && mkdir -p ~/.claude/skills && cp -r "$T/workflows/video-creator-workflow/.claude/skills/serpapi" ~/.claude/skills/nicepkg-ai-workflow-serpapi && rm -rf "$T"
manifest:
workflows/video-creator-workflow/.claude/skills/serpapi/SKILL.mdsource content
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
in a command that pipes to another command, wrap the command containing$VARin$VAR. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bash -c '...'bash -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:
: City, state, or addresslocation
: Country code (us, uk, de, etc.)gl
: Language code (en, de, fr, etc.)hl
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:
: Latitude, longitude, and zoom level (e.g.,ll
)@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 | | Web search results |
| Google Images | | Image search |
| Google News | | News articles |
| Google Shopping | | Product search |
| Google Maps | | Local businesses |
| YouTube | | Video search |
| Bing | | Bing web search |
| DuckDuckGo | | Privacy-focused search |
Common Parameters
| Parameter | Description |
|---|---|
| Search query (required) |
| Search engine to use |
| Geographic location for search |
| Country code (e.g., us, uk) |
| Language code (e.g., en, de) |
| Pagination offset (0, 10, 20...) |
| Number of results (max 100) |
| Safe search ( or ) |
| Device type (, , ) |
Guidelines
- Use specific engines: Use
,google_images
etc. instead ofgoogle_news
parameter for cleaner resultstbm - Add location for local searches: Use
andlocation
for geo-targeted resultsgl - Cache results: SerpApi caches results by default; use
for fresh datano_cache=true - Monitor usage: Check
endpoint to track API credits/account - Use jq filters: Filter large JSON responses to extract only needed data