{"components":{"securitySchemes":{"enterpriseBearer":{"bearerFormat":"sk_live_*","description":"Enterprise tier \u2014 Bearer token issued to high-volume customers (wallet apps, AI agent platforms) who prefer a monthly subscription to per-call onchain payment. Skips the x402 flow entirely and rate-limits per-key instead of per-IP. Contact us to provision a key.","scheme":"bearer","type":"http"},"x402Payment":{"description":"Pay-per-request x402 payment. Retry with X-402-Signature + X-402-Nonce headers after paying onchain. See individual operation's x-payment-info for amounts per chain.","scheme":"x402","type":"http"}}},"info":{"contact":{"email":"info@safebrowz.com"},"description":"Phishing, wallet drainer, and brand impersonation detection for any URL. Returns a safe/caution/danger verdict, trust score (0-100), impersonated brand (if any), and 23 threat signals including credential phishing, wallet drainer, pastejacking, fake CAPTCHA, brand impersonation, and more. Pay-per-request via x402 with 0.01 USDC on Solana or Base. No signup, no API keys.","license":{"name":"Commercial"},"title":"SafeBrowz Detection API","version":"1.0.0","x-guidance":"Agents: POST /v1/detect with {\"url\": \"...\"} body. First call returns HTTP 402 with a payment manifest listing Solana USDC (0.01) and Base USDC (0.01) options. Pay on either chain (see x-payment-info on the /v1/detect operation for atomic amounts). Retry with X-PAYMENT header (preferred) or X-402-Signature + X-402-Nonce (legacy; add X-402-Chain: base and X-402-Wallet-Sig for Base). Price budget: allocate ~0.01 USDC per call. Nonces expire in 10 min.","x-logo":{"altText":"SafeBrowz","backgroundColor":"#050510","href":"https://safebrowz.com","url":"https://safebrowz.com/logo-192.png"}},"openapi":"3.1.0","paths":{"/v1/detect":{"post":{"description":"Returns safe/caution/danger verdict with brand, trust_score (0-100), 23 boolean threat signals, and reason. Matches the SafeBrowz browser extension output exactly. First call returns 402 with payment instructions; pay on Solana with memo `safebrowz:<nonce>` OR on Base with an ERC-20 USDC transfer plus EIP-191 signature of `safebrowz:<nonce>`. Retry with X-402-Signature, X-402-Nonce, and optionally X-402-Chain + X-402-Wallet-Sig for Base.","parameters":[{"description":"Settlement chain. Default `solana`. Set to `base` to verify an EVM USDC payment.","in":"header","name":"X-402-Chain","required":false,"schema":{"default":"solana","enum":["solana","base"],"type":"string"}},{"description":"Solana tx signature or Base tx hash proving payment.","in":"header","name":"X-402-Signature","required":false,"schema":{"type":"string"}},{"description":"Nonce issued by the preceding 402 response.","in":"header","name":"X-402-Nonce","required":false,"schema":{"type":"string"}},{"description":"Base-only. EIP-191 personal_sign of `safebrowz:<nonce>`. Must recover to the tx sender.","in":"header","name":"X-402-Wallet-Sig","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"url":{"example":"https://app.trezor-io.us.com/","format":"uri","type":"string"}},"required":["url"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"brand":{"type":["string","null"]},"confidence":{"maximum":1,"minimum":0,"type":"number"},"details":{"properties":{"domain_age_days":{"type":["integer","null"]},"matched_brand":{"type":"string"},"matched_patterns":{"items":{"type":"string"},"type":"array"},"tld":{"type":"string"}},"type":"object"},"reason":{"type":"string"},"signals":{"description":"Boolean flag per threat category for UX branching. fresh_domain may be null when the domain age could not be resolved - treat null as 'unknown', not false.","type":"object"},"threat_types":{"items":{"enum":["wallet_drainer","seed_phrase_phishing","brand_impersonation","crypto_scam","crypto_airdrop_scam","crypto_giveaway_scam","credential_phishing","account_phishing","delivery_scam","government_impersonation","invoice_scam","tech_support_scam","fake_captcha","pastejacking","disposable_tld","fresh_domain","free_hosting_subdomain"],"type":"string"},"type":"array"},"verdict":{"enum":["safe","caution","danger"],"type":"string"}},"type":"object"}}},"description":"Verdict"},"400":{"description":"missing_url or invalid_url"},"402":{"content":{"application/json":{"schema":{"properties":{"error":{"example":"payment_required","type":"string"},"payment":{"properties":{"alternatives":{"type":"array"},"amount":{"type":"string"},"chain":{"example":"solana","type":"string"},"memo_format":{"type":"string"},"nonce":{"format":"uuid","type":"string"},"recipient":{"type":"string"},"token":{"example":"USDC","type":"string"},"token_mint":{"type":"string"}},"type":"object"},"status":{"example":402,"type":"integer"}},"type":"object"}}},"description":"Payment required"},"409":{"description":"nonce_already_used"},"429":{"description":"Rate limited"},"503":{"description":"Solana RPC unavailable"}},"summary":"Detect scam verdict for a URL","x-discovery":{"category":"security","ownershipProofs":[],"tags":["phishing-detection","url-scanning","web3-safety","wallet-drainer-detection","ai-agents"]},"x-payment-info":{"authMode":"payment","price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]}}}},"security":[{"x402Payment":[]},{"enterpriseBearer":[]}],"servers":[{"url":"https://api.safebrowz.com"}]}
