The AI Agent Access Control Standard
Define what AI agents are allowed to do on your site — before they do it.
AI agents — crawlers, shopping bots, voice assistants, autonomous research tools — interact with websites in ways robots.txt was never designed to govern. They submit forms, extract PII, initiate purchases, and operate at machine speed. Site operators have no standard way to express intent, and agents have no standard way to ask for permission.
agent-policy.json and ai.txt fill that gap: a machine-readable contract between operators and AI systems, designed for the agentic web.
| Format | Location | Purpose |
|---|---|---|
agent-policy.json |
/.well-known/agent-policy.json |
Structured, machine-readable policy with granular per-capability controls |
ai.txt |
/ai.txt |
Human-readable plain-text summary for quick inspection; mirrors robots.txt conventions |
Use both. agent-policy.json is the authoritative source. ai.txt is the human-scannable summary.
Visit agentpolicy.vercel.app, enter your URL and industry, and download a ready-made agent-policy.json + ai.txt pair in seconds.
Create /.well-known/agent-policy.json on your server:
{
"version": "1.0",
"read_access": "allowed",
"form_submission": "disallowed",
"data_collection": "disallowed",
"purchase_authority": "disallowed",
"rate_limit": { "requests_per_minute": 30 }
}| Field | Type | Values | Description |
|---|---|---|---|
version |
string | "1.0" |
Spec version (required) |
read_access |
string | allowed | disallowed | conditional |
Whether agents may read page content |
form_submission |
string | allowed | disallowed | conditional |
Whether agents may submit forms |
data_collection |
string | allowed | disallowed | conditional |
Whether agents may extract or store user data |
purchase_authority |
string | allowed | disallowed | conditional |
Whether agents may initiate or complete purchases |
rate_limit |
object | — | Request frequency controls |
contact |
string | email or URL | Policy contact for questions |
last_updated |
string | ISO 8601 date | When this policy was last revised |
| Field | Type | Description |
|---|---|---|
requests_per_minute |
integer | Max requests per minute per agent |
requests_per_day |
integer | Max requests per day per agent |
crawl_delay_seconds |
number | Minimum seconds between requests |
When a field is set to conditional, include an _conditions sibling key:
{
"form_submission": "conditional",
"form_submission_conditions": "Search and contact forms only. No checkout or account creation."
}See the examples/ directory for industry-specific configurations:
examples/ecommerce/agent-policy.jsonexamples/saas/agent-policy.jsonexamples/healthcare/agent-policy.jsonexamples/media/agent-policy.json
- v1.0 core field set
- Generator tool at agentpolicy.vercel.app
- Industry presets (e-commerce, SaaS, healthcare, media, finance)
-
agent-policy.jsonJSON Schema (for validation tooling) - Browser extension for site scanning
- CLI validator:
npx check-agent-policy https://example.com - Per-path policy overrides (
path_overrides) - Agent identity assertions (
agent_allowlist,agent_blocklist) - Cryptographic signing support
See CONTRIBUTING.md.
Short version: open an issue to discuss a change, then submit a PR against main. All spec changes require at least one real-world use case to justify them.
MIT — see LICENSE.