# CrawlWitness

> AI consent and licensing oracle: what a website allows for AI training, RAG and search, from robots.txt (per AI bot), RSL licenses, IETF AIPREF, W3C TDMRep, noai meta tags, llms.txt and C2PA — with a signed receipt (EAS attestation anchored on Base) that proves what was checked and when.

## When to use

- Before crawling, training on or ingesting content from a domain into RAG.
- Before an agent pays or receives from a crypto wallet: sanctions screening (OFAC SDN) with a signed record.
- To keep auditable evidence of the consent signals in force at the time of use (EU AI Act Art. 53, copyright opt-outs).
- To know what a domain's robots.txt said on a past date (attested history).

## API

- [OpenAPI 3.1](https://api.crawlwitness.com/openapi.json)
- `GET https://api.crawlwitness.com/v1/senales?dominio=example.com` — full report. Paid: 0.005 USD per call via x402 v2 (USDC on Base or Solana, no account or API key). Without payment it returns HTTP 402 with the `PAYMENT-REQUIRED` header; pay and retry with `PAYMENT-SIGNATURE`. A small daily free quota applies unless `pagar=true`.
- `GET https://api.crawlwitness.com/v1/can-use?domain=example.com&bot=GPTBot&use=train` — paid yes/no verdict per domain, AI bot and use (train, rag, search) with reasons and a signed receipt; the cheapest call, made for crawlers and RAG pipelines.
- `POST https://api.crawlwitness.com/v1/batch` with `{"domains":[…up to 100], "bot":"GPTBot", "use":"train"}` — the same verdict for many domains in one payment (price by size: up to 25 or up to 100 domains).
- `GET https://api.crawlwitness.com/v1/wallet-check?address=0x…` — paid sanctions screening of a crypto address against the US OFAC SDN list before an agent pays it (EVM, BTC, TRX, SOL…), with the list version used and a signed receipt; `POST` with `{"addresses":[…up to 100]}` for many.
- `GET https://api.crawlwitness.com/v1/puntuacion/example.com` — free score (0-100) and training stance.
- `GET https://api.crawlwitness.com/v1/historial/example.com` and `/v1/historial/example.com/robots?en=2026-01-01T00:00:00Z` — free attested history.
- `GET https://api.crawlwitness.com/v1/atestaciones/<uid>` — free: the signed receipt of a paid query.

## MCP

- Remote server (Streamable HTTP, stateless): `https://api.crawlwitness.com/mcp`
- Tools: `check_ai_consent`, `can_ai_use` and `check_wallet` (paid, x402 MCP transport: `_meta["x402/payment"]`), `ai_consent_score`, `signal_history`, `verify_receipt` (free).
- Claude Code: `claude mcp add --transport http crawlwitness https://api.crawlwitness.com/mcp`

## Paying with x402

- TypeScript: `@x402/fetch` (`wrapFetchWithPayment`) or `@x402/mcp` (`wrapMCPClientWithPayment`).
- Python: package `x402` (clients for `requests` and `httpx`).
- Every paid response includes an `offer-receipt` signed receipt in `PAYMENT-RESPONSE` and the oracle's own receipt (`pago.recibo`, EIP-191, verifiable with `cast wallet verify`).

## Monthly plans (card)

- Pricing and checkout: https://api.crawlwitness.com/precios. With a key, send `Authorization: Bearer cw_live_…` instead of x402 (REST and MCP); usage: `GET https://api.crawlwitness.com/v1/suscripcion`. 1 credit per verdict, 5 per full report.
