From serpapi-pack
Search Bing, YouTube, Google Shopping, News, and Maps via SerpApi Python client. Extract specialized data like videos, articles, products, and locations for multi-engine apps.
How this skill is triggered — by the user, by Claude, or both
Slash command
/serpapi-pack:serpapi-core-workflow-bThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
SerpApi supports 15+ search engines beyond Google. Each engine has its own parameters and result structure. Key engines: YouTube (`search_query`), Bing (`q`), Google News, Google Shopping, Google Maps, Walmart, eBay, Apple App Store.
SerpApi supports 15+ search engines beyond Google. Each engine has its own parameters and result structure. Key engines: YouTube (search_query), Bing (q), Google News, Google Shopping, Google Maps, Walmart, eBay, Apple App Store.
import serpapi, os
client = serpapi.Client(api_key=os.environ["SERPAPI_API_KEY"])
# YouTube uses search_query (not q)
yt = client.search(engine="youtube", search_query="python asyncio tutorial")
for video in yt.get("video_results", []):
print(f"{video['title']}")
print(f" Channel: {video.get('channel', {}).get('name')}")
print(f" Views: {video.get('views')}, Length: {video.get('length')}")
print(f" Link: {video['link']}")
print(f" Published: {video.get('published_date')}")
bing = client.search(engine="bing", q="machine learning frameworks", count=10)
for r in bing.get("organic_results", []):
print(f"{r['position']}. {r['title']}")
print(f" {r['link']}")
# Bing has different snippet structure
print(f" {r.get('snippet', 'N/A')}")
news = client.search(engine="google_news", q="artificial intelligence", gl="us", hl="en")
for article in news.get("news_results", []):
print(f"{article['title']}")
print(f" Source: {article['source']['name']}")
print(f" Date: {article.get('date')}")
print(f" Link: {article['link']}")
# News often has thumbnail
if "thumbnail" in article:
print(f" Image: {article['thumbnail']}")
shopping = client.search(
engine="google_shopping",
q="mechanical keyboard",
gl="us",
hl="en",
)
for product in shopping.get("shopping_results", []):
print(f"{product['title']}")
print(f" Price: {product.get('price')}")
print(f" Source: {product.get('source')}")
print(f" Rating: {product.get('rating')} ({product.get('reviews', 0)} reviews)")
print(f" Link: {product['link']}")
maps = client.search(
engine="google_maps",
q="pizza restaurants",
ll="@30.2672,-97.7431,14z", # Austin, TX coordinates + zoom
)
for place in maps.get("local_results", []):
print(f"{place['title']} - {place.get('rating', 'N/A')} stars ({place.get('reviews', 0)} reviews)")
print(f" Address: {place.get('address')}")
print(f" Phone: {place.get('phone')}")
print(f" Type: {place.get('type')}")
print(f" Hours: {place.get('operating_hours', {}).get('monday')}")
def multi_search(query: str) -> dict:
"""Search across multiple engines for the same query."""
engines = [
{"engine": "google", "q": query},
{"engine": "bing", "q": query},
{"engine": "youtube", "search_query": query},
{"engine": "google_news", "q": query},
]
results = {}
for params in engines:
result = client.search(**params)
engine = params["engine"]
key = "organic_results" if engine != "youtube" else "video_results"
if engine == "google_news":
key = "news_results"
results[engine] = result.get(key, [])[:3]
return results # 4 API credits total
| Error | Engine | Solution |
|---|---|---|
search_query required | YouTube | Use search_query not q |
No shopping_results | Google Shopping | Query must be product-related |
Empty local_results | Google Maps | Add ll parameter with coordinates |
count vs num | Bing | Bing uses count, Google uses num |
For common errors, see serpapi-common-errors.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin serpapi-packRuns SerpApi searches for Google, Bing, or YouTube as structured JSON. Python and Node.js examples for first searches, query testing, and result format learning.
Searches Google, Bing, Amazon, Walmart, YouTube, Google Maps, and 100+ engines via SerpApi REST API. Useful for retrieving search results, product prices, local businesses, academic papers, news, jobs, and SERP analysis.
Searches the web via Bright Data CLI: `bdata search` for Google/Bing/Yandex SERP results, `bdata discover` for intent-ranked semantic discovery with optional page content. Hands off to `scrape` or `data-feeds` when appropriate.