Blockquote Python SDK and CLI
Official client for Blockquote. Requires Python 3.10 or later. No runtime dependencies.
pip install blockquote-agents
import os
import uuid
from blockquote_agents import Blockquote, BlockquoteError
client = Blockquote(api_key=os.getenv("BLOCKQUOTE_API_KEY"))
started = client.start_scan("https://example.com", idempotency_key=str(uuid.uuid4()))
print(started.data, started.headers.get("Retry-After"))
# Wait for Retry-After, then read the returned id.
report = client.get_scan(started.data["id"])
comparison = client.compare_scans(from_id="BASELINE_ID", to_id="NEW_ID")
Each call returns a Response with data, status, and HTTP headers.
BlockquoteError retains data, status, headers, and retry_after. Network errors pass through.
Requests time out after 30 seconds. Set timeout in the constructor to change this.
The client does not retry or poll automatically. Scans can return a cached result or pending status.
Reuse an idempotency key only when you repeat the same scan request.
Public report reads need no key. Account access uses an optional bearer key from your account.
Keys require Pro or Agency. Unattended scan creation can require a paid key with the scan scope.
Human verification still applies where required. Pass turnstile_token when available; the SDK does not obtain or bypass verification.
Pass refresh=True to request a fresh scan with account authentication. Scan quotas still apply.
Read access and comparison output follow your account plan.
See the API reference and OpenAPI document.
Run tests from this package directory:
python3 -m unittest discover -s tests
Command line
The package installs the blockquote command. python -m blockquote_agents runs the same CLI.
python -m pip install --upgrade blockquote-agents
blockquote --help
blockquote read SCAN_ID
blockquote scan https://example.com --idempotency-key UNIQUE_REQUEST_ID
blockquote compare BASELINE_ID NEW_ID
Set BLOCKQUOTE_API_KEY for account access. Set BLOCKQUOTE_TURNSTILE_TOKEN only when you have a human verification token.
Use --refresh with scan to request a fresh scan. Authentication and quota rules remain the same.
The CLI prints JSON with data, status, and headers. It does not poll or retry.
HTTP failures print server data, headers, status, and retryAfter to stderr with exit code 1.
Other request failures print only their error type to avoid exposing credentials. Invalid arguments exit with code 2.
Metadata
Release files for blockquote-agents 0.1.2
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 | |
|---|---|---|---|---|
| blockquote_agents-0.1.2.tar.gz | 6.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| blockquote_agents-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.3 kB
Release files / blockquote_agents-0.1.2.tar.gz
| Download URL | blockquote_agents-0.1.2.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0b6be607e6a2b9cca883109181dd91eadf55279cc71e2f4d1327b752fd388a2
|
|
BLAKE2b-256 checksum How to use checksums |
818f64832232066ac3c7f7b7123a21471f9650364ff468571541a6d42b566de5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 22, 2026.
Transparency logRelease files / blockquote_agents-0.1.2-py3-none-any.whl
| Download URL | blockquote_agents-0.1.2-py3-none-any.whl |
|---|---|
| Size | 6.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ec7eb6f7d021592b042a5587f7ac3af764dc264f800513f7720187da82455405
|
|
BLAKE2b-256 checksum How to use checksums |
a6b65b9230c072dea5b054bc254845b154b1fac6f922c679f513b1dce7881c9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 22, 2026.
Transparency logSecurity for blockquote-agents 0.1.2
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 blockquote_agents-0.1.2.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 Sep 22, 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.