# 402registry AI Crawler Discoverability Audit (two-check pack)

> 402registry AI Crawler Discoverability Audit (two-check pack) is a paid API for AI agents from 402registry.com, paid per call via x402, $3/call, status unknown (last checked 2026-10-14).

Runs a pay-per-check audit of a website to reveal exactly what AI crawlers (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot) see, returning a score, verdict, and optional public catalog listing — purchased as a two-check pack via x402 micropayment.

## Facts

- Endpoint: GET https://402registry.com/buy/two?utm_source=zero.xyz
- Price: $3/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/402registry-ai-crawler-discoverability-audit-two-check-pack-61523baa
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_C_QxdfHKxkhLfOmgv9MSx

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 402registry-ai-crawler-discoverability-audit-two-check-pack-61523baa
```

Example prompt: Check whether https://mycompany.com is actually visible to AI crawlers like GPTBot and ClaudeBot — I want the full discoverability audit, add it to the public catalog if it passes, and set up weekly re-checks so I get notified at https://mycompany.com/hooks/ai-audit if anything changes.

## When to prefer this

Choose this endpoint when you need to know specifically what AI crawlers (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot) see on a site — not a browser render or standard SEO audit. It is the right choice when you want a dated badge and public catalog listing as proof of AI accessibility, when you need ongoing monitoring with webhook notifications for score changes, or when you require a no-account, no-login micropayment flow via x402. Prefer it over general SEO tools when the question is AI-crawler visibility specifically, not Google PageRank or human UX.

## Known failure modes

- Invalid or non-HTTPS site URL causes refusal before payment is taken
- Unknown enum value for catalog or monitor parameter causes pre-payment refusal
- Payment not received or insufficient USDC causes 402 Payment Required response
- Site could not be fetched by any crawler, returning score:null and verdict:doubt with 0 credits spent
- Notify webhook URL fails delivery three consecutive times and is automatically disarmed
- x402 protocol version mismatch if unsupported version string is sent

## How this service works

Pay-per-check discoverability audit: $2 to see what an AI crawler actually sees on your site — GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, not a browser render. A passing check earns a dated badge and a registry listing. No account, no card, no human.

## Output

A JSON receipt with a boolean ok, a verdict enum (listed/refused/doubt), a 0-100 discoverability score, the number of findings, a URI to the full HTML or JSON report, catalog listing outcome, payment transaction hash, credits used, and optionally a monitoring schedule object showing next re-check timing. If the same payment is replayed, the response includes replay:true with the original settlement time and no additional charge.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "site": {
   "type": "string",
   "description": "The https URL to check. Required to actually pay; omitted, the response is just the price list."
  },
  "notify": {
   "type": "string",
   "description": "An https:// URL we POST to when a scheduled re-check finds a change: the site lost or regained its listing, or its score dropped materially. Needs monitor= as well, since it only fires on scheduled re-checks. The payload carries a verify URL — the free public lookup — so you confirm against the record instead of trusting the webhook. Delivery is best effort: the record is authoritative, and after three consecutive failed deliveries the URL is disarmed. Nothing is sent when our own model was unavailable, because that is not a change in your site."
  },
  "catalog": {
   "enum": [
    "yes",
    "no"
   ],
   "type": "string",
   "description": "A passing site is listed in the free public catalog by default. Send no to keep the result private — you get the same full analysis either way, and nothing about a failed check is ever published. An unknown value is refused before any payment is taken."
  },
  "monitor": {
   "enum": [
    "daily",
    "weekly",
    "monthly"
   ],
   "type": "string",
   "description": "Opt in to scheduled re-checks at this cadence. Omit it for a one-off check — nothing is ever re-checked unless you ask. Each scheduled check spends one credit, and monitoring stops when the balance reaches zero. It only starts when the verdict is `listed`; an unknown value is refused before any payment is taken."
  },
  "x402Version": {
   "enum": [
    "1",
    "2"
   ],
   "type": "string",
   "description": "Force the older x402 protocol version with 1. The default is 2, with the requirements in the PAYMENT-REQUIRED header."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "ok",
  "pack",
  "report",
  "payment"
 ],
 "properties": {
  "ok": {
   "type": "boolean"
  },
  "note": {
   "type": "string"
  },
  "pack": {
   "enum": [
    "one",
    "two",
    "four"
   ],
   "type": "string"
  },
  "score": {
   "type": [
    "integer",
    "null"
   ],
   "description": "0-100; null when the site could not be scored."
  },
  "checks": {
   "type": "integer",
   "description": "Replay form only: checks in the pack."
  },
  "listed": {
   "type": "boolean",
   "description": "Whether this purchase put the site in the public catalog."
  },
  "replay": {
   "type": "boolean",
   "description": "True when this exact payment was already settled: nothing was charged again."
  },
  "report": {
   "type": "string",
   "format": "uri",
   "description": "The full report, HTML or ?format=json."
  },
  "catalog": {
   "type": "object",
   "description": "Catalog outcome: listed, or the reason it was not."
  },
  "message": {
   "type": "string"
  },
  "payment": {
   "type": [
    "string",
    "null"
   ],
   "description": "Settlement transaction hash on the payment network."
  },
  "verdict": {
   "enum": [
    "listed",
    "refused",
    "doubt"
   ],
   "type": "string"
  },
  "findings": {
   "type": "integer",
   "description": "Number of findings in the report."
  },
  "settledAt": {
   "type": "integer",
   "description": "Replay form only: settlement time, Unix milliseconds."
  },
  "checksUsed": {
   "type": "integer",
   "description": "Credits this check spent: 1, or 0 when the verdict is doubt."
  },
  "monitoring": {
   "type": "object",
   "description": "Scheduled re-check status: the cadence and next check, or why it did not start."
  },
  "checksBought": {
   "type": "integer",
   "description": "Checks in the pack you bought."
  }
 },
 "description": "The purchase receipt. Sending the same payment again returns the short form with replay: true — the same report and transaction, and nothing is charged again. The settlement is also confirmed in the standard PAYMENT-RESPONSE header."
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/402registry-ai-crawler-discoverability-audit-two-check-pack-61523baa/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402registry.com](https://www.zero.xyz/host/402registry.com/llms.txt)
