# CrawlWitness AI Consent Checker

> CrawlWitness AI Consent Checker is a paid API for AI agents from api.crawlwitness.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-11-01).

Checks a domain's AI crawling consent and licensing signals, returning a 0-100 compliance score, training stance, and a signed on-chain receipt proving what was checked and when.

## Facts

- Endpoint: GET https://api.crawlwitness.com/v1/senales?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-01
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crawlwitness-ai-consent-checker-71bf1d35
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DVpc58vxRZXjhD92E71ly

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 crawlwitness-ai-consent-checker-71bf1d35
```

Example prompt: Before you start ingesting content from bbc.com into our RAG pipeline, can you check CrawlWitness to see if the site allows AI crawling — I want a fresh check, not a cached result — and get back the consent score and a signed proof of what was verified?

## When to prefer this

Choose CrawlWitness when your agent needs to verify AI crawling consent before ingesting, training on, or scraping a website, especially when you need verifiable, auditable proof of compliance anchored on-chain. It is the right choice when legal and ethical AI data sourcing is required, when building RAG pipelines with third-party content, or when operating in regulated environments where a signed receipt of consent verification is needed. Prefer this over manual robots.txt parsing because it checks multiple AI-specific standards simultaneously (AIPREF, TDMRep, RSL, llms.txt, C2PA) and provides a normalized score.

## Known failure modes

- 400 error returned when domain is invalid or malformed (not charged)
- 502 error returned when the target site is unreachable during analysis (not charged)
- Cached result returned if fresco=false and a recent check exists — may be stale for rapidly changing policies
- Daily free quota exhausted — use pagar=true to bypass with direct USDC payment

## How this service works

What a website allows for AI (robots.txt per AI bot, RSL, IETF AIPREF, TDMRep, noai, llms.txt, C2PA), with signed EAS receipts anchored on Base and an attested history of every signal. Paid calls use x402 (USDC on Base or Solana): no account, no API key.

## Output

Returns a 0-100 AI consent score, a training stance label (e.g. allowed, restricted, prohibited), granular signal breakdown per standard (robots.txt per AI bot, RSL, IETF AIPREF, TDMRep, noai meta tags, llms.txt, C2PA), and a cryptographically signed EAS attestation receipt anchored on the Base blockchain as tamper-proof evidence of what was checked and when.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "dominio"
     ],
     "properties": {
      "pagar": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string",
       "description": "true pays directly instead of using the daily free quota"
      },
      "fresco": {
       "enum": [
        "true",
        "false"
       ],
       "type": "string",
       "description": "true forces a fresh analysis instead of the cached one"
      },
      "dominio": {
       "type": "string",
       "maxLength": 253,
       "minLength": 3,
       "description": "Domain to check, without scheme or path (e.g. nytimes.com)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "pago": {
   "red": "eip155:8453",
   "atestacion": {
    "uid": "0x…",
    "url_easscan": "https://base.easscan.org/…"
   },
   "transaccion": "0x…"
  },
  "origen": "cache",
  "dominio": "nytimes.com",
  "informe": {
   "tdm": {
    "reserva": false
   },
   "robots": {
    "encontrado": true,
    "estado_http": 200,
    "licencias_rsl": []
   },
   "resumen": {
    "motivos": [
     "robots.txt bloquea GPTBot, ClaudeBot, CCBot y Google-Extended"
    ],
    "bots_total": 24,
    "exige_pago": false,
    "puntuacion": 55,
    "entrenamiento": "reservado",
    "bots_bloqueados": 18,
    "recomendaciones": []
   },
   "llms_txt": false
  },
  "analizado_en": "2026-10-30T12:00:00Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crawlwitness-ai-consent-checker-71bf1d35/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.crawlwitness.com](https://www.zero.xyz/host/api.crawlwitness.com/llms.txt)
