Skip to content
Back to skills

Serpapi Install Auth

BSecurity

Install an official SerpAPI client, configure the private API key for server-side use, and verify account access without leaking credentials. Use when starting or repairing a SerpAPI integration. Trigger with "configure SerpAPI access".

  • 2,719 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 21, 2026
ai-agentsjavascriptpythonjavashellbashnodegitapidocumentation

Works with

  • claude code
  • cli
  • api

Security analysis

B84/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 21, 2026

npx -y skills add jeremylongshore/claude-code-plugins-plus --skill serpapi-install-auth --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Serpapi Install Auth?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Serpapi Install Auth
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremylongshore-serpapi-install-auth-6c6c6eec/badge)](https://www.skillsdirectory.com/skills/jeremylongshore-serpapi-install-auth-6c6c6eec)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: serpapi-install-auth
description: 'Install an official SerpAPI client, configure the private API key for server-side use, and verify account access without leaking credentials. Use when starting or repairing a SerpAPI integration. Trigger with "configure SerpAPI access".'
argument-hint: "[python|javascript] [environment]"
allowed-tools: Read, Glob, Grep, WebFetch, Write, Edit, Bash(python3:*), Bash(npm:*), Bash(curl:*)
version: 1.6.0
author: Jeremy Longshore <jeremy@intentsolutions.io>
license: MIT
tags: [saas, serpapi, authentication, python, javascript]
model: inherit
effort: medium
compatibility: Designed for Claude Code; package installation, secret creation, account access, and live searches require operator approval
---
# SerpAPI Client Installation and Authentication

## Overview

Select an official client, keep the private key server-side, and prove access with the free Account API before spending a search.

## Prerequisites

- A SerpAPI account and private key from the account dashboard
- Python or Node.js project ownership and an approved secret store
- A named environment and owner for usage, rotation, and revocation

## Tool Discipline

Use `Read`, `Glob`, and `Grep` to inspect dependency and configuration files, `WebFetch` to re-check official client and Account API documentation, `Write` or `Edit` for secretless configuration, and `Bash(python3:*)`, `Bash(npm:*)`, or `Bash(curl:*)` only after the operator approves installation or a live check.

## Current Contract

SerpAPI's current official packages are `serpapi` for Python and `serpapi` for JavaScript. Search and Account APIs authenticate with the private `api_key`. The Account API reports current quota and throughput fields and does not count against the monthly search allowance.

## Authentication

Store the key as `SERPAPI_KEY` in a server-side secret manager. Never commit it, expose it to browser code, print it, place it in a fixture, or persist a command containing it in shell history. Do not assume OAuth, scopes, or multiple independently scoped keys unless current account documentation confirms them.

## Instructions

1. Inspect the runtime, package manager, existing SerpAPI packages, `.gitignore`, secret-loading convention, and deployment environment.
2. Re-fetch the official Python or JavaScript client documentation and pin a version under the repository's dependency policy.
3. Present the dependency and secret-store changes before installing anything.
4. Install with `python3 -m pip install serpapi` or `npm install serpapi` after approval.
5. Add `SERPAPI_KEY` to the approved local and deployment secret stores; add only variable names and redacted examples to tracked files.
6. Verify access through the official client Account API and retain only non-secret fields such as account status, plan name, searches left, and hourly throughput.
7. Run a live search only when the operator explicitly accepts that it may consume allowance.

## Output

Return the selected client and pinned version, changed files, secret-store location, redacted Account API receipt, live-search decision, and rotation/revocation owner.

## Error Handling

| Condition | Response |
|---|---|
| `401 Unauthorized` | Confirm that the correct secret is loaded; never echo the value. |
| `403 Forbidden` | Treat the account as unauthorized or disabled and stop. |
| `429 Too Many Requests` | Query Account API to distinguish hourly throughput from exhausted searches. |
| Package collision | Remove legacy packages only through a reviewed migration plan. |

## Example

```python
import os
import serpapi

client = serpapi.Client(api_key=os.environ["SERPAPI_KEY"], timeout=10)
account = client.account()
print({key: account.get(key) for key in (
    "account_status", "plan_name", "plan_searches_left",
    "account_rate_limit_per_hour",
)})
```

## Resources

- [Official Python client](https://github.com/serpapi/serpapi-python)
- [Official JavaScript client](https://github.com/serpapi/serpapi-javascript)
- [Account API](https://serpapi.com/account-api)

## Next Steps

Run the hello-world workflow with a harmless query and record its search ID without recording the key.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.