# AI Crawler User Agent Spoof Triage

> AI Crawler User Agent Spoof Triage is a paid API for AI agents from k2so.wrong.systems, paid per call via x402, $0.002/call, status down (last checked 2026-09-15).

Returns a decision procedure for determining whether an inbound request claiming a known AI crawler user agent (ClaudeBot, GPTBot, Bytespider, etc.) is legitimate or a spoofed bot scanner.

## Facts

- Endpoint: GET https://k2so.wrong.systems/api/services/ai-crawler-user-agent-spoof-triage-0
- Price: $0.002/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ai-crawler-user-agent-spoof-triage-506dcc90
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NzYk_d97JUAnovUdfb-Bo

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 ai-crawler-user-agent-spoof-triage-506dcc90
```

Example prompt: I'm getting inbound requests to my API claiming to be ClaudeBot — can you run the AI crawler user agent spoof triage on this session and tell me whether it's a real Anthropic crawler or a vulnerability scanner impersonating one?

## When to prefer this

Choose this endpoint when you operate a public API or website and need a structured decision procedure to distinguish legitimate AI crawler traffic (ClaudeBot, GPTBot, Bytespider, PerplexityBot, etc.) from mass vulnerability scanners that spoof these user agents to bypass bot blocks and rate limits. It is particularly useful when you need a ready-to-execute triage workflow rather than building your own verification logic from scratch.

## Known failure modes

- Missing or malformed input UA string may result in generic or inapplicable triage procedure
- Payment not completed results in 402 response with no decision procedure
- Unrecognized or novel AI crawler UA strings may not be covered by the procedure
- Rate limiting or session errors may return non-200 responses
- LLM-generated procedures may vary between calls for identical inputs if generationSource is 'llm'

## How this service works

Decision procedure for an agent that runs a public endpoint and receives an inbound request claiming a known AI crawler user agent (ClaudeBot, GPTBot, Bytespider, PerplexityBot, etc). Mass vulnerability scanners now impersonate these user agents to bypass bot blocks and rate limits, so the claim itself proves nothing. Input: the raw UA string, source IP, request headers, and access logs for the session. Steps: (1) exact UA string match against the vendor published user agent, version currency

## Output

A plain-prose decision procedure (120+ words) describing step-by-step how to triage the claimed AI crawler user agent, including exact UA string match against vendor-published agents, version currency checks, and other verification steps. Response includes the procedure text, a topic label, model used, generation source (llm/reasoning/deterministic), and an ISO-8601 timestamp.

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "meta": {
       "enum": [
        "0",
        "1"
       ],
       "type": "string",
       "description": "Set to 1 for free metadata JSON (no payment required)"
      },
      "topic": {
       "type": "string",
       "description": "Optional topic override for the decision procedure"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "title": "ai-crawler-user-agent-spoof-triage paid response",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "ok",
      "paid",
      "service",
      "provider",
      "result"
     ],
     "properties": {
      "ok": {
       "type": "boolean"
      },
      "paid": {
       "type": "boolean"
      },
      "result": {
       "type": "object",
       "required": [
        "ok",
        "service"
       ],
       "properties": {
        "ok": {
         "type": "boolean",
         "description": "Handler success"
        },
        "brief": {
         "type": "string",
         "description": "Decision procedure prose for agents"
        },
        "model": {
         "type": "string"
        },
        "topic": {
         "type": "string"
        },
        "service": {
         "type": "string",
         "description": "Service slug"
        },
        "procedure": {
         "type": "string"
        },
        "generatedAt": {
         "type": "string",
         "description": "ISO-8601 timestamp"
        },
        "generationSource": {
         "enum": [
          "llm",
          "reasoning",
          "deterministic"
         ],
         "type": "string"
        }
       }
      },
      "payment": {
       "type": "object",
       "properties": {
        "code": {
         "type": "string"
        },
        "payer": {
         "type": "string"
        },
        "detail": {
         "type": "string"
        },
        
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "paid": true,
  "result": {
   "ok": true,
   "brief": "plain prose decision procedure (120+ words)",
   "model": "deepseek/deepseek-v4-flash-0731",
   "topic": "string topic",
   "service": "ai-crawler-user-agent-spoof-triage-0",
   "procedure": "same as brief",
   "generatedAt": "2026-01-01T00:00:00.000Z",
   "generationSource": "deterministic"
  },
  "service": "ai-crawler-user-agent-spoof-triage-0",
  "provider": "K-2SO"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ai-crawler-user-agent-spoof-triage-506dcc90/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from k2so.wrong.systems](https://www.zero.xyz/host/k2so.wrong.systems/llms.txt)
