py-gitguardian - GitGuardian API Client
API client library for the GitGuardian API.
The GitGuardian API puts at your fingertips the power to detect more than 200 types of secrets in any text content, as well as other potential security vulnerabilities.
py-gitguardian can be used to create integrations to scan various data sources, from your workstation's filesystem to your favorite chat application.
You can check API details here with all the response codes and expected structures on each method.
Requirements
Python 3.9+
Projects using py-gitguardian
- GitGuardian Shield - Scan for secrets in your CI and pre-commit.
Getting started
You can obtain API keys for API usage on your dashboard.
pip
pip3 install --upgrade pygitguardian
pipenv
pipenv install pygitguardian
pdm
pdm add pygitguardian
poetry
poetry add pygitguardian
Examples
Check examples/ for full examples on how to use py-gitguardian.
Scanning text content
# please don't hardcode your gg_api_key in source code :)
API_KEY = os.getenv("GITGUARDIAN_API_KEY")
DOCUMENT = """
import urllib.request
url = 'http://jen_barber:correcthorsebatterystaple@cake.gitguardian.com/isreal.json'
response = urllib.request.urlopen(url)
consume(response.read())"
"""
client = GGClient(api_key=API_KEY)
# Check the health of the API and the API key used.
if client.health_check().success:
try:
scan_result = client.content_scan(DOCUMENT)
except Exception as exc:
# Handle exceptions such as schema validation
traceback.print_exc(2, file=sys.stderr)
print(str(exc))
print(scan_result)
else:
print("Invalid API Key")
Scanning multiple files
API_KEY = os.getenv("GITGUARDIAN_API_KEY")
client = GGClient(api_key=API_KEY)
# Create a list of dictionaries for scanning
file_paths = (pathlib.Path(name) for name in glob.iglob("**/*", recursive=True))
to_scan = [
{"filename": path.name, "document": path.read_text(errors="replace")}
for path in file_paths
]
scan = client.multi_content_scan(to_scan)
Transform results to dict or JSON
Any model in py-gitguardian can be turned to a JSON string or a dictionary using
the to_dict and to_json methods.
from pygitguardian.models import Detail
detail = Detail("Invalid API Key.")
print(detail.to_dict())
print(detail.to_json())
Dependencies
Py-gitguardian depends on these excellent libraries:
requests- HTTP clientmarshmallow- Request (de)serialization and input validation
Metadata
Release files for pygitguardian 1.36.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pygitguardian-1.36.0.tar.gz | 67.7 kB | With provenance | Details for pygitguardian-1.36.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pygitguardian-1.36.0-py3-none-any.whl | Python 3 | none | any | Details for pygitguardian-1.36.0-py3-none-any.whl |
Total release size: 92.7 kB
Release files / pygitguardian-1.36.0.tar.gz
| Download URL | pygitguardian-1.36.0.tar.gz |
|---|---|
| Size | 67.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
081aa7ed2c2c33be24be052e0fea5b55a7098d34aefe45c1fdbfa6ad6c0d5a49
|
|
BLAKE2b-256 checksum How to use checksums |
024434009805f24d266618eec3a02ef8e21127f2918ccf7ac56e93c6698f9ffc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logRelease files / pygitguardian-1.36.0-py3-none-any.whl
| Download URL | pygitguardian-1.36.0-py3-none-any.whl |
|---|---|
| Size | 25.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f69f60e8acbed0886fe841e8a7dd1411367640321e8dd3dc9433533aa9472c74
|
|
BLAKE2b-256 checksum How to use checksums |
c28c11dad0f4a124240f7867762637787e7a988efdb6c431010a137062f32a93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logSecurity for pygitguardian 1.36.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pygitguardian-1.36.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.