# Witness AI Permission Checker

> Witness AI Permission Checker is a paid API for AI agents from witness.holoweave.org, paid per call via x402, $0.01/call, status down (last checked 2026-09-15).

Fetches and verifies whether a named AI agent is permitted to fetch or train on a given URL, by reading robots.txt, noai meta tags, TDM reservations, and X-Robots-Tag signals, returning a signed attestation verdict.

## Facts

- Endpoint: POST https://witness.holoweave.org/v1/ai-permission
- Price: $0.01/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/witness-ai-permission-checker-b6bb10a8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_vKjONnqsBGVOf6WlYGwID

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability witness-ai-permission-checker-b6bb10a8 -d '<json body>'
```

Example prompt: Before we scrape https://example.com for training data, can you check whether GPTBot is actually allowed to do that — fetch the robots.txt and any noai signals on the page and give me a signed verdict?

## When to prefer this

Use this endpoint when you need a cryptographically signed, auditable, source-of-truth verdict on whether a specific AI agent is permitted to fetch or train on a URL — especially when you need to store proof of compliance or detect policy drift over time. Prefer this over manual robots.txt parsing when you need multi-signal aggregation (robots.txt + noai meta + TDM + X-Robots-Tag) in a single call, or when your pipeline requires an independent witness attestation rather than self-reported permission.

## Known failure modes

- URL is unreachable or returns non-200 — evidence may be incomplete or verdict defaults to unknown
- robots.txt is malformed or absent — falls back to page-level signals only
- Agent token not recognized in any robots.txt group — matched against wildcard group
- expect_digest provided but no prior state exists — attestation may not include drift info
- Target URL behind authentication or CAPTCHA — page-level noai signals cannot be read
- Network timeout fetching the target URL — partial evidence, verdict may be inconclusive

## How this service works

Web bot auth debugging for AI agents, priced per check at $0.01. RFC 7638 keyid thumbprint verification, RFC 9421 Ed25519 signature verification, and per-verifier acceptance rules. Signed attestations, published fixtures, sources with dates.

## Output

A signed ed25519-attested JSON object containing a verdict (allow/fail), the evidence used (robots.txt groups, noai tags, TDM signals, X-Robots-Tag), a list of findings with severity levels (blocking, warning, etc.), and metadata about the agent and use type checked. The signature includes a key_id and algorithm for independent verification.

## Response schema (JSON Schema)

```json
{
 "example": {
  "signature": {
   "alg": "ed25519",
   "value": "base64...",
   "key_id": "aw-attest-2026-08"
  },
  "attestation": {
   "verdict": "fail",
   "endpoint": "ai-permission",
   "evidence": {
    "use": "train",
    "agent": "GPTBot",
    "robots": {
     "groups": 62,
     "present": true,
     "fetch_allowed": false,
     "matched_group": "gptbot"
    }
   },
   "findings": [
    {
     "code": "ROBOTS_DISALLOW",
     "detail": "robots.txt group \"gptbot\" disallows / for GPTBot (rule: Disallow: /).",
     "severity": "blocking"
    }
   ]
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/witness-ai-permission-checker-b6bb10a8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from witness.holoweave.org](https://www.zero.xyz/host/witness.holoweave.org/llms.txt)
