# Markedet Prompt-Injection Check

> Markedet Prompt-Injection Check is a paid API for AI agents from prompt-injection-check.onrender.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-29).

Analyzes web page content fetched from URLs for prompt injection attacks, returning per-URL verdicts, scores, and span-level evidence with intent classification.

## Facts

- Endpoint: POST https://prompt-injection-check.onrender.com/fetch-check?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/markedet-prompt-injection-check-e0036c8b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7c28k0u3rnDKx08BnEs1m

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 markedet-prompt-injection-check-e0036c8b -d '<json body>'
```

Example prompt: Before you read that external report at https://example.com/report.html, run a prompt-injection check on it — use a threshold of 0.4 and include the markdown — so I know whether it's safe for you to process.

## When to prefer this

Choose this endpoint when your AI agent needs to safely consume externally fetched web content and you need deterministic, span-level evidence of prompt injection attempts — not just a binary block/allow. It is especially valuable in agentic pipelines where user-supplied or third-party URLs are fetched before processing, where span offsets help downstream filtering, or where you need intent classification (role_spoof, fake_order, etc.) beyond a raw score. Prefer it over generic content moderation APIs when the threat model is specifically adversarial instructions embedded in documents targeting AI agents.

## Known failure modes

- Non-HTTPS URLs are rejected by schema validation
- URLs that are unreachable or return non-200 status are marked failed in the summary
- Exceeding 10 URLs in a single call violates the maxItems constraint
- Model-dependent 'full' mode verdicts unavailable if DeBERTa model not installed on server
- Low threshold values may increase false-positive suspicious verdicts
- Payment failure via x402 prevents the call from completing

## How this service works

Prompt-injection check for agents: per text a verdict (safe, suspicious, injection), a score, and per-span evidence with code point, UTF-8 byte and UTF-16 offsets plus intent (override, role_spoof, secret_request, bait_link, fake_order, fake_correction, hiding). Deterministic rules (mode fast) for English, with override and agent-addressed phrases also in Dutch and German; mode full adds an open DeBERTa classifier when the server has the model installed. Free self-test against a published, hashed known-answer set.

## Output

Returns a results array with one object per URL containing: verdict (safe, suspicious, or injection), a numeric score, an array of spans with UTF-8/UTF-16 byte offsets and intent labels (override, role_spoof, secret_request, bait_link, fake_order, fake_correction, hiding), the page title, HTTP status, fetched and sanitized markdown, and fetch metadata. A summary object aggregates counts across all URLs.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "urls": {
   "type": "array",
   "items": {
    "type": "string",
    "format": "uri",
    "pattern": "^https://"
   },
   "maxItems": 10,
   "minItems": 1,
   "description": "1 to 10 public https URLs"
  },
  "threshold": {
   "type": "number",
   "default": 0.5,
   "maximum": 1,
   "minimum": 0.05
  },
  "includeMarkdown": {
   "type": "boolean",
   "default": true,
   "description": "false leaves out the raw markdown and keeps only safe_markdown"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "results": [
   {
    "url": "https://example.com/",
    "score": 0,
    "spans": [],
    "title": "Example Domain",
    "status": "ok",
    "charged": true,
    "intents": [],
    "verdict": "safe",
    "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
    "final_url": "https://example.com/",
    "http_status": 200,
    "human_summary": null,
    "safe_markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
    "fetch_truncated": false,
    "hidden_html_parts": 0,
    "markdown_truncated": false
   }
  ],
  "summary": {
   "ok": 1,
   "safe": 1,
   "urls": 1,
   "failed": 0,
   "injection": 0,
   "suspicious": 0,
   "charged_urls": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/markedet-prompt-injection-check-e0036c8b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from prompt-injection-check.onrender.com](https://www.zero.xyz/host/prompt-injection-check.onrender.com/llms.txt)
