# InjectScan

> InjectScan is a paid API for AI agents from api.youraitools.co, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-27).

Scans text or a public URL for prompt injection attacks, hidden Unicode tricks, homoglyphs, and other adversarial text manipulations, returning a risk score and categorized findings.

## Facts

- Endpoint: GET https://api.youraitools.co/injectscan/v1/scan?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/injectscan-c62bbbf5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_qajYjY7gUFeR_vtjGJMGh

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 injectscan-c62bbbf5
```

Example prompt: Before passing this user message to the LLM, scan it for prompt injection attacks, hidden Unicode characters, homoglyphs, or any adversarial text tricks — give me the risk score and verdict.

## When to prefer this

Choose InjectScan when you need real-time, per-call adversarial text screening specifically designed for LLM pipelines — particularly when detecting hidden Unicode manipulations (zero-width characters, bidirectional controls, homoglyphs) that generic content filters miss. Prefer it over general-purpose content moderation APIs when your threat model is prompt injection and adversarial LLM inputs rather than hate speech or NSFW content. It is especially suited for agentic workflows where untrusted user input or scraped web content must be validated before being passed to a language model.

## Known failure modes

- Text exceeding ~8 KB in GET query string may be truncated or rejected — use POST for longer text
- Invalid or non-public URLs return an error or empty scan result
- Missing required 'input' object causes a validation error
- Network timeout if the target URL is slow or unreachable
- Rate limiting or payment failure if USDC balance is insufficient

## How this service works

Prompt injection detection API for AI agents. Prompt-injection scan for text your AI agent is about to read (web pages, emails, tool output, MCP tool descriptions): risk score 0-100, verdict, categories and exact spans. Detects instruction overrides, jailbreak personas, system-prompt extraction, fake chat delimiters, data-exfiltration URLs, tool hijacking, hidden Unicode and encoded payloads. Deterministic rules, no data stored.

## Output

Returns a JSON object with: a boolean 'flagged' field, a 'verdict' string (e.g. 'safe'), a numeric 'risk_score', an array of 'findings' describing specific issues, a 'categories' array, 'hidden' character counts (zero_width, unicode_tags, bidi_controls, bom_soft_hyphen, homoglyph_words), the 'ruleset' version applied, 'chars_scanned' count, 'decoded' content, 'truncated' boolean, and response latency in milliseconds.

## 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",
     "properties": {
      "url": {
       "type": "string",
       "description": "Instead of text: absolute http(s) URL of a public page to fetch and scan (visible text plus hidden HTML)"
      },
      "text": {
       "type": "string",
       "description": "Text to scan (GET: up to ~8 KB in the query string; POST JSON for longer text, up to 100,000 characters)"
      }
     },
     "description": "Search intents: prompt injection detection, prompt injection scanner, jailbreak detection api, llm security api, ai guardrails, scan text for prompt injection"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "ms": {
       "type": "number"
      },
      "input": {
       "type": "string"
      },
      "hidden": {
       "type": "object"
      },
      "decoded": {
       "type": "array"
      },
      "flagged": {
       "type": "boolean"
      },
      "ruleset": {
       "type": "string"
      },
      "verdict": {
       "type": "string"
      },
      "findings": {
       "type": "array"
      },
      "truncated": {
       "type": "boolean"
      },
      "categories": {
       "type": "array"
      },
      "risk_score": {
       "type": "number"
      },
      "chars_scanned": {
       "type": "number"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ms": 1,
  "input": "text",
  "hidden": {
   "zero_width": 0,
   "unicode_tags": 0,
   "bidi_controls": 0,
   "bom_soft_hyphen": 0,
   "homoglyph_words": 0
  },
  "decoded": [],
  "flagged": false,
  "ruleset": "2026.10.1",
  "verdict": "safe",
  "findings": [],
  "truncated": false,
  "categories": [],
  "risk_score": 0,
  "chars_scanned": 49
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/injectscan-c62bbbf5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.youraitools.co](https://www.zero.xyz/host/api.youraitools.co/llms.txt)
