# AX-SYS-04: Let agents authenticate without human-only gates

> Access and identity · foundational · AX-SYS-04

Offer scoped API tokens instead of browser-only OAuth, and return explicit permission errors. Never put CAPTCHAs on API endpoints.

## Why

Agents stall on CAPTCHAs and interactive OAuth. The canonical AX framework (agentexperience.ax — Agent Accessibility) states that requiring a human where not absolutely necessary is an anti-pattern, and that the quality ceiling of an agent experience is capped at the level of access parity provided to agents versus other mediums. MCP best practices require scoped token auth with no human-only gates on API endpoints.

## Do

Issue scoped keys and return 403 with a reason.

## Don't

Gate API endpoints behind a human challenge.

## Artifact

```http
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_scope", scope="orders:write"
Content-Type: application/json

{
  "error": "insufficient_scope",
  "message": "This token cannot write orders.",
  "required_scope": "orders:write",
  "your_scopes": ["orders:read"],
  "grant_at": "https://acme.com/settings/tokens",
  "docs": "https://acme.com/docs/scopes.md"
}
```

## Citations

1. [agentexperience.ax — Principles of AX](https://agentexperience.ax/concepts/principles-of-ax/) — Agent Accessibility: requiring a human where not absolutely necessary is an anti-pattern; quality ceiling is capped at access parity between agents and other mediums
2. [Mathias Biilmann — One Year of AX](https://biilmann.blog/articles/one-year-of-ax/) — Access pillar: Can the agent access your product? Do they have the right permissions? Must the human be in the loop?
3. [MCP Specification 2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25) — MCP requires OAuth 2.0 authorization flows with scoped tokens; CAPTCHA on API endpoints blocks agent access entirely

---
Source: Agent Experience Principles (axprinciples.com)