Professional Python SDK for JustSerpAPI
Project description
JustSerpAPI Python SDK
OpenAPI-driven Python SDK for JustSerpAPI with a stable high-level Client as the public entrypoint.
Installation
pip install justserpapi
Quick Start
from justserpapi import Client
with Client(api_key="YOUR_API_KEY") as client:
response = client.google.search(
query="coffee shops in New York",
location="New York, NY",
language="en",
)
print(response)
print(response["data"])
Promoted High-Level API
The high-level surface is designed to be the default entrypoint:
from justserpapi import Client
client = Client(api_key="YOUR_API_KEY", timeout=20.0)
search = client.google.search(query="best espresso beans", language="en")
maps = client.google.maps.search(query="espresso bars", location="Shanghai")
news = client.google.news.search(query="OpenAI", language="en")
images = client.google.images.search(query="espresso machine")
shopping = client.google.shopping.search(query="espresso tamper")
overview = client.google.ai.overview(url="https://example.com/ai-overview")
print(search["data"])
client.close()
Promoted high-level responses are plain Python dictionaries that mirror the API's JSON response envelope. The SDK does not auto-unpack data.
Configuration
The public client exposes the common knobs directly:
from justserpapi import Client
from urllib3.util.retry import Retry
client = Client(
api_key="YOUR_API_KEY",
base_url="https://api.justserpapi.com",
timeout=(5.0, 30.0),
retries=Retry(total=5, backoff_factor=0.5),
)
client.close()
api_key: value sent in theX-API-Keyheaderbase_url: API host, defaults tohttps://api.justserpapi.comtimeout: default request timeout injected into promoted high-level methodsretries:urllib3retry configuration; defaults to a conservative retry strategy for the high-level client
OpenAPI Control Plane
This repository only owns the Python SDK. The canonical OpenAPI document plus the Python-specific control-plane files in config/, scripts/, and overlays/python/ drive generation and validation.
- If
openapi/justserpapi.openapi.jsonis committed, local generation is fully reproducible. - If it is not committed, CI can fetch and cache it by running
python scripts/sdkctl.py fetch-specwithJUSTSERPAPI_API_KEYconfigured.
If the API changes, update these files:
openapi/justserpapi.openapi.json: the current canonical spec used to validate and generate the SDKopenapi/baseline/justserpapi.openapi.json: the previous released spec snapshot used only for breaking-change checks
Typical maintenance flow after an API change:
cp /path/to/latest-openapi.json openapi/justserpapi.openapi.json
python scripts/sdkctl.py validate-examples
python scripts/sdkctl.py validate-spec
python scripts/sdkctl.py breaking-check
python scripts/sdkctl.py generate --clean
If this new spec is the one you are about to release, update the baseline after validation:
cp openapi/justserpapi.openapi.json openapi/baseline/justserpapi.openapi.json
Release
Official releases are tag-driven:
python scripts/sdkctl.py validate-examples
python scripts/sdkctl.py verify-release --tag vX.Y.Z
python -m build
git push origin vX.Y.Z
- The package version comes from
justserpapi/_version.py - If
openapi/justserpapi.openapi.jsonis committed, itsinfo.versionmust match the tag and package version - GitHub Actions publishes tagged releases to PyPI through Trusted Publishing
License
Distributed under the MIT License. See LICENSE for more information.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file justserpapi-3.0.1.tar.gz.
File metadata
- Download URL: justserpapi-3.0.1.tar.gz
- Upload date:
- Size: 56.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71efb2bc838c4ecf46e11c507e5ce6830646c948217d963c49b07e050f2c5d93
|
|
| MD5 |
e10b2f80947575e738813c014f5720d8
|
|
| BLAKE2b-256 |
1b71bd43427baffa4c041242c3378a9375f577f08661d1aea2d358282b3ea96b
|
File details
Details for the file justserpapi-3.0.1-py3-none-any.whl.
File metadata
- Download URL: justserpapi-3.0.1-py3-none-any.whl
- Upload date:
- Size: 55.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd795aa337500b47f0be0b259bfcdfa8bb4199b12ac15c5e202d75e851f9e7d3
|
|
| MD5 |
4c0eda2a820ca2f54af75010b65a41b3
|
|
| BLAKE2b-256 |
a11dc853fc0e2f0fe8b3799cd79df150fa7ee2bac57ab161bbad9c999ad4d0f3
|