isgenai
Python client for the isGenAI check API. Send an image, a public URL, a passage of text or a piece of code to POST https://isgenai.com/v1/check and get back the JSON result: AI-image and AI-text detector evidence, Content Credentials (C2PA), AI labels in metadata, saved generation prompts and known-copy matches, each finding with its source.
- Standard library only (no dependencies), Python 3.8+.
- No API key is needed for the documented public endpoints. Record checks (Content Credentials, AI labels, saved prompts) are unlimited; the public API allows a few AI scans per day per IP address.
- Paid plans (from US$5 a month) add monthly AI scans; pass the key from https://isgenai.com/account as
api_key. - Checks are private by default (
privacy="private",public_receipt=False): no public report is created unless you ask for one.
Install
pip install isgenai
Use
import isgenai
# A local image (PNG, JPEG, WebP, AVIF, TIFF, up to 20 MB)
result = isgenai.check_file("picture.png")
print(result["public_result"]["headline"])
# A public image or page URL
result = isgenai.check_url("https://isgenai.com/examples/saved-details/with-saved-details.png")
for item in result["evidence"]:
print(item["class"], item["outcome"], item["summary"])
# Text
result = isgenai.check_text("Paste the paragraph you want to check here. Longer passages give steadier results.")
print(result["public_result"]["summary"])
# Code
result = isgenai.check_code("def add(a, b):\n return a + b", language="Python")
Every function returns the parsed JSON as a dict. The shape is documented in the OpenAPI file at https://isgenai.com/openapi.json and on https://isgenai.com/api. Useful keys:
| Key | Meaning |
|---|---|
public_result.headline / summary |
The headline isGenAI shows, with the caveat that applies |
verdict |
The machine-readable verdict |
evidence[] |
Each finding: provider, class (cryptographic_provenance, declarative_metadata, explicit_disclosure, probabilistic_detector, historical_match, ...), outcome, strength, summary, details |
disclosures[] |
AI disclosures read from the page or file |
adapter_runs[] |
Which detectors ran and their status (available, not_configured, rate_limited, ...) |
ai_scans |
Scans used, limit and remaining for the caller |
receipt |
Present only for public checks (the public report) |
Options
All functions accept privacy ("private" or "public"), public_receipt (bool), api_key, endpoint and timeout. check_file, check_url and check_text also accept deep=True for a slower, more thorough pass where available.
Errors
Non-2xx responses raise isgenai.IsGenAIError with .status, .code and .body:
try:
isgenai.check_text(text)
except isgenai.IsGenAIError as exc:
if exc.status == 429:
print("Daily public scans used up; add an api_key or try tomorrow.")
else:
print(exc)
What a result means
A missing Content Credential or label is not proof that a person made the image: metadata is often removed when files are re-saved or uploaded. A detector score is a probabilistic estimate, not a verdict. isGenAI reports exactly what was found and names the source of every finding. Methodology: https://isgenai.com/checker-methodology
License
MIT. Not affiliated with any AI model vendor.
Metadata
Release files for isgenai 0.1.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 |
|---|---|---|---|---|
| isgenai-0.1.0.tar.gz | 6.7 kB | Without provenance | Details for isgenai-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| isgenai-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for isgenai-0.1.0-py3-none-any.whl |
Total release size: 13.4 kB
Release files / isgenai-0.1.0.tar.gz
| Download URL | isgenai-0.1.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f6632534e685c39654894eea5a76a3fbdb49b262c3b7a5d6b03f223e028bfff1
|
|
BLAKE2b-256 checksum How to use checksums |
8a5db2c0a565a853864e5d96f6ecc57102e0b8b5daee9e1f6a481a811c6a702e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|
Release files / isgenai-0.1.0-py3-none-any.whl
| Download URL | isgenai-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d2a4c5b6d95252a595526654ba23c14a8f1e20c446b33fd136d2d297428e13f
|
|
BLAKE2b-256 checksum How to use checksums |
57fb58103db8a6793aa009f0a207617b626e21313dbf3df63aeb330a7386029d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.1
|
Security for isgenai 0.1.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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.