{"tool":"safety","title":"URL Safety Check","what":"Should an agent open, sign or pay this link? Follows every redirect and checks the final site: domain age (RDAP), TLS certificate age and validity, look-alike and punycode domains, brand impersonation (PayPal, Coinbase, MetaMask, Phantom ...), risky TLDs, URL shorteners, raw-IP hosts, downloads, password and seed-phrase forms and wallet-drainer patterns. Returns a 0-100 risk score, a verdict (safe, caution, dangerous) and every signal explained. Heuristic, no blocklist.","endpoint":"https://yruz.one/api/safety","methods":["GET with query parameters","POST with a JSON body (same fields)"],"price":{"model":"fixed","usdc":"0.005"},"params":[{"name":"url","required":true,"description":"link to check, e.g. https://example.com/login","example":"https://github.com/login"}],"valid_request":{"get":"https://yruz.one/api/safety?url=https%3A%2F%2Fgithub.com%2Flogin","post":{"url":"https://yruz.one/api/safety","body":{"url":"https://github.com/login"}}},"how_to_pay":["1. Send the request without payment: the answer is HTTP 402 with the exact price (x402 v2 in the PAYMENT-REQUIRED header, x402 v1 in the JSON body).","2. Sign one offer of \"accepts\" with an x402 client (USDC on Base eip155:8453 or on Solana mainnet; the facilitator pays the network fee).","3. Resend the identical request (same method, parameters and body) with PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1).","4. The answer carries the receipt in PAYMENT-RESPONSE. Any changed parameter needs a new 402."],"response_shape":{"product":"string","result":{"url":"string","final_url":"string","final_host":"string","registrable_domain":"string","verdict":"string","risk_score":"number","advice":"string","signals":[],"redirects":[{"url":"string","status":"number"}],"domain":{"age_days":"number","created":"string","registrar":"string"},"tls":{"issuer":"string","subject":"string","valid_from":"string","issued_days_ago":"number","valid_to":"string","days_left":"number","expired":"boolean","hostname_matches":"boolean","protocol":"string"},"page":{"status":"number","content_type":"string","title":"string","password_form":"boolean","seed_phrase_prompt":"boolean","wallet_connect":"boolean","download":"boolean"},"impersonates":"null","note":"string","checked_at":"string","duration_ms":"number"},"payment":{"payment_id":"string","transaction":"string"}},"refusals":{"400":"invalid input: the message names the field and the expected format; nothing is charged","402":"payment required, or the payment was refused (reason in \"error\"); nothing is charged","403/404":"not your item, or the asked item does not exist; nothing is charged","409/422":"not allowed right now (state or destination safety); nothing is charged","503":"a source or the payment rail is unavailable; nothing is charged, retry after Retry-After"},"mcp":{"server":"https://yruz.one/mcp/x402","payment":"params._meta[\"x402/payment\"] = PaymentPayload"}}