{"openapi":"3.1.0","info":{"title":"EdgeScreen x402 Deterministic Screening API","version":"1.7.0","summary":"Zero-LLM OFAC SDN wallet screening, brand/handle/domain impersonation detector, IDN homoglyph detection, prompt-injection firewall, pre-fetch SSRF URL firewall, pre-publish secret redactor, and pre-merge git diff auditor.","description":"Pay-per-request deterministic compliance, brand-impersonation, prompt-injection, SSRF URL firewall, secret-leak, and git diff/patch security screening settled in Base USDC ($0.002 single-vertical GET/POST or $0.005 multi-signal POST batch up to 25 items) via the x402 protocol and PayAI facilitator.","termsOfService":"https://aso-x402-screen.asostudio.workers.dev/terms.txt","contact":{"url":"https://aso-x402-screen.asostudio.workers.dev"},"x-guidance":"# EdgeScreen x402\n\nDeterministic zero-LLM risk screening API & MCP server (v1.7.0) settled in Base USDC via x402 v2 (up to 25 items per call). No account, no API key.\n\n## Quickstart (@x402/fetch)\n```js\nimport { wrapFetchWithPaymentFromConfig } from \"@x402/fetch\";\nimport { ExactEvmScheme } from \"@x402/evm\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nconst acct = privateKeyToAccount(process.env.PRIVATE_KEY);\nconst payFetch = wrapFetchWithPaymentFromConfig(fetch, { schemes: [{ network: \"eip155:8453\", client: new ExactEvmScheme(acct) }] });\nconst res = await payFetch(\"https://aso-x402-screen.asostudio.workers.dev/v1/screen/url?url=https://example.com\");\n```\n\n## MCP Transport v2 (@x402/mcp)\n- Endpoint: POST https://aso-x402-screen.asostudio.workers.dev/mcp (Streamable HTTP JSON-RPC 2.0, 12 tools: 3 zero-wallet free entry hooks + 8 paid x402 tools + health_check).\n- Free entry hooks execute immediately on call #1 for $0.00 with zero wallet setup (`free_punycode_decode`, `free_secret_prefix_lint`, `edgescreen_x402_quickstart`, `health_check`).\n- Compliant with official coinbase/x402 MCP transport v2 (`specs/transports-v2/mcp.md`): unpaid `tools/call` on paid tools returns HTTP 200 with `result.isError: true` and `result.structuredContent` (`PaymentRequired`); paid `tools/call` accepts `params._meta[\"x402/payment\"]` (or HTTP `PAYMENT-SIGNATURE`) and returns settlement receipt in `result._meta[\"x402/payment-response\"]`.\n\n## Free Zero-Wallet Entry Hooks ($0.00)\n- MCP `free_punycode_decode` or GET https://aso-x402-screen.asostudio.workers.dev/v1/free/punycode?target=xn--unswap-4va.com ($0.00): decodes IDN xn-- punycode and inspects mixed Unicode scripts on 1 domain/handle (0 brand-corpus lookup; includes upgrade_hint to paid `screen_impersonation`).\n- MCP `free_secret_prefix_lint` or GET https://aso-x402-screen.asostudio.workers.dev/v1/free/secret-prefix?text=... or POST https://aso-x402-screen.asostudio.workers.dev/v1/free/secret-prefix ($0.00): checks up to 500 chars for obvious high-risk secret prefixes (AKIA, sk_live_, -----BEGIN, ghp_, xoxb-) without full entropy/offsets (includes upgrade_hint to paid `screen_secret` / `screen_diff`).\n- MCP `edgescreen_x402_quickstart` or GET https://aso-x402-screen.asostudio.workers.dev/v1/free/quickstart ($0.00): returns turnkey copy-paste @x402/mcp + @x402/fetch setup snippets (Cursor, Claude Code, TypeScript viem, Python) + live pricing ladder.\n\n## Paid Endpoints\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen ($0.005 USD / 5000 atomic on eip155:8453): combined multi-signal batch screening (OFAC + brand impersonation + homoglyphs + prompt injection + SSRF URL firewall + secret redactor + git diff auditor).\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/address or GET https://aso-x402-screen.asostudio.workers.dev/v1/screen/address?address=0x...&chain=base ($0.002 USD / 2000 atomic on eip155:8453): OFAC SDN crypto wallet sanctions screening (EVM 0x..., BTC 1.../3.../bc1..., TRON T...).\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/domain or GET https://aso-x402-screen.asostudio.workers.dev/v1/screen/domain?domain=example.com ($0.002 USD / 2000 atomic on eip155:8453): IDN Punycode, Unicode UTS #39 confusable, and Damerau-Levenshtein lookalike domain/handle detector.\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/impersonation or GET https://aso-x402-screen.asostudio.workers.dev/v1/screen/impersonation?target=rnicrosoft.com ($0.002 USD / 2000 atomic on eip155:8453): deterministic brand/handle/domain impersonation & homograph detector (IDN xn-- punycode, Unicode confusables, Levenshtein-1 typosquats, rn/m & 0/o & 1/l swaps, fake support/airdrop lures -> risk_score, verdict, signals, canonical_comparison).\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/prompt or GET https://aso-x402-screen.asostudio.workers.dev/v1/screen/prompt?text=... ($0.002 USD / 2000 atomic on eip155:8453): prompt injection, MCP tool poisoning, Unicode tag smuggling (U+E0000-U+E007F), and secret exfiltration firewall.\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/url or GET https://aso-x402-screen.asostudio.workers.dev/v1/screen/url?url=https://... ($0.002 USD / 2000 atomic on eip155:8453): pre-fetch SSRF & URL firewall (loopback, RFC1918, CGNAT, IPv6 mapped/local, AWS/GCP/Azure/Alibaba metadata, hex/octal/decimal IPs, non-HTTP(S) schemes, credentials, punycode homoglyphs, open redirects).\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/secret ($0.002 USD / 2000 atomic on eip155:8453): pre-publish secret leak detector & redactor (OpenAI, Anthropic, AWS, GitHub, Stripe, Slack, Google keys, PEM/hex private keys, JWTs, Bearer tokens -> safe, riskScore, masked findings, redactedText).\n- POST https://aso-x402-screen.asostudio.workers.dev/v1/screen/diff ($0.002 USD / 2000 atomic on eip155:8453): pre-merge git diff & PR patch auditor (leaked secrets in + lines, destructive shell/SQL, CI workflow injection, postinstall hooks, SSRF/private IPs, auth/TLS bypass, Trojan Source BiDi Unicode, hunk integrity).\n\n## Free Discovery & Preview Endpoints\n- GET https://aso-x402-screen.asostudio.workers.dev/v1/demo (read-only preview on 3 fixed canonical fixtures: OFAC sanctioned address, xn--unswap-4va.com punycode homograph, prompt injection)\n- GET https://aso-x402-screen.asostudio.workers.dev/v1/free/punycode?target=xn--unswap-4va.com\n- GET https://aso-x402-screen.asostudio.workers.dev/v1/free/secret-prefix?text=...\n- GET https://aso-x402-screen.asostudio.workers.dev/v1/free/quickstart\n- GET https://aso-x402-screen.asostudio.workers.dev/tools/ofac-sanctions-screening-api\n- GET https://aso-x402-screen.asostudio.workers.dev/tools/domain-impersonation-homograph-api\n- GET https://aso-x402-screen.asostudio.workers.dev/tools/prompt-injection-firewall-mcp\n- GET https://aso-x402-screen.asostudio.workers.dev/tools/ssrf-url-safety-validator\n- GET https://aso-x402-screen.asostudio.workers.dev/tools/git-diff-secret-scanner-mcp\n- GET https://aso-x402-screen.asostudio.workers.dev/openapi.json\n- GET https://aso-x402-screen.asostudio.workers.dev/llms.txt\n- GET https://aso-x402-screen.asostudio.workers.dev/terms.txt\n- GET https://aso-x402-screen.asostudio.workers.dev/.well-known/x402\n- GET https://aso-x402-screen.asostudio.workers.dev/.well-known/x402.json\n- GET https://aso-x402-screen.asostudio.workers.dev/.well-known/api-catalog\n- GET https://aso-x402-screen.asostudio.workers.dev/.well-known/mcp.json\n- GET https://aso-x402-screen.asostudio.workers.dev/.well-known/security.txt\n- POST https://aso-x402-screen.asostudio.workers.dev/mcp\n- GET https://aso-x402-screen.asostudio.workers.dev/health\n"},"servers":[{"url":"https://aso-x402-screen.asostudio.workers.dev"}],"tags":[{"name":"security"},{"name":"compliance"},{"name":"anti-phishing"},{"name":"impersonation"},{"name":"ai-safety"},{"name":"ssrf-firewall"},{"name":"secret-redaction"},{"name":"patch-security"}],"x-x402":{"x402Version":2,"facilitator":"https://facilitator.payai.network","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"5000"},"paths":{"/":{"get":{"operationId":"getServiceInfo","summary":"Developer landing page (default HTML) or JSON overview (Accept: application/json)","security":[],"responses":{"200":{"description":"Service landing page (HTML default) or JSON metadata (Accept: application/json).","content":{"text/html":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"object"}}}}}}},"/v1/free/quickstart":{"get":{"operationId":"getFreeQuickstart","summary":"Free turnkey @x402/mcp and @x402/fetch setup snippets + pricing ladder","security":[],"responses":{"200":{"description":"Copy-paste setup snippets (Cursor, Claude Code, TypeScript viem, Python) and x402 pricing ladder.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/demo":{"get":{"operationId":"getCanonicalDemo","summary":"Free read-only deterministic preview on 3 fixed canonical fixtures","security":[],"responses":{"200":{"description":"Real EdgeScreen outputs on 3 fixed canonical fixtures (OFAC sanctioned wallet, xn--unswap-4va.com punycode homograph, prompt injection).","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/health":{"get":{"operationId":"getHealth","summary":"Health and OFAC SDN dataset status","security":[],"responses":{"200":{"description":"Healthy Worker status.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Plain-text LLM and agent usage guidance","security":[],"responses":{"200":{"description":"Agent guidance markdown.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/.well-known/mcp.json":{"get":{"operationId":"getMcpManifest","summary":"Model Context Protocol, Smithery, and x402 Bazaar discovery manifest","security":[],"responses":{"200":{"description":"MCP server card and tool definitions.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/screen":{"post":{"operationId":"screenBatch","summary":"Combined OFAC SDN, brand impersonation, IDN homoglyph, prompt-injection, SSRF URL, secret-leak, and git diff batch screening","description":"Combined deterministic security batch check across addresses, impersonation targets, domains/handles, prompts, URLs, secrets, and git diffs (up to 25 total items).","tags":["security","compliance"],"x-guidance":"POST JSON with any combination of addresses, targets, domains/handles (+ brand), prompts, urls, secrets, or diffs (1..25 items total). Settle $0.005 Base USDC (5000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"5000","maxAmountRequired":"5000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","description":"Single crypto address shorthand (EVM 0x..., Bitcoin 1.../3.../bc1..., TRON T...) to screen against OFAC SDN."},"addresses":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Crypto addresses (EVM 0x..., Bitcoin 1.../3.../bc1..., TRON T...) to screen against OFAC SDN."},"brand":{"oneOf":[{"type":"string","minLength":2,"maxLength":64},{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":2,"maxLength":64},"officialDomains":{"type":"array","items":{"type":"string"}},"officialHandles":{"type":"array","items":{"type":"string"}}}}],"description":"Target brand for deterministic homoglyph, Punycode, and typosquatting comparison."},"officialDomains":{"type":"array","items":{"type":"string"},"description":"Optional list of verified official domains for the target brand."},"officialHandles":{"type":"array","items":{"type":"string"},"description":"Optional list of verified official social handles for the target brand."},"domain":{"type":"string","description":"Single candidate domain shorthand (ASCII, Unicode IDN, or Punycode xn--...) to inspect."},"domains":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Candidate domains (ASCII, Unicode IDN, or Punycode xn--...) to inspect."},"handle":{"type":"string","description":"Single candidate social handle shorthand (@handle or bare handle) to inspect."},"handles":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Candidate social handles (@handle or bare handle) to inspect."},"candidate":{"type":"string","description":"Single candidate domain or social handle shorthand to auto-classify and inspect."},"candidates":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Mixed candidate domains or social handles to auto-classify and inspect."},"prompt":{"type":"string","maxLength":4096,"description":"Single untrusted prompt, MCP tool description, or fetched text (up to 4096 chars) to scan."},"prompts":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":4096},"description":"Untrusted prompts, MCP tool descriptions, or fetched texts (up to 4096 chars each) to scan for prompt injection, tool poisoning, Unicode tag smuggling, and secret exfiltration."},"url":{"type":"string","maxLength":2048,"description":"Single URL shorthand (up to 2048 chars) to inspect for SSRF, private/metadata IPs, dangerous schemes, credentials, IDN homoglyphs, and open redirects."},"urls":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":2048},"description":"URLs (up to 2048 chars each) to pre-screen before fetch for SSRF (loopback, RFC1918, CGNAT, IPv6 mapped/local, cloud metadata, hex/octal/decimal IP encodings), non-HTTP(S) schemes, credentials, punycode homoglyphs, and open redirects."},"secret":{"type":"string","maxLength":8192,"description":"Single text/log/diff/webhook payload shorthand (up to 8192 chars) to scan & redact for leaked API keys, private keys, JWTs, and Bearer tokens."},"secrets":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":8192},"description":"Text snippets, PR bodies, logs, or webhook payloads (up to 8192 chars each) to scan & redact for leaked API keys (OpenAI, Anthropic, AWS, GitHub, Stripe, Slack, Google), PEM/hex private keys, JWTs, and Bearer tokens."},"text":{"type":"string","maxLength":8192,"description":"Alias for `secret`: single text/log/PR snippet (up to 8192 chars) to scan & redact for leaked secrets."},"texts":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":8192},"description":"Alias for `secrets`: array of text snippets (up to 8192 chars each) to scan & redact for leaked secrets."},"diff":{"type":"string","maxLength":16384,"description":"Single unified git diff or PR patch shorthand (up to 16384 chars) to audit for leaked secrets, destructive shell/SQL, CI injection, malicious lifecycle hooks, SSRF/private IPs, auth/TLS bypass, Trojan Source Unicode, and corrupt hunk counts."},"diffs":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":16384},"description":"Unified git diffs or PR patches (up to 16384 chars each) to pre-screen before git apply / PR merge."},"patch":{"type":"string","maxLength":16384,"description":"Alias for `diff`: single unified git diff or patch snippet (up to 16384 chars) to audit."},"patches":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":16384},"description":"Alias for `diffs`: array of unified git diffs or patch snippets (up to 16384 chars each) to audit."},"chain":{"type":"string","maxLength":32,"description":"Optional chain hint for address screening (e.g. base, ethereum, btc, tron)."},"target":{"type":"string","maxLength":256,"description":"Single candidate domain, URL, or @handle to screen for brand impersonation, IDN punycode, Unicode confusables, and typosquats."},"targets":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":256},"description":"Candidate domains, URLs, or @handles (up to 25) to screen for brand impersonation and homographs."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/address":{"get":{"operationId":"screenCryptoAddressOfacGet","summary":"OFAC SDN Crypto Wallet Sanctions Screening (EVM, Bitcoin, TRON) (GET query)","description":"Screen 1 to 25 EVM (0x...), Bitcoin (1.../3.../bc1...), or TRON (T...) wallet addresses against the OFAC SDN sanctions list.","tags":["compliance","security"],"x-guidance":"GET /v1/screen/address?address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&chain=base with $0.002 Base USDC PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/address","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"address","in":"query","required":true,"description":"Crypto wallet address (EVM 0x..., Bitcoin 1.../3.../bc1..., TRON T...) to screen against OFAC SDN.","schema":{"type":"string","minLength":1,"maxLength":256},"example":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"},{"name":"chain","in":"query","required":false,"description":"Optional chain hint (e.g. base, ethereum, btc, tron).","schema":{"type":"string","maxLength":32},"example":"base"},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}},"post":{"operationId":"screenCryptoAddressOfac","summary":"OFAC SDN Crypto Wallet Sanctions Screening (EVM, Bitcoin, TRON)","description":"Screen 1 to 25 EVM (0x...), Bitcoin (1.../3.../bc1...), or TRON (T...) wallet addresses against the OFAC SDN sanctions list.","tags":["compliance","security"],"x-guidance":"GET ?address=0x...&chain=base or POST JSON { \"address\": \"0x...\", \"chain\": \"base\" } (up to 25 items). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/address","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"address":{"type":"string","description":"Single crypto address shorthand (EVM 0x..., Bitcoin 1.../3.../bc1..., TRON T...) to screen against OFAC SDN."},"addresses":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Crypto addresses (EVM 0x..., Bitcoin 1.../3.../bc1..., TRON T...) to screen against OFAC SDN."},"chain":{"type":"string","maxLength":32,"description":"Optional chain hint for address screening (e.g. base, ethereum, btc, tron)."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/domain":{"get":{"operationId":"screenDomainHomoglyphGet","summary":"IDN Homoglyph, Punycode & Brand Typosquatting Phishing Detector (GET query)","description":"Detect IDN Punycode (xn--), Unicode UTS #39 confusable characters, and Damerau-Levenshtein brand impersonation across domains and social handles.","tags":["anti-phishing","security"],"x-guidance":"GET /v1/screen/domain?domain=example.com (optional &brand=example) with $0.002 Base USDC PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/domain","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"domain","in":"query","required":true,"description":"Candidate domain (ASCII, Unicode IDN, or Punycode xn--...) to inspect.","schema":{"type":"string","minLength":1,"maxLength":256},"example":"example.com"},{"name":"brand","in":"query","required":false,"description":"Optional target brand name (auto-inferred when omitted on GET).","schema":{"type":"string","minLength":2,"maxLength":64}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}},"post":{"operationId":"screenDomainHomoglyph","summary":"IDN Homoglyph, Punycode & Brand Typosquatting Phishing Detector","description":"Detect IDN Punycode (xn--), Unicode UTS #39 confusable characters, and Damerau-Levenshtein brand impersonation across domains and social handles.","tags":["anti-phishing","security"],"x-guidance":"GET ?domain=example.com&brand=example or POST JSON { \"brand\": \"acme\", \"officialDomains\": [\"acme.com\"], \"domain\": \"xn--...\" } (up to 25 items). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/domain","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["brand"],"properties":{"brand":{"oneOf":[{"type":"string","minLength":2,"maxLength":64},{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":2,"maxLength":64},"officialDomains":{"type":"array","items":{"type":"string"}},"officialHandles":{"type":"array","items":{"type":"string"}}}}],"description":"Target brand for deterministic homoglyph, Punycode, and typosquatting comparison."},"officialDomains":{"type":"array","items":{"type":"string"},"description":"Optional list of verified official domains for the target brand."},"officialHandles":{"type":"array","items":{"type":"string"},"description":"Optional list of verified official social handles for the target brand."},"domain":{"type":"string","description":"Single candidate domain shorthand (ASCII, Unicode IDN, or Punycode xn--...) to inspect."},"domains":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Candidate domains (ASCII, Unicode IDN, or Punycode xn--...) to inspect."},"handle":{"type":"string","description":"Single candidate social handle shorthand (@handle or bare handle) to inspect."},"handles":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Candidate social handles (@handle or bare handle) to inspect."},"candidate":{"type":"string","description":"Single candidate domain or social handle shorthand to auto-classify and inspect."},"candidates":{"type":"array","maxItems":25,"items":{"type":"string"},"description":"Mixed candidate domains or social handles to auto-classify and inspect."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/impersonation":{"get":{"operationId":"screenImpersonationGet","summary":"Deterministic Brand, Handle & Domain Impersonation & Homograph Detector (GET query)","description":"Detect IDN xn-- punycode homographs, Unicode confusable scripts, Levenshtein-1 typosquats, visual character swaps (rn/m, vv/w, cl/d, 0/o, 1/l), and fake support/airdrop/claim lures across domains and @handles, returning risk_score, verdict, signals, and canonical_comparison.","tags":["impersonation","anti-phishing","security"],"x-guidance":"GET /v1/screen/impersonation?target=rnicrosoft.com (optional &brand=microsoft) with $0.002 Base USDC PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/impersonation","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"target","in":"query","required":true,"description":"Candidate domain, URL, or @handle to screen for brand impersonation and homographs.","schema":{"type":"string","minLength":1,"maxLength":256},"example":"rnicrosoft.com"},{"name":"brand","in":"query","required":false,"description":"Optional reference brand name (auto-matched against protected crypto/tech brand corpus when omitted).","schema":{"type":"string","minLength":2,"maxLength":64},"example":"microsoft"},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}},"post":{"operationId":"screenImpersonation","summary":"Deterministic Brand, Handle & Domain Impersonation & Homograph Detector","description":"Detect IDN xn-- punycode homographs, Unicode confusable scripts, Levenshtein-1 typosquats, visual character swaps (rn/m, vv/w, cl/d, 0/o, 1/l), and fake support/airdrop/claim lures across domains and @handles, returning risk_score, verdict, signals, and canonical_comparison.","tags":["impersonation","anti-phishing","security"],"x-guidance":"GET ?target=rnicrosoft.com (optional &brand=microsoft) or POST JSON { \"target\": \"rnicrosoft.com\", \"brand\": \"microsoft\" } (up to 25 items). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/impersonation","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"target":{"type":"string","maxLength":256,"description":"Single candidate domain, URL, or @handle to screen for brand impersonation, IDN punycode, Unicode confusables, and typosquats."},"targets":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":256},"description":"Candidate domains, URLs, or @handles (up to 25) to screen for brand impersonation and homographs."},"brand":{"oneOf":[{"type":"string","minLength":2,"maxLength":64},{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":2,"maxLength":64},"officialDomains":{"type":"array","items":{"type":"string"}},"officialHandles":{"type":"array","items":{"type":"string"}}}}],"description":"Target brand for deterministic homoglyph, Punycode, and typosquatting comparison."},"officialDomains":{"type":"array","items":{"type":"string"},"description":"Optional list of verified official domains for the target brand."},"officialHandles":{"type":"array","items":{"type":"string"},"description":"Optional list of verified official social handles for the target brand."},"domain":{"type":"string","description":"Single candidate domain shorthand (ASCII, Unicode IDN, or Punycode xn--...) to inspect."},"handle":{"type":"string","description":"Single candidate social handle shorthand (@handle or bare handle) to inspect."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/prompt":{"get":{"operationId":"screenPromptInjectionGet","summary":"Prompt Injection, MCP Tool-Poisoning & Unicode Tag Firewall (GET query)","description":"Deterministically scan untrusted prompts, web pages, and MCP tool descriptions for instruction overrides, tool poisoning, invisible Unicode tag smuggling (U+E0000-U+E007F), and secret exfiltration.","tags":["ai-safety","security"],"x-guidance":"GET /v1/screen/prompt?text=Summarize+the+quarterly+engineering+update with $0.002 Base USDC PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/prompt","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"text","in":"query","required":true,"description":"Untrusted prompt, MCP tool description, or text (up to 4096 chars) to scan for prompt injection.","schema":{"type":"string","minLength":1,"maxLength":4096},"example":"Summarize the quarterly engineering update."},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}},"post":{"operationId":"screenPromptInjection","summary":"Prompt Injection, MCP Tool-Poisoning & Unicode Tag Firewall","description":"Deterministically scan untrusted prompts, web pages, and MCP tool descriptions for instruction overrides, tool poisoning, invisible Unicode tag smuggling (U+E0000-U+E007F), and secret exfiltration.","tags":["ai-safety","security"],"x-guidance":"GET ?text=... or POST JSON { \"prompt\": \"...\" } or { \"prompts\": [\"...\"] } (up to 4096 chars each). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/prompt","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"prompt":{"type":"string","maxLength":4096,"description":"Single untrusted prompt, MCP tool description, or fetched text (up to 4096 chars) to scan."},"prompts":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":4096},"description":"Untrusted prompts, MCP tool descriptions, or fetched texts (up to 4096 chars each) to scan for prompt injection, tool poisoning, Unicode tag smuggling, and secret exfiltration."},"text":{"type":"string","maxLength":4096,"description":"Alias for `prompt`: untrusted prompt, MCP tool description, or text (up to 4096 chars) to scan."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/url":{"get":{"operationId":"screenUrlSsrfGet","summary":"Pre-Fetch SSRF, Cloud Metadata & Malicious URL Firewall (GET query)","description":"Deterministically screen candidate URLs before agent fetch/navigation for loopback, RFC1918, CGNAT, IPv6 unique-local/link-local/IPv4-mapped, AWS/GCP/Azure/Alibaba metadata IPs & hostnames, hex/octal/decimal IP encodings, non-HTTP(S) schemes, embedded credentials, punycode homoglyphs, and open redirects.","tags":["ssrf-firewall","security"],"x-guidance":"GET /v1/screen/url?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fworkers%2F with $0.002 Base USDC PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/url","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"url","in":"query","required":true,"description":"Candidate URL (up to 2048 chars) to pre-screen for SSRF, cloud metadata, dangerous schemes, and homoglyphs.","schema":{"type":"string","minLength":1,"maxLength":2048},"example":"https://developers.cloudflare.com/workers/"},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}},"post":{"operationId":"screenUrlSsrf","summary":"Pre-Fetch SSRF, Cloud Metadata & Malicious URL Firewall","description":"Deterministically screen candidate URLs before agent fetch/navigation for loopback, RFC1918, CGNAT, IPv6 unique-local/link-local/IPv4-mapped, AWS/GCP/Azure/Alibaba metadata IPs & hostnames, hex/octal/decimal IP encodings, non-HTTP(S) schemes, embedded credentials, punycode homoglyphs, and open redirects.","tags":["ssrf-firewall","security"],"x-guidance":"GET ?url=https://... or POST JSON { \"url\": \"https://...\" } or { \"urls\": [\"https://...\"] } (up to 2048 chars each). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/url","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"url":{"type":"string","maxLength":2048,"description":"Single URL shorthand (up to 2048 chars) to inspect for SSRF, private/metadata IPs, dangerous schemes, credentials, IDN homoglyphs, and open redirects."},"urls":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":2048},"description":"URLs (up to 2048 chars each) to pre-screen before fetch for SSRF (loopback, RFC1918, CGNAT, IPv6 mapped/local, cloud metadata, hex/octal/decimal IP encodings), non-HTTP(S) schemes, credentials, punycode homoglyphs, and open redirects."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/secret":{"post":{"operationId":"screenSecretLeak","summary":"Pre-Publish Secret Leak Detector & Redactor for AI Agents","description":"Deterministically scan PR bodies, logs, and webhook payloads before publishing for OpenAI/Anthropic/AWS/GitHub/Stripe/Slack/Google API keys, PEM & 64-hex crypto private keys, JWTs, and Bearer tokens, returning safe, riskScore, masked findings, and redactedText.","tags":["secret-redaction","security"],"x-guidance":"POST JSON { \"text\": \"...\" } or { \"secret\": \"...\" } or { \"secrets\": [\"...\"] } (up to 8192 chars each). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/secret","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","maxLength":8192,"description":"Alias for `secret`: single text/log/PR snippet (up to 8192 chars) to scan & redact for leaked secrets."},"texts":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":8192},"description":"Alias for `secrets`: array of text snippets (up to 8192 chars each) to scan & redact for leaked secrets."},"secret":{"type":"string","maxLength":8192,"description":"Single text/log/diff/webhook payload shorthand (up to 8192 chars) to scan & redact for leaked API keys, private keys, JWTs, and Bearer tokens."},"secrets":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":8192},"description":"Text snippets, PR bodies, logs, or webhook payloads (up to 8192 chars each) to scan & redact for leaked API keys (OpenAI, Anthropic, AWS, GitHub, Stripe, Slack, Google), PEM/hex private keys, JWTs, and Bearer tokens."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}},"/v1/screen/diff":{"post":{"operationId":"screenGitDiff","summary":"Pre-Merge Git Diff & PR Patch Security Auditor","description":"Deterministically audit unified git diffs and PR patches before apply/merge across 7 failure modes (leaked secrets in + lines, destructive shell/SQL, CI workflow injection, postinstall hooks, SSRF/private IPs, auth/TLS bypass, Trojan Source BiDi Unicode) plus unified hunk integrity.","tags":["patch-security","security"],"x-guidance":"POST JSON { \"diff\": \"--- a/...\\n+++ b/...\\n...\" } or { \"diffs\": [\"...\"] } (up to 16384 chars each). Settle $0.002 Base USDC (2000 atomic on eip155:8453) via PAYMENT-SIGNATURE header.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002"},"protocols":[{"x402":{}}]},"x-x402-payment":{"x402Version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"2000","maxAmountRequired":"2000","payTo":"0x4cd4fB93EfE67D1bC15E8f9befa8CBe6E9197698","resource":"https://aso-x402-screen.asostudio.workers.dev/v1/screen/diff","facilitator":"https://facilitator.payai.network"},"parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"description":"Base64-encoded x402 v2 signed PaymentPayload.","schema":{"type":"string"}},{"name":"X-PAYMENT","in":"header","required":false,"description":"Legacy x402 v1 Base64-encoded signed PaymentPayload.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"diff":{"type":"string","maxLength":16384,"description":"Single unified git diff or PR patch shorthand (up to 16384 chars) to audit for leaked secrets, destructive shell/SQL, CI injection, malicious lifecycle hooks, SSRF/private IPs, auth/TLS bypass, Trojan Source Unicode, and corrupt hunk counts."},"diffs":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":16384},"description":"Unified git diffs or PR patches (up to 16384 chars each) to pre-screen before git apply / PR merge."},"patch":{"type":"string","maxLength":16384,"description":"Alias for `diff`: single unified git diff or patch snippet (up to 16384 chars) to audit."},"patches":{"type":"array","maxItems":25,"items":{"type":"string","maxLength":16384},"description":"Alias for `diffs`: array of unified git diffs or patch snippets (up to 16384 chars each) to audit."}}}}}},"responses":{"200":{"description":"Deterministic screening results.","headers":{"PAYMENT-RESPONSE":{"description":"Base64-encoded x402 v2 settlement receipt.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["ok","summary","addressResults","lookalikeResults","impersonationResults","promptResults","urlResults","secretResults","diffResults","meta"],"properties":{"ok":{"type":"boolean"},"safe":{"type":"boolean"},"impersonation":{"type":"boolean"},"applySafe":{"type":"boolean"},"riskScore":{"type":"integer"},"risk_score":{"type":"integer"},"verdict":{"type":"string"},"signals":{"type":"array","items":{"type":"string"}},"canonical_comparison":{"type":"object"},"ssrfDetected":{"type":"boolean"},"reasons":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"findings":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"integer"},"detail":{"type":"string"},"preview":{"type":"string"},"offset":{"type":"integer"},"length":{"type":"integer"}}}},"redactedText":{"type":"string"},"summary":{"type":"object","required":["totalItems","sanctionedCount","impersonationCount","promptInjectionCount","urlThreatCount","secretLeakCount","diffThreatCount","highestRiskScore"],"properties":{"totalItems":{"type":"integer"},"sanctionedCount":{"type":"integer"},"impersonationCount":{"type":"integer"},"impersonationThreatCount":{"type":"integer"},"promptInjectionCount":{"type":"integer"},"urlThreatCount":{"type":"integer"},"secretLeakCount":{"type":"integer"},"diffThreatCount":{"type":"integer"},"highestRiskScore":{"type":"integer"}}},"addressResults":{"type":"array","items":{"type":"object"}},"lookalikeResults":{"type":"array","items":{"type":"object"}},"impersonationResults":{"type":"array","items":{"type":"object"}},"promptResults":{"type":"array","items":{"type":"object"}},"urlResults":{"type":"array","items":{"type":"object"}},"secretResults":{"type":"array","items":{"type":"object"}},"diffResults":{"type":"array","items":{"type":"object"}},"meta":{"type":"object"}}}}}},"400":{"description":"Invalid input or batch size > 25 (rejected prior to payment settlement)."},"402":{"description":"x402 Payment Required challenge (Base USDC exact scheme).","headers":{"PAYMENT-REQUIRED":{"description":"Base64-encoded x402PaymentRequired JSON challenge.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["x402Version","resource","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string"},"invalidReason":{"type":"string"},"facilitator":{"type":"string","format":"uri"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"413":{"description":"Payload exceeds 32 KB limit."},"429":{"description":"Per-IP rate limit exceeded."}}}}}}