agent-ready-client (Python SDK)
Official Python client SDK for the Agent Ready API — scan any public URL for AI agent-readability against the Vercel Agent Readability Spec, the llmstxt.org standard, and agent-protocol manifests (MCP server cards, A2A, agents.json, agent-permissions.json, UCP, x402, NLWeb).
Zero runtime dependencies — pure standard library (urllib). Python 3.8+.
Prefer the terminal? Use the
agent-ready-scannerCLI. Working in JS/TS? Seeagent-ready-clienton npm. This package is for calling the API from your own Python code.
Install
pip install agent-ready-client
Quick start
import os
from agent_ready import AgentReady
ar = AgentReady(api_key=os.environ["AGENT_READY_API_KEY"])
scan = ar.scan("https://example.com") # start + poll to completion
print(scan["vercelScore"], scan["vercelRating"]) # 96 "excellent"
for check in scan["siteChecks"]:
if check["status"] == "fail":
print(check["checkId"], check["name"], "->", check["howToFix"])
Authentication
scan, start_scan, get_scan, and list_scans require a Pro API key
(issue one at https://agent-ready.dev/dashboard/api-keys). Pass it explicitly
or set AGENT_READY_API_KEY in the environment:
ar = AgentReady() # reads AGENT_READY_API_KEY
ar = AgentReady(api_key="ar_live_...") # or pass it in
ask is public and needs no key.
API
AgentReady(api_key=None, base_url="https://agent-ready.dev", timeout=30.0)
| Method | Returns | Notes |
|---|---|---|
scan(url, page_limit=None, poll_interval=2.0, timeout=120.0) |
Scan |
Start and poll to completion. |
start_scan(url, page_limit=None) |
StartScanResponse |
Queue only; returns the id. |
get_scan(id) |
Scan |
Fetch a scan (running or finished). |
list_scans(limit=None, cursor=None) |
ScanListResponse |
Your scans, newest first. |
ask(query, item_type=None, mode=None) |
dict |
NLWeb doc search. No key required. |
scan_mcp(endpoint) |
McpScanResponse |
Grade a live MCP server (tools/resources/prompts). No key required. |
Fire-and-forget + poll later
started = ar.start_scan("https://example.com", page_limit=25)
# ...later...
scan = ar.get_scan(started["id"])
if scan["status"] == "completed":
print(scan["vercelScore"])
Errors
Every failure raises ApiError with a stable code and (when from a response)
an HTTP status:
from agent_ready import ApiError
try:
ar.scan("https://example.com")
except ApiError as err:
if err.code == "rate_limited":
... # back off and retry
Common codes: missing_api_key, unauthorized, subscription_required,
rate_limited, invalid_request, timeout, network_error.
Links
- API docs & OpenAPI 3.1 spec: https://agent-ready.dev/docs/api · https://agent-ready.dev/api/v1/openapi.json
- Methodology (all checks): https://agent-ready.dev/methodology
- JS/TS SDK: https://www.npmjs.com/package/agent-ready-client · CLI: https://www.npmjs.com/package/agent-ready-scanner
License
MIT © Agent Ready
Metadata
Release files for agent-ready-client 0.3.1
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 | |
|---|---|---|---|---|
| agent_ready_client-0.3.1.tar.gz | 6.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_ready_client-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.7 kB
Release files / agent_ready_client-0.3.1.tar.gz
| Download URL | agent_ready_client-0.3.1.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
651b518cd4923b75ad8a0612af1108c5832b3427e957d410137c6c746a3b7707
|
|
BLAKE2b-256 checksum How to use checksums |
be9334154b62fe3f9c838b242a9e0e3a57dca02597770797732dc5679e1214c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|
Release files / agent_ready_client-0.3.1-py3-none-any.whl
| Download URL | agent_ready_client-0.3.1-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eb8aeceeca1771ee852315945599d6d81d979857982e9b251df4e7bcb685fb67
|
|
BLAKE2b-256 checksum How to use checksums |
746944e99a9730699eff82f5c148441f282b643e17e79a40df52cc9a8a3f6252
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.4
|
Security for agent-ready-client 0.3.1
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.