SerpApi search engine results API via curl. Use this skill to scrape Google, Bing, YouTube, and other search engines.
npx skills add https://github.com/nicepkg/ai-workflow --skill 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
Use this skill when you need to:
SERPAPI_API_KEYexport SERPAPI_API_KEY="your-api-key"
api_key> Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.
> `bash
> bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"'
> `
All examples below assume you have SERPAPI_API_KEY set.
Base URL: https://serpapi.com/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}
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.)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}
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}
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}
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}
Search local businesses:
bash -c 'curl -s "https://serpapi.com/search?engine=google_maps&q=restaurants&[email protected],-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)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'
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}
| 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 |
| 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) |
google_images, google_news etc. instead of tbm parameter for cleaner resultslocation and gl for geo-targeted resultsno_cache=true for fresh data/account endpoint to track API creditsAutomate web scraping and data extraction with Apify -- run Actors, manage datasets, create reusable tasks, and retrieve crawl results through the Composio Apify integration.
Scrapes content based on a preset URL list, filters high-quality technical information, and generates daily Markdown reports.
Web search, content extraction, crawling, and research capabilities using Tavily API
| Bulk extract content from an entire website or site section. Use this skill when the user wants to crawl a site, extract all pages from a docs section, bulk-scrape multiple pages following links, or says "crawl", "get all the pages", "extract everything under /docs", "bulk extract", or needs content from many pages on the same site. Handles depth limits, path filtering, and concurrent extraction.
Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API. Use when you need deep content extraction from web pages, page interaction is required (clicking, scrolling, etc.), or you want screenshots or PDF parsing.
Build a fully automated AI-powered data collection agent for any public source — job boards, prices, news, GitHub, sports, anything. Scrapes on a schedule, enriches data with a free LLM (Gemini Flash), stores results in Notion/Sheets/Supabase, and learns from user feedback. Runs 100% free on GitHub Actions. Use when the user wants to monitor, collect, or track any public data automatically.
Scrapes content based on a preset URL list, filters high-quality technical information, and generates daily Markdown reports.
Scrape, crawl, search, and extract structured data from websites using Firecrawl API - converts web pages to LLM-ready markdown
Take nicepkg/serpapi from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.