{"openapi":"3.1.0","info":{"title":"Security & Privacy Checks","version":"0.1.0","description":"Security and privacy checks: offline leaked-secret scanning and PII detection/redaction for prompts, logs and tool output, plus live CISA known-exploited vulnerability (KEV) catalog checks by CVE for patch prioritization.","x-guidance":"Security and privacy checks: offline leaked-secret scanning and PII detection/redaction for prompts, logs and tool output, plus live CISA known-exploited vulnerability (KEV) catalog checks by CVE for patch prioritization. Each operation is an HTTP POST to its /v1/<operation> path with a JSON request body (see each operation's requestBody schema) and returns a JSON response. Endpoints are paid per successful call via x402 or MPP (USDC on Base); an unpaid request returns 402 with payment metadata in the WWW-Authenticate header.","contact":{"email":"hello@openverbs.com"}},"x-discovery":{"ownershipProofs":["0xb1401a71756f51464a9962db12f1eb3e9522490cd20010b06d00cf7b7770acfd5f79721f9dfdf2643f8cecd29af3bde9ec133941a386042b32d9886053a70de61b","0xc1c1f11793e18a00fcb7072421f26e89fb75b6aa517fa84370564991f4b10efa024f6f57e4e67eefd20cf46cc01fc5a62d793fa8fbcda04f26c946a3433d73f91b","0x676b474af0ef9ed4809b5d12d2e789b36e52d56215b21f601d71f76620e36ec630347116a7b2b349a3c3681e5db0fbfa76c4169a676b6d6f27864d0e5017284a1c","0xc2ab96522515ed9e9bc4f1a241b774bd48df42e951ddbf7f6aa8fc76f5a96a20421703e1ec402ce7eb1e4eabea3b6e4e4129cf39d56ea91cf4fcf38561fc94fc1c"]},"servers":[{"url":"https://scan.openverbs.com"}],"paths":{"/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}}}}}}}},"/v1/secrets":{"post":{"summary":"Scan text for leaked secrets","description":"Scan source code or configuration text for hardcoded secrets: AWS access keys, GitHub/Slack/Google tokens, Stripe and OpenAI keys, PEM private-key blocks, JWTs and high-entropy secret assignments. Placeholder values are filtered out. Each finding gives the rule, a severity (critical/high/medium/low), line and column, entropy and a masked excerpt. Offline and deterministic. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["scan for secrets","detect leaked credentials","api key scanner","find hardcoded tokens","secret leak detection","credential scan api"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":500000,"description":"The source code or configuration text to scan for secrets."}},"required":["content"],"additionalProperties":false}}}},"responses":{"200":{"description":"`{ hasSecrets, count, counts: { <severity>: n }, findings: [{ rule, name, severity, line, column, match, entropy }] }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ hasSecrets, count, counts: { <severity>: n }, findings: [{ rule, name, severity, line, column, match, entropy }] }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Scan source code or configuration text for hardcoded secrets: AWS access keys, GitHub/Slack/Google tokens, Stripe and OpenAI keys, PEM private-key blocks, JWTs and high-entropy secret assignments. Placeholder values are filtered out. Each finding gives the rule, a severity (critical/high/medium/low), line and column, entropy and a masked excerpt. Offline and deterministic.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Scan source code or configuration text for hardcoded secrets: AWS access keys, GitHub/Slack/Google tokens, Stripe and OpenAI keys, PEM private-key blocks, JWTs and high-entropy secret assignments. Placeholder values are filtered out. Each finding gives the rule, a severity (critical/high/medium/low), line and column, entropy and a masked excerpt. Offline and deterministic.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Scan source code or configuration text for hardcoded secrets: AWS access keys, GitHub/Slack/Google tokens, Stripe and OpenAI keys, PEM private-key blocks, JWTs and high-entropy secret assignments. Placeholder values are filtered out. Each finding gives the rule, a severity (critical/high/medium/low), line and column, entropy and a masked excerpt. Offline and deterministic.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/detect":{"post":{"summary":"Detect PII","description":"Find personally identifiable information in a text blob: emails, phone numbers, credit cards (Luhn-validated), IBANs (mod-97 validated), IPv4/IPv6 addresses, US SSNs and JWTs. Returns every match with its type and character offsets, plus per-type counts. Validated — not just pattern-matched — to keep false positives low. Fully offline. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["detect pii","pii detection api","find personal data","privacy data scanner","identify sensitive text","pii lookup"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":200000,"description":"The text to scan for PII."},"types":{"type":"array","items":{"type":"string","enum":["email","phone","credit_card","iban","ipv4","ipv6","us_ssn","jwt"]},"minItems":1,"description":"Optional subset of PII types to look for. Omit to scan for all."}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"`{ hasPII, count, counts: { <type>: n }, matches: [{ type, value, start, end }] }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ hasPII, count, counts: { <type>: n }, matches: [{ type, value, start, end }] }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Find personally identifiable information in a text blob: emails, phone numbers, credit cards (Luhn-validated), IBANs (mod-97 validated), IPv4/IPv6 addresses, US SSNs and JWTs. Returns every match with its type and character offsets, plus per-type counts. Validated — not just pattern-matched — to keep false positives low. Fully offline.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Find personally identifiable information in a text blob: emails, phone numbers, credit cards (Luhn-validated), IBANs (mod-97 validated), IPv4/IPv6 addresses, US SSNs and JWTs. Returns every match with its type and character offsets, plus per-type counts. Validated — not just pattern-matched — to keep false positives low. Fully offline.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Find personally identifiable information in a text blob: emails, phone numbers, credit cards (Luhn-validated), IBANs (mod-97 validated), IPv4/IPv6 addresses, US SSNs and JWTs. Returns every match with its type and character offsets, plus per-type counts. Validated — not just pattern-matched — to keep false positives low. Fully offline.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/redact":{"post":{"summary":"Redact PII","description":"Return the input text with every detected PII span replaced. `mode` controls the replacement: \"label\" (default) → `[EMAIL]`; \"mask\" → the value covered with a mask character; \"hash\" → `[EMAIL:1a2b3c4d]`, a stable per-value fingerprint so equal values stay linkable without exposing them. Same validated detectors as `/detect`. Fully offline. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["redact pii","pii redaction api","mask personal data","anonymize sensitive text","remove private information","hash pii values"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":200000,"description":"The text to redact."},"types":{"type":"array","items":{"type":"string","enum":["email","phone","credit_card","iban","ipv4","ipv6","us_ssn","jwt"]},"minItems":1,"description":"Optional subset of PII types to look for. Omit to scan for all."},"mode":{"type":"string","enum":["label","mask","hash"],"description":"Replacement style. Default \"label\"."},"mask":{"type":"string","minLength":1,"maxLength":8,"description":"Mask character used when mode=\"mask\" (first character is used). Default \"•\"."}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"`{ redacted, count, counts: { <type>: n }, matches: [{ type, value, start, end }] }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ redacted, count, counts: { <type>: n }, matches: [{ type, value, start, end }] }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Return the input text with every detected PII span replaced. `mode` controls the replacement: \"label\" (default) → `[EMAIL]`; \"mask\" → the value covered with a mask character; \"hash\" → `[EMAIL:1a2b3c4d]`, a stable per-value fingerprint so equal values stay linkable without exposing them. Same validated detectors as `/detect`. Fully offline.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Return the input text with every detected PII span replaced. `mode` controls the replacement: \"label\" (default) → `[EMAIL]`; \"mask\" → the value covered with a mask character; \"hash\" → `[EMAIL:1a2b3c4d]`, a stable per-value fingerprint so equal values stay linkable without exposing them. Same validated detectors as `/detect`. Fully offline.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Return the input text with every detected PII span replaced. `mode` controls the replacement: \"label\" (default) → `[EMAIL]`; \"mask\" → the value covered with a mask character; \"hash\" → `[EMAIL:1a2b3c4d]`, a stable per-value fingerprint so equal values stay linkable without exposing them. Same validated detectors as `/detect`. Fully offline.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/kev":{"post":{"summary":"CISA known exploited vulnerabilities check","description":"Check up to 50 CVE IDs against CISA's Known Exploited Vulnerabilities (KEV) catalog. Returns membership, vendor/product, exploitation evidence, ransomware-use status and remediation guidance from CC0 data. Not listed does not mean safe or unexploited. Federal due dates are not global deadlines. Refreshed hourly; stale snapshots are explicitly flagged. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["cisa kev","known exploited vulnerabilities","actively exploited cve","cve remediation","ransomware vulnerabilities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cves":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","pattern":"^[Cc][Vv][Ee]-[0-9]{4}-[0-9]{4,19}$"}}},"required":["cves"],"additionalProperties":false},"example":{"cves":["CVE-2021-44228"]}}}},"responses":{"200":{"description":"`{ source, catalogVersion, asOf, catalogSize, checkedAt, results:[{cve,listed,vendor,product,name,description,dateAdded,requiredAction,federalDueDate,ransomwareUse,cwes,reference}], stale, cachedAt? }`. Membership only, not a safety or CVE-existence verdict.","content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string"},"catalogVersion":{"type":"string"},"asOf":{"type":"string"},"catalogSize":{"type":"integer"},"checkedAt":{"type":"string"},"stale":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"cve":{"type":"string"},"listed":{"type":"boolean"},"vendor":{"type":"string"},"product":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"dateAdded":{"type":"string"},"requiredAction":{"type":"string"},"federalDueDate":{"type":"string"},"ransomwareUse":{"type":"string"},"cwes":{"type":"array","items":{"type":"string"}},"reference":{"type":"string"}}}}},"description":"`{ source, catalogVersion, asOf, catalogSize, checkedAt, results:[{cve,listed,vendor,product,name,description,dateAdded,requiredAction,federalDueDate,ransomwareUse,cwes,reference}], stale, cachedAt? }`. Membership only, not a safety or CVE-existence verdict."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Check up to 50 CVE IDs against CISA's Known Exploited Vulnerabilities (KEV) catalog. Returns membership, vendor/product, exploitation evidence, ransomware-use status and remediation guidance from CC0 data. Not listed does not mean safe or unexploited. Federal due dates are not global deadlines. Refreshed hourly; stale snapshots are explicitly flagged.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Check up to 50 CVE IDs against CISA's Known Exploited Vulnerabilities (KEV) catalog. Returns membership, vendor/product, exploitation evidence, ransomware-use status and remediation guidance from CC0 data. Not listed does not mean safe or unexploited. Federal due dates are not global deadlines. Refreshed hourly; stale snapshots are explicitly flagged.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Check up to 50 CVE IDs against CISA's Known Exploited Vulnerabilities (KEV) catalog. Returns membership, vendor/product, exploitation evidence, ransomware-use status and remediation guidance from CC0 data. Not listed does not mean safe or unexploited. Federal due dates are not global deadlines. Refreshed hourly; stale snapshots are explicitly flagged.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}}},"x-service-info":{"categories":["trust-safety"],"docs":{"homepage":"https://scan.openverbs.com","apiReference":"https://scan.openverbs.com/openapi.json"}}}