From serpapi-pack
Extracts structured Google search data using SerpApi: organic results, knowledge graph, answer boxes, PAA, pagination. For search apps, SEO monitoring, data extraction.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin serpapi-packThis skill is limited to using the following tools:
Extract structured data from Google Search: organic results, answer boxes, knowledge graph, related questions (PAA), local pack, ads, and shopping results. Each search costs 1 API credit.
Runs SerpApi searches for Google, Bing, or YouTube as structured JSON. Python and Node.js examples for first searches, query testing, and result format learning.
Fetches structured search results from Google, Amazon, Yelp, Walmart, OpenTable, and 20+ engines for products, local businesses, restaurants, shopping, images, news. CLI script with JSON/text output.
Fetches live SERP results via SerpAPI from Google/Bing, including local map packs, organic listings, ads, People Also Ask, AI Overviews, and SERP features for quick keyword spot-checks.
Share bugs, ideas, or general feedback.
Extract structured data from Google Search: organic results, answer boxes, knowledge graph, related questions (PAA), local pack, ads, and shopping results. Each search costs 1 API credit.
import serpapi, os
client = serpapi.Client(api_key=os.environ["SERPAPI_API_KEY"])
result = client.search(
engine="google",
q="best project management tools",
location="New York, New York",
hl="en", gl="us",
num=10,
)
# 1. Organic Results
for r in result.get("organic_results", []):
print(f"{r['position']}. {r['title']}")
print(f" URL: {r['link']}")
print(f" Snippet: {r.get('snippet', 'N/A')}")
# Rich snippets: sitelinks, rating, date
if "rich_snippet" in r:
print(f" Rating: {r['rich_snippet'].get('top', {}).get('rating')}")
# 2. Answer Box
if ab := result.get("answer_box"):
print(f"\nAnswer Box ({ab.get('type', 'unknown')}):")
print(f" {ab.get('answer') or ab.get('snippet') or ab.get('title')}")
# 3. Knowledge Graph
if kg := result.get("knowledge_graph"):
print(f"\nKnowledge Graph: {kg['title']}")
print(f" Type: {kg.get('type')}")
print(f" Description: {kg.get('description', 'N/A')[:100]}")
# 4. People Also Ask
for paa in result.get("related_questions", []):
print(f"\nPAA: {paa['question']}")
print(f" Answer: {paa.get('snippet', 'N/A')[:100]}")
# 5. Related Searches
for rs in result.get("related_searches", []):
print(f"Related: {rs['query']}")
def paginate_google(query: str, pages: int = 3, num: int = 10):
"""Get multiple pages of results (each page = 1 credit)."""
all_results = []
for page in range(pages):
result = client.search(
engine="google", q=query, num=num,
start=page * num, # Offset parameter
)
organic = result.get("organic_results", [])
if not organic:
break
all_results.extend(organic)
return all_results
results = paginate_google("python web frameworks", pages=3)
print(f"Total results: {len(results)}")
# Time-based filtering
recent = client.search(engine="google", q="AI news", tbs="qdr:w") # Past week
# tbs options: qdr:h (hour), qdr:d (day), qdr:w (week), qdr:m (month), qdr:y (year)
# Device-specific results
mobile = client.search(engine="google", q="restaurants near me", device="mobile")
# Safe search
safe = client.search(engine="google", q="query", safe="active")
result = client.search(engine="google", q="coffee shops austin tx")
for place in result.get("local_results", {}).get("places", []):
print(f"{place['title']} - {place.get('rating', 'N/A')} stars")
print(f" Address: {place.get('address')}")
print(f" Hours: {place.get('hours')}")
print(f" GPS: {place.get('gps_coordinates', {})}")
1. Monday.com - Best Project Management Software
URL: https://monday.com
Snippet: Rated #1 project management tool...
Answer Box (organic_result):
Compare the best project management tools...
Knowledge Graph: Project management
Type: Topic
Description: Project management is the application of...
| Error | Cause | Solution |
|---|---|---|
No organic_results | CAPTCHA or unusual query | Check search_metadata.status |
Empty local_results | Query not location-specific | Add location parameter |
search_metadata.status: Error | Invalid parameters | Check search_metadata.error message |
For Bing, YouTube, and other engines, see serpapi-core-workflow-b.