Skip to content
Skillv1.0.0

serpapi-upgrade-migration

Migrate between SerpApi client versions and handle package changes. Use when upgrading from google-search-results to serpapi package, or handling API response schema changes. Trigger: "upgrade serpapi

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (plugins/saas-packs/serpapi-pack/skills/serpapi-upgrade-migration/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill serpapi-upgrade-migration. Copyright stays with the author (MIT).

SerpApi Upgrade & Migration

Overview

The main migration path: google-search-results (legacy) to serpapi (current official package). The API itself is stable -- changes are in client library interfaces, not the REST API.

Instructions

Python: google-search-results to serpapi

# BEFORE: Legacy package
from serpapi import GoogleSearch
search = GoogleSearch({"q": "test", "api_key": key})
result = search.get_dict()

# AFTER: New official package
import serpapi
client = serpapi.Client(api_key=key)
result = client.search(engine="google", q="test")
# Result is already a dict -- no get_dict() needed
# Migration steps
pip uninstall google-search-results
pip install serpapi

# Update imports across codebase
# OLD: from serpapi import GoogleSearch
# NEW: import serpapi

Node.js: google-search-results-nodejs to serpapi

// BEFORE: Legacy
import { GoogleSearch } from 'google-search-results-nodejs';
const search = new GoogleSearch('api_key');
search.json({ q: 'test', engine: 'google' }, (result) => { ... });

// AFTER: Current (Promise-based)
import { getJson } from 'serpapi';
const result = await getJson({ engine: 'google', q: 'test', api_key: key });
// No callbacks -- uses Promises natively

Key Changes

Aspect Legacy Current
Python import from serpapi import GoogleSearch import serpapi
Python init GoogleSearch(params_dict) serpapi.Client(api_key=key)
Python search search.get_dict() client.search(engine="google", q=...)
Node import google-search-results-nodejs serpapi
Node pattern Callback-based Promise/async-await
Engine param Via class name (GoogleSearch, BingSearch) Via engine parameter

Migration Checklist

  • Replace package: pip install serpapi / npm install serpapi
  • Update all imports
  • Replace class-per-engine with engine parameter
  • Replace callbacks with async/await (Node.js)
  • Remove .get_dict() calls (Python -- result is already dict)
  • Test all search queries return expected structure
  • Update CI dependencies

Resources

Next Steps

For CI integration, see serpapi-ci-integration.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-serpapi-upgra-345860/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-serpapi-upgra-345860.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-serpapi-upgra-345860",
  "kind": "skill",
  "name": "serpapi-upgrade-migration",
  "description": "Migrate between SerpApi client versions and handle package changes. Use when upgrading from google-search-results to serpapi package, or handling API response schema changes. Trigger: \"upgrade serpapi\", \"serpapi migration\", \"serpapi new package\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "saas",
      "search",
      "seo",
      "serpapi",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Migrate between SerpApi client versions and handle package changes. Use when upgrading from google-search-results to serpapi package, or handling API response schema changes. Trigger: \"upgrade serpapi\", \"serpapi migration\", \"serpapi new package\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/saas-packs/serpapi-pack/skills/serpapi-upgrade-migration/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/saas-packs/serpapi-pack/skills/serpapi-upgrade-migration/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/saas-packs/serpapi-pack/skills/serpapi-upgrade-migration/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit,",
      "Bash(npm:*),",
      "Bash(pip:*),",
      "Bash(git:*)"
    ],
    "license": "MIT"
  },
  "instructions": "# SerpApi Upgrade & Migration\n\n## Overview\n\nThe main migration path: `google-search-results` (legacy) to `serpapi` (current official package). The API itself is stable -- changes are in client library interfaces, not the REST API.\n\n## Instructions\n\n### Python: google-search-results to serpapi\n\n```python\n# BEFORE: Legacy package\nfrom serpapi import GoogleSearch\nsearch = GoogleSearch({\"q\": \"test\", \"api_key\": key})\nresult = search.get_dict()\n\n# AFTER: New official package\nimport serpapi\nclient = serpapi.Client(api_key=key)\nresult = client.search(engine=\"google\", q=\"test\")\n# Result is already a di",
  "cost": {
    "context_tokens": 609
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-serpapi-upgra-345860/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.