Screen a payment endpoint for phishing (free)
screen_endpointScreen a payment ENDPOINT (URL or domain) before calling it — the half that address screening cannot answer. In x402 the agent discovers a URL first, receives a 402, and only then learns where to pay: if that endpoint is spoofed, the payee address it hands back is freshly generated and appears on no sanctions list. Checks the hostname and its parent domains against phishing-domain intelligence plus hostname shape signals (bare IP, punycode homograph, deep subdomain nesting, free hosting). Returns clear | caution | risky | unknown with language-independent signal_keys. A clear verdict means no match was found, NOT that the endpoint is safe — freshly registered phishing hosts always precede any list. Use together with screen_address. Free, no API key.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL or bare domain of the payment endpoint, e.g. https://pay.example.com/x402 or pay.example.com | |
| lang | No | Language for human-readable fields. Defaults to English. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Input error code, e.g. unknown_network, network_address_mismatch, unparsable_url. | |
| host | No | ||
| note | No | ||
| risk | No | Rounded to 10 when detail_level is coarse. | |
| error | No | Present only on an input error (isError: true). | |
| input | No | ||
| retry | No | ||
| signals | No | Human-readable. Do not branch on these. | |
| verdict | No | clear means no match in the data held, not that it is safe. uncertain must never be treated as clear. | |
| evidence | No | ||
| imitates | No | Present when the host imitates a known brand. | |
| listed_as | No | Present when the host or a parent domain is on a phishing list: source, label, firstSeen, lastSeen, delistedAt. | |
| risk_band | No | ||
| retry_hint | No | ||
| detail_note | No | ||
| reason_code | No | Stable reason code; table at https://oceanalt.com/api/contract. | |
| signal_keys | No | Language-independent keys. Branch on these. Full list at https://oceanalt.com/api/contract. | |
| detail_level | No | ||
| signal_class | No | ||
| accepted_networks | No |