We are currently building something exciting and will be launching soon. Registration is temporarily closed. Launching soon — registration temporarily closed.

Fraud & Scam Detection API

Classify text with structured, versioned results. The Fraud & Scam Detection analyzer classifies text against 200 indicators in 4 groups across 39 supported languages.

Use the returned groups, indicators, confidence values, and version metadata in your own triage and review workflows.

POST /v1/analyze · REST · JSON · Bearer authentication

Make your first request

curl -X POST https://sentiqra.tech/v1/analyze \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "This is the CEO. Process an urgent wire transfer to this new vendor account before end of day and keep it confidential.",
    "language": "en",
    "analyzers": [
        "fraud-scam"
    ]
}'

Example response:

{
    "language": "en",
    "language_source": "declared",
    "signals": [
        {
            "analyzer": "fraud-scam",
            "code": "payment_diversion",
            "label": "Payment Diversion",
            "score": 0.94,
            "level": "category"
        },
        {
            "analyzer": "fraud-scam",
            "code": "pd_bec_ceo_request",
            "label": "CEO Urgent Payment Request BEC",
            "score": 0.92,
            "level": "label",
            "parent": "payment_diversion"
        },
        {
            "analyzer": "fraud-scam",
            "code": "pd_bec_attorney_confidential",
            "label": "Attorney Confidential Payment BEC",
            "score": 0.89,
            "level": "label",
            "parent": "payment_diversion"
        }
    ],
    "meta": {
        "analyzers": [
            {
                "name": "fraud-scam",
                "status": "completed",
                "applicability": "analyzable",
                "assessment": "signals_detected",
                "signal_count": 3,
                "billed": true
            }
        ]
    },
    "usage": {
        "analyzer_runs": 1
    },
    "verification": {
        "configuration": "sqcfg_CQ8CN62V",
        "fingerprint": "fp_8a72...19f",
        "input_commitment": "ic_31bd...a42",
        "signature": "sig_ed25519_4c1f...e2a",
        "key_id": "edk_af4f218e"
    }
}

Don't have an API key? Generate one from the API Keys page in your dashboard.

Endpoint

POST /v1/analyze

Analyzes submitted text and returns structured signals with scores and a verification receipt. Select this analyzer via the analyzers parameter with ID fraud-scam.

Request

{
    "text": "This is the CEO. Process an urgent wire transfer to this new vendor account before end of day and keep it confidential.",
    "language": "en",
    "analyzers": [
        "fraud-scam"
    ]
}

Parameters

Parameter Type Required Default Description
textstringYes-Text to analyze
languagestringNo"en"Supported language code
analyzersstring[]Yes-1–2 analyzer slugs to run (never defaults to all)

Related endpoints

GET /v1/meta/domains

Lists all analyzers with identifiers, status, and endpoints - no authentication required. Send a Bearer API key for taxonomy size and language counts.

GET /v1/meta/domains/fraud-scam

Identifier, availability, and endpoint for this analyzer. Send a Bearer API key for taxonomy summary and supported languages.

GET /v1/account/usage

Current-period usage and quota for your API key. Requires authentication.

Response fields

Field Type Description
analyzerstringAnalyzer that produced this signal
codestringStable machine identifier - immutable across API versions; use for storage and cross-referencing
labelstringHuman-readable display name
scorefloatSignal-match strength (0.0-1.0)
levelstring"category" or "label"
parentstringParent category code (label-level only)

Important behavior

Determinism

For the same normalized input evaluated against the same pinned configuration and output profile, Sentiqra returns the same canonical signals. Version changes are explicit.

Confidence

A score expresses signal-match strength under a particular analyzer configuration. It is not a probability that the signal or a downstream action is correct. Validate action thresholds on representative labeled data.

Privacy

Submitted text is processed in memory and not retained. See data handling for exact retention behavior.

Limits

Character limit, RPS, and monthly quota depend on your plan. See pricing for current limits.

Supported languages

Fraud & Scam Detection currently supports 39 languages.

Code Language Status
ar Arabic Production
arz Egyptian Arabic Production
be Belarusian Production
bg Bulgarian Production
bn Bengali Production
cs Czech Production
da Danish Production
de German Production
el Greek Production
en English Production
es Spanish Production
fi Finnish Production
fr French Production
ha Hausa Production
hi Hindi Production
hr Croatian Production
hu Hungarian Production
id Indonesian Production
it Italian Production
ja Japanese Production
lt Lithuanian Production
mr Marathi Production
nl Dutch Production
no Norwegian Production
pcm Nigerian Pidgin Production
pl Polish Production
pt Portuguese Production
ro Romanian Production
ru Russian Production
sk Slovak Production
sr Serbian Production
sv Swedish Production
sw Swahili Production
te Telugu Production
tr Turkish Production
uk Ukrainian Production
ur Urdu Production
vi Vietnamese Production
zh Chinese Production

All languages this detector supports are enabled on every plan. Custom or restricted arrangements may scope language access - check the dashboard or GET /v1/account/entitlements for account-specific availability.

Detector does not support language → 400 unsupported_language
Detector supports language but the account is not entitled (restricted/custom arrangements only - GA plans include all supported languages) → 403 language_not_in_plan

View language coverage and benchmarks →

Taxonomy

The Fraud & Scam Detection taxonomy contains 4 groups and 200 indicators. Representative entries are shown publicly - the complete taxonomy is available to customers after request access .

1

Impersonation

impersonation

50 indicators

The complete signal list is available to customers. Request access to view it.

2

Payment Diversion

payment_diversion

50 indicators

The complete signal list is available to customers. Request access to view it.

3

Fake Invoice

fake_invoice

50 indicators

The complete signal list is available to customers. Request access to view it.

4

Social Engineering

social_engineering

50 indicators

The complete signal list is available to customers. Request access to view it.

Reading Fraud & Scam Detection output

What you can safely infer from a result - and what you must not.

Intended task

Flag documented fraud and scam patterns - payment diversion, impersonation, advance-fee lures - in text before money or credentials move.

Input requirements

  • text - the only field analyzed; up to 4,096 Unicode code points. Over the limit is rejected with input_too_long, never truncated.
  • language - must be a language this analyzer supports. Unsupported codes are rejected with 400 unsupported_language, never analyzed as a different language.
  • analyzers - include "fraud-scam"; up to 2 analyzers per request, one billed run each.
  • No context beyond text - no user IDs, history, profiles, or attachments are read or inferred.
  • Analyzes the submitted text only - sender identity, headers, and account relationships are not inputs.

Ordinary positive

“Please update our payment details - our account is under audit, so wire this month's invoices to the new account below.”

paydiv_vendor_supplier very high
paydiv_bec_ceo high

Safe inference: The text matches documented payment-diversion patterns - hold the payment change and verify out-of-band before any wire.

Confusing negative · Quotation

“Security bulletin: watch for emails like "wire this month's invoices to the new account below" - report them to finance.”

What happens: Payment-diversion signals can fire on the quoted lure. Training material, bulletins, and forwarded suspect emails all contain the same language as the attack itself - the signal describes the text, not whether this message is itself an attack.

Why it's tricky: A bare request like "can you send me $200?" may also be too thin to match strongly - fraud patterns are contextual. Treat flagged text as a verify-first trigger, and unflagged payment changes as "not detected" rather than verified-safe.

What you can safely infer

  • Which documented fraud patterns the text matched, and at what signal-match strength.
  • That the same message on the same pinned configuration replays identically - the receipt supports your audit trail.

What you must not infer

  • ✕That a flagged message proves fraud or wrongdoing - signals route verification, they do not determine guilt.
  • ✕That the sender is a criminal - impersonation signals describe the language, not the person.
  • ✕That an unflagged payment request is verified-safe - always confirm payment changes out-of-band regardless of the result.

Boundary: Fraud signals are not proof of wrongdoing. They flag language consistent with documented schemes so an analyst or control step can verify - payment changes should always be confirmed out-of-band regardless of the result.

Next steps