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.md
source 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

  1. Sign up at SerpApi
  2. Go to Dashboard and copy your API key
  3. 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

$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 -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 address
  • gl
    : 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

EngineParameterDescription
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

ParameterDescription
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

  1. Use specific engines: Use
    google_images
    ,
    google_news
    etc. instead of
    tbm
    parameter for cleaner results
  2. Add location for local searches: Use
    location
    and
    gl
    for geo-targeted results
  3. Cache results: SerpApi caches results by default; use
    no_cache=true
    for fresh data
  4. Monitor usage: Check
    /account
    endpoint to track API credits
  5. Use jq filters: Filter large JSON responses to extract only needed data