Explain Risk Score
shieldlabs_explain_risk_scoreExplain why an identification received its Risk Score by breaking down the risk band, weighted signals, detection flags, and connection type. Use a request ID or pasted identification.
Instructions
Explain why an identification got its Risk Score: the band (trusted 0-29, suspicious 30-59, dangerous 60-100, or the 999 rate-limit marker), each weighted risk signal with a plain-language meaning from the catalog bundled with this server, the detection flags that are set, the connection type and caveats.
Args:
request_id (string, optional): read the identification from the History API, waiting up to about 10 s for a new one
identification (object or JSON string, optional): explain a pasted identification instead (normalized identification, webhook event or data object, or raw History API row)
response_format ('markdown' | 'json'): default 'markdown' Give exactly one of request_id and identification.
Returns (json): { "request_id": string | null, "risk_score": number, "risk_band": "trusted" | "suspicious" | "dangerous" | "rate_limited", "band_range": string, "band_meaning": string, "signals": [{ name, weight, label, meaning, reading, typical_weight, related_flag, in_catalog }], "detection_flags": [{ flag, label, scored, meaning }], "connection_type": { value, label, meaning } | null, "notes": [string], "source": "history" | "webhook" | "input", "truncated"?: true, "truncation_message"?: string }
A pasted risk_score must be an integer from 0 to 100, or the 999 rate-limit marker, and weights must be integers. Weights come from the identification itself; the catalog's typical weights can change, and signal names outside the catalog are possible. The catalog is also available as the resource shieldlabs://reference/risk-signals.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | No | Request ID of the identification to explain, read from the History API (needs SHIELDLABS_API_KEY; waits up to about 10 seconds for a new identification, like shieldlabs_get_identification). Give either request_id or identification. | |
| identification | No | An identification to explain without an API call: a normalized identification (for example the json output of shieldlabs_get_identification), a webhook event or its data object, or a raw History API row. A JSON object or its JSON text. | |
| response_format | No | Output format: 'markdown' (default) for readable text, 'json' for structured data | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| source | Yes | ||
| signals | Yes | ||
| risk_band | Yes | ||
| truncated | No | Only present (true) when this server shortened the explanation | |
| band_range | Yes | ||
| request_id | Yes | ||
| risk_score | Yes | ||
| band_meaning | Yes | ||
| connection_type | Yes | ||
| detection_flags | Yes | ||
| truncation_message | No | What was shortened: risk signals left out, or long pasted values cut |