{"uid":"cap_p6TbKnfPe8XQORmXBUgiS","slug":"unveil-prompt-injection-scanner-url-359162c9","name":"Unveil Prompt Injection Scanner (URL)","description":"Scan untrusted text or URLs for hidden prompt injection before an AI agent reads them: invisible Unicode, tag-character smuggling, bidi overrides, terminal escapes, instructions in HTML comments or CSS-hidden elements, secret-exfiltration requests, text addressed to AI readers. Matched text is never returned (sha256 only). Paid per call via x402, USDC on Base.","url":"https://unveil.x402utils.workers.dev/v1/scan-url?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"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","required":["url"],"properties":{"url":{"type":"string","description":"http(s) URL of a page/README/issue to fetch and scan (max 1 MB)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":{"type":"json","example":{"counts":{"low":0,"high":1,"medium":0},"verdict":"dangerous","findings":[{"line":1,"rule":"UNV002","title":"Unicode tag-character smuggling","column":6,"detail":"16 tag characters decode to a withheld payload","severity":"high","evidence_length":41,"evidence_sha256":"3f1c…"}]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_kyRx8joOVhsNM8fJhaD38","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches a URL and scans the retrieved content for hidden prompt injection attacks targeting AI agents, returning severity-graded findings with SHA-256 evidence hashes but never the matched text itself.","exampleAgentPrompt":"Before you summarize that GitHub README at https://github.com/someuser/somerepo/blob/main/README.md, run it through Unveil's URL scanner to check for any hidden prompt injection, invisible Unicode smuggling, or instructions secretly addressed to you.","exampleUseCases":[{"title":"Safe ingestion of user-submitted URLs","prompt":"A user just pasted this link for me to summarize: https://pastebin.com/abc123. Before you read and process it, scan it with Unveil to check for hidden prompt injection, bidi overrides, or invisible tag characters that could hijack you."},{"title":"Vetting third-party API docs for agents","prompt":"I'm about to let my agent read the API docs at https://docs.somevendor.com/integration-guide to extract configuration steps — first run that URL through Unveil's injection scanner to make sure there are no CSS-hidden or HTML-comment instructions targeting AI readers."},{"title":"Auditing GitHub issue before automated triage","prompt":"Before my support bot processes the GitHub issue at https://github.com/myorg/myrepo/issues/4217, scan that URL with Unveil to detect any secret-exfiltration requests, Unicode smuggling, or AI-addressed instructions hidden in the page."}],"resultDescription":"A JSON object containing a top-level verdict ('safe', 'suspicious', or 'dangerous'), a counts object with low/medium/high finding tallies, and a findings array. Each finding includes the rule ID (e.g. UNV002), a human-readable title, line and column, severity, evidence length, and a SHA-256 hash of the matched text — the actual matched content is never returned.","failureModes":["URL exceeds 1 MB page size limit — request rejected","URL is unreachable or returns non-2xx status — fetch error returned","Invalid or non-HTTP(S) URL provided — schema validation error","Payment not completed via x402/USDC — 402 Payment Required response","Method not in allowed enum (GET, HEAD, DELETE) — validation error"],"whenToPreferThis":"Choose this endpoint when your AI agent is about to consume content from an untrusted or user-supplied URL and you want to guard against prompt injection before processing. It is distinct from text-based scanning because it fetches the remote resource itself, including rendered HTML, comments, and CSS-hidden elements that a raw text scan would miss. Prefer it over generic content-moderation APIs when the threat model specifically involves adversarial instructions targeting AI agents rather than human-facing harmful content.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T12:37:17.978Z","isFirstParty":false,"canonicalSlug":"unveil-prompt-injection-scanner-url-359162c9"}