{"openapi":"3.0.3","info":{"title":"cent-ai API","version":"1","description":"Versioned REST API behind every cent-ai tool. No authentication is required today. See https://cent-ai.com/docs/api for human-readable documentation."},"servers":[{"url":"https://api.cent-ai.com"}],"paths":{"/v1/tools/json/format":{"post":{"summary":"Format and validate JSON","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"JSON input."},"indentation":{"type":"integer","enum":[2,4],"default":2},"sortKeys":{"type":"boolean","default":false}}},"example":{"input":"{\"service\":\"payments-api\",\"replicas\":3}","indentation":2,"sortKeys":true}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"jsonFormat","tags":["json"]}},"/v1/tools/yaml/format":{"post":{"summary":"Format and validate a single YAML document","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"YAML input (single document)."},"indentation":{"type":"integer","enum":[2,4],"default":2},"sortKeys":{"type":"boolean","default":false}}},"example":{"input":"service: payments-api\nreplicas: 3\n","indentation":2,"sortKeys":false}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"yamlFormat","tags":["yaml"]}},"/v1/tools/base64/format":{"post":{"summary":"Encode or decode Base64","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Text (encode) or Base64 (decode)."},"mode":{"type":"string","enum":["encode","decode"],"default":"encode"},"batch":{"type":"boolean","default":false,"description":"Treat each non-blank line as a separate value."}}},"example":{"input":"hello world","mode":"encode","batch":false}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"base64Format","tags":["base64"]}},"/v1/tools/jwt/decode":{"post":{"summary":"Decode a JWT's header and payload (does not verify the signature)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Compact JWT (header.payload.signature)."}}},"example":{"input":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"jwtDecode","tags":["jwt"]}},"/v1/tools/hash/generate":{"post":{"summary":"Generate a hex digest of text input","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Text to hash."},"algorithm":{"type":"string","enum":["md5","sha1","sha256","sha512"],"default":"sha256"}}},"example":{"input":"hello world","algorithm":"sha256"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"hashGenerate","tags":["hash"]}},"/v1/tools/cidr/calculate":{"post":{"summary":"Calculate IPv4 network details from CIDR notation","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"IPv4 CIDR, e.g. 10.0.0.0/24."}}},"example":{"input":"10.0.0.0/24"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"cidrCalculate","tags":["cidr"]}},"/v1/tools/dns/lookup":{"post":{"summary":"Look up A, AAAA, CNAME, MX, TXT, and NS records for a hostname","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Hostname, e.g. example.com."}}},"example":{"input":"example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"dnsLookup","tags":["dns"]}},"/v1/tools/ip/lookup":{"post":{"summary":"Classify an IPv4/IPv6 address and look up its reverse DNS (PTR) record","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"IPv4 or IPv6 address, e.g. 8.8.8.8."}}},"example":{"input":"93.184.216.34"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"ipLookup","tags":["ip"]}},"/v1/tools/http-headers/inspect":{"post":{"summary":"Fetch a URL's status code and response headers, following redirects","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Absolute http(s) URL, e.g. https://example.com."}}},"example":{"input":"https://example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"httpHeadersInspect","tags":["http-headers"]}},"/v1/tools/tls/inspect":{"post":{"summary":"Connect over TLS and report the certificate's subject, issuer, validity, and trust status","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Hostname, or hostname:port (port defaults to 443), e.g. example.com."}}},"example":{"input":"example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"tlsInspect","tags":["tls"]}},"/v1/tools/certificate/decode":{"post":{"summary":"Decode a PEM-encoded X.509 certificate's subject, issuer, validity, SANs, and public key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"PEM-encoded X.509 certificate (-----BEGIN CERTIFICATE-----)."}}},"example":{"input":"-----BEGIN CERTIFICATE-----\nMIIB...\n-----END CERTIFICATE-----"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"certificateDecode","tags":["certificate"]}},"/v1/tools/hmac/generate":{"post":{"summary":"Generate an HMAC digest of text input using a secret key","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input","secret"],"properties":{"input":{"type":"string","minLength":1,"description":"Text to authenticate."},"secret":{"type":"string","minLength":1,"description":"The HMAC key."},"algorithm":{"type":"string","enum":["md5","sha1","sha256","sha512"],"default":"sha256"}}},"example":{"input":"payload to sign","secret":"shared-secret","algorithm":"sha256"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"hmacGenerate","tags":["hmac"]}},"/v1/tools/csr/decode":{"post":{"summary":"Decode a PEM-encoded PKCS#10 certificate signing request's subject, public key, and requested SANs","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"PEM-encoded CSR (-----BEGIN CERTIFICATE REQUEST-----)."}}},"example":{"input":"-----BEGIN CERTIFICATE REQUEST-----\nMIIB...\n-----END CERTIFICATE REQUEST-----"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["output","valid"],"properties":{"output":{"type":"string"},"valid":{"type":"boolean","enum":[true]}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"csrDecode","tags":["csr"]}},"/v1/tools/http-headers/check":{"post":{"summary":"Check a domain's security-relevant HTTP response headers (HSTS, CSP, and others), with findings","x-requires-network":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Hostname, e.g. example.com (no scheme)."}}},"example":{"input":"example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"finalUrl":{"type":"string"},"status":{"type":"number"},"redirectCount":{"type":"number"},"checks":{"type":"array","items":{"type":"object","properties":{"header":{"type":"string"},"status":{"type":"string","enum":["present","missing","misconfigured","informational","not_applicable"]},"value":{"type":"string"},"note":{"type":"string"}}}}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"504":{"description":"The scan exceeded its overall time budget and was stopped (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"httpHeadersCheck","tags":["http-headers"]}},"/v1/tools/tls/check":{"post":{"summary":"Check a domain's TLS certificate health: trust, expiry, hostname match, chain, and negotiated protocol/cipher","x-requires-network":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Hostname, or hostname:port (port defaults to 443), e.g. example.com."}}},"example":{"input":"example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"number"},"protocol":{"type":"string","nullable":true},"cipher":{"type":"object","nullable":true},"authorized":{"type":"boolean"},"authorizationError":{"type":"string"},"hostnameError":{"type":"string"},"subjectAltNames":{"type":"array","items":{"type":"string"}},"chain":{"type":"array","items":{"type":"object"}},"chainTruncated":{"type":"boolean"},"expiry":{"type":"object","properties":{"validTo":{"type":"string"},"daysRemaining":{"type":"number","nullable":true},"status":{"type":"string","nullable":true}}}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"504":{"description":"The scan exceeded its overall time budget and was stopped (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"tlsCheck","tags":["tls"]}},"/v1/tools/certificate/analyze":{"post":{"summary":"Analyze a pasted PEM certificate's fields, extensions, and expiry","x-requires-network":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"PEM-encoded X.509 certificate (-----BEGIN CERTIFICATE-----)."}}},"example":{"input":"-----BEGIN CERTIFICATE-----\nMIIB...\n-----END CERTIFICATE-----"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"subject":{"type":"string"},"issuer":{"type":"string"},"validFrom":{"type":"string"},"validTo":{"type":"string"},"serialNumber":{"type":"string"},"subjectAltNames":{"type":"array","items":{"type":"string"}},"publicKey":{"type":"string"},"signatureAlgorithm":{"type":"string"},"fingerprint256":{"type":"string"},"isCa":{"type":"boolean"},"keyUsage":{"type":"array","items":{"type":"string"}},"extendedKeyUsage":{"type":"array","items":{"type":"string"}},"structurallyParseable":{"type":"boolean","enum":[true]},"currentlyValid":{"type":"boolean"},"expiry":{"type":"object","properties":{"daysRemaining":{"type":"number"},"status":{"type":"string"}}}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"certificateAnalyze","tags":["certificate"]}},"/v1/tools/certificate-chain/validate":{"post":{"summary":"Validate a live host's certificate chain: ordering, missing intermediates, expired links, basic constraints","x-requires-network":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Hostname, or hostname:port, e.g. example.com."}}},"example":{"input":"example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"number"},"authorized":{"type":"boolean"},"authorizationError":{"type":"string"},"chain":{"type":"array","items":{"type":"object"}},"chainLength":{"type":"number"},"chainTruncated":{"type":"boolean"}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"504":{"description":"The scan exceeded its overall time budget and was stopped (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"certificateChainValidate","tags":["certificate-chain"]}},"/v1/tools/certificate-expiry/check":{"post":{"summary":"Check certificate expiry from a live domain or a pasted PEM certificate","x-requires-network":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Hostname, e.g. example.com, OR a PEM-encoded X.509 certificate."}}},"example":{"input":"example.com"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"source":{"type":"string","enum":["domain","certificate"]},"subject":{"type":"string"},"host":{"type":"string"},"port":{"type":"number"},"validFrom":{"type":"string"},"validTo":{"type":"string"},"daysRemaining":{"type":"number"},"status":{"type":"string"}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"504":{"description":"The scan exceeded its overall time budget and was stopped (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"certificateExpiryCheck","tags":["certificate-expiry"]}},"/v1/tools/secret-scanner/scan":{"post":{"summary":"Scan text for likely secrets (deterministic pattern/context/entropy detection, no LLM)","x-requires-network":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":"Text to scan, e.g. config or code."}}},"example":{"input":"aws_access_key_id = \"AKIAIOSFODNN7EXAMPLE\""}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"linesScanned":{"type":"number"},"truncated":{"type":"boolean"},"matchCount":{"type":"number"}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"secretScannerScan","tags":["secret-scanner"]}},"/v1/tools/env-scanner/scan":{"post":{"summary":"Scan .env-style configuration for exposed secrets and risky configuration patterns","x-requires-network":false,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","minLength":1,"description":".env-style text, e.g. KEY=value per line."}}},"example":{"input":"NODE_ENV=production\nDEBUG=true\n"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"variableCount":{"type":"number"},"linesScanned":{"type":"number"},"truncated":{"type":"boolean"}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"envScannerScan","tags":["env-scanner"]}},"/v1/tools/env-scanner/scan-url":{"post":{"summary":"Fetch a URL and scan its response body for exposed secrets and risky configuration patterns — checks whether a live site is accidentally serving its own .env file. Single GET to the exact URL given, no path-probing.","x-requires-network":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","minLength":1,"maxLength":2048,"description":"Exact full URL to fetch, e.g. https://example.com/.env."}}},"example":{"url":"https://example.com/.env"}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","required":["success","data","meta"],"properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","required":["tool","data","findings","meta"],"properties":{"tool":{"type":"string"},"data":{"type":"object","properties":{"variableCount":{"type":"number"},"linesScanned":{"type":"number"},"truncated":{"type":"boolean"},"finalUrl":{"type":"string","description":"The URL actually scanned, after following any redirects."},"status":{"type":"number"},"fetchTruncated":{"type":"boolean","description":"True if the fetched response body was cut off at the byte cap."}}},"findings":{"type":"array","items":{"type":"object","required":["id","severity","title","description"],"properties":{"id":{"type":"string","description":"Stable rule id, e.g. \"tls.cert.expiring-soon\"."},"severity":{"type":"string","enum":["info","low","medium","high","critical"]},"title":{"type":"string"},"description":{"type":"string"},"evidence":{"type":"object","description":"Structured evidence only — primitive values, never raw secret/input material.","additionalProperties":{"type":["string","number","boolean","null"]}},"recommendation":{"type":"string"},"category":{"type":"string"},"references":{"type":"array","items":{"type":"string"}}}}},"meta":{"type":"object","required":["toolVersion","scannedAt"],"properties":{"toolVersion":{"type":"string"},"scannedAt":{"type":"string","format":"date-time"},"durationMs":{"type":"number"},"truncated":{"type":"boolean"}}}}},"meta":{"type":"object","required":["requestId","processingTimeMs"],"properties":{"requestId":{"type":"string"},"processingTimeMs":{"type":"number"}}}}}}}},"400":{"description":"Invalid request shape.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"403":{"description":"The target is disallowed (network-dependent tools only) — e.g. a private or reserved address.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"413":{"description":"Payload exceeds the configured size limit.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"422":{"description":"Request shape is valid but the tool content could not be processed.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limit exceeded for this tool, or too many concurrent scans for this identity. Includes a Retry-After header (seconds).","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."}},"content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"500":{"description":"Unexpected server failure. Never includes a stack trace.","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"502":{"description":"The target could not be resolved or reached (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}},"504":{"description":"The scan exceeded its overall time budget and was stopped (network-dependent tools only).","content":{"application/json":{"schema":{"type":"object","required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["INVALID_REQUEST","INVALID_JSON","INVALID_YAML","INVALID_BASE64","INVALID_JWT","INVALID_CIDR","INVALID_HOSTNAME","INVALID_IP_ADDRESS","INVALID_URL","INVALID_CERTIFICATE","INVALID_CSR","FORBIDDEN_TARGET","TARGET_UNREACHABLE","PAYLOAD_TOO_LARGE","UNSUPPORTED_OPERATION","RATE_LIMITED","CONCURRENCY_LIMIT","SCAN_TIMEOUT","NOT_FOUND","UNAUTHORIZED","FORBIDDEN","BLACKLISTED","CONFLICT","INTERNAL_ERROR"]},"message":{"type":"string"},"details":{}}},"meta":{"type":"object","properties":{"requestId":{"type":"string"}}}}}}}}},"operationId":"envScannerScanUrl","tags":["env-scanner"]}},"/health":{"get":{"summary":"Liveness check","responses":{"200":{"description":"Service is up."}},"operationId":"health","tags":["Service"]}},"/ready":{"get":{"summary":"Readiness check","responses":{"200":{"description":"Service is ready to accept traffic."}},"operationId":"ready","tags":["Service"]}}}}