---
title: "Scam classes, what `score` measures, and the thresholds you can move"
method: GET
path: "/v1/ai/fraud/chat-scam/info"
tags: ["fraud:chat-scam"]
---

# Scam classes, what \`score\` measures, and the thresholds you can move

`GET /v1/ai/fraud/chat-scam/info`

## Request

- Base URL: `https://api.intura.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.intura.co/v1/ai/fraud/chat-scam/info`
- Auth: none declared

## Response `200`

Successful Response

- ModulesV1AiFraudChatScamSchemasInfoResponse
  - `status` string: Always `success` on a 2xx
  - `code` integer: Mirrors the HTTP status code
  - `data` ModulesV1AiFraudChatScamSchemasInfoData, required: What `GET .../info` publishes: what a caller can send and read. Everything describing how the endpoint is built — which artifacts are loaded, which versions are pinned, which layer answers when one is missing, which signal names the heuristics recognise — was here and is not any more. It told a caller nothing they could act on and told anyone else how the catalogue is assembled. Operators still get all of it from `Service.diagnostics()`, which `/readyz` reports and no key can reach.
    - `module` string, required
    - `version` string, required
    - `offline` boolean, required: True — no request leaves the machine.
    - `languages` string[], required: The languages this endpoint screens. A message is routed by the languages it is written in; a caller never selects one.
    - `labels` string[]: Every value `label` may take, and every key in `result.scores`.
    - `scam_labels` string[], required: The subset of `labels` that is not `benign`. Compare against this rather than hard-coding seven strings.
    - `guidance` object, required: One line per class, written for the person who received the message. Published so a warning banner can be built without reading this module's source.
    - `score` string, required: What `score` measures on this endpoint.
    - `thresholds` ThresholdInfo[], required: Every cut you can move, with Intura's default and the range it may be set inside. Send the ones you want in `thresholds` on the request; the rest keep the default.
      - `key` string, required: What to send in `thresholds` on a request, e.g. `block`.
      - `label` string, required: What crossing this cut does, in two or three words.
      - `description` string, required: When to move it, and which way.
      - `default` number, required: Intura's shipped value — the one in effect unless you change it.
      - `minimum` number, required: Lowest value accepted. Below this is a misconfiguration, not a policy.
      - `maximum` number, required: Highest value accepted.
    - `max_history` integer, required: How many previous turns are read. Anything older is dropped.

---

[API](https://skmtc.dev/intura/apis/intura-ai-api.md) - [All operations](https://skmtc.dev/intura/apis/intura-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/intura/apis/intura-ai-api/revisions/7cb6af4c6390?raw)
