Skip to main content
Risk signals let you feed fraud-detection data into Truthlocks from any upstream provider — device fingerprinting services, IP reputation APIs, email verification tools, document analysis engines, or your own internal rules. Once ingested, signals are available through the API and the Risk & Fraud > Signals page in the console.
The Anti-Fraud Identity Firewall is generally available. All five detection paths — direct signal ingestion, event normalization, deepfake scanning, ATO detection, and velocity scoring — are production-ready with multi-language API examples (cURL, JavaScript, Python), end-to-end guides, and real-time webhook notifications for all signal types. Automated risk decisions, case management, and fraud SIEM export are now available.
You can create signals in five ways:
  • Direct ingestion — send a fully scored signal via POST /v1/risk/signals when you already have a risk score from an external provider. Supports idempotent retries via the Idempotency-Key header.
  • Event normalization — send a raw identity event via POST /v1/risk/events and let the platform map it to a signal type and base score automatically. See event normalization.
  • Deepfake and impersonation scanning — submit subjects for automated analysis via POST /v1/risk/deepfake/scan. Scans that score 60 or above automatically ingest a risk signal. See the deepfake detection guide.
  • Account takeover detection — evaluate login events against velocity-based heuristics via POST /v1/risk/ato/evaluate. Alerts are created and risk signals ingested automatically when thresholds are crossed. See the ATO detection guide.
  • Velocity and anomaly scoring — record subject actions via POST /v1/risk/velocity/record and have the platform track frequency across rolling time windows (1 m, 5 m, 1 h, 24 h). Actions that produce a weighted velocity score of 60 or above automatically ingest a risk signal. See the velocity scoring guide.

Choosing an ingestion path

All five paths produce the same risk signal records. You can query, filter, and review signals from any path using the list endpoint and the Risk & Fraud > Signals console page.

How it works

1

Ingest signals

Send a POST request to /v1/risk/signals with the signal source, type, risk score, and the subject it relates to. Attach any extra context in the payload object.
2

Query and filter

Use GET /v1/risk/signals to list signals with filters for source, signal type, subject, and minimum score. Results are paginated with cursor-based pagination.
3

Review in the console

Open Risk & Fraud > Signals in the tenant console to browse signals, filter by source or score, and inspect individual signal details.

Prerequisites

  • An active Truthlocks tenant with an API key
  • At least one upstream fraud-detection source that produces scored signals

Ingesting a signal

Send a POST request with the required fields:

Required fields

Optional fields

Idempotency

Include an Idempotency-Key header (UUID) to prevent duplicate signals during retries. If you send the same key twice, the duplicate is silently ignored.

Querying signals

List with filters

Available filters:

Get a single signal

Console view

The Risk & Fraud > Signals page in the console provides a searchable, filterable list of all ingested signals. Each row shows the source, type, score (color-coded by severity), subject reference, and timestamp. Use the filters at the top of the page to narrow results by source, signal type, or minimum score. Click any row to view the full signal details including the payload metadata object.

Scoring guidelines

Consistent scoring across sources makes downstream analysis more reliable. We recommend the following ranges:
Scores at or above 80 trigger automatic review decisions. Score interpretation beyond the automatic threshold is up to you — the platform stores and returns scores as-is and does not normalize across sources.

Event normalization

Instead of manually constructing risk signals, you can submit raw identity events and let the platform normalize them into signals automatically. This is useful when you want to feed platform-native events — failed logins, invalid signatures, deepfake suspects — directly into the risk pipeline without mapping them to signal types yourself. Send a POST request to /v1/risk/events with the event source, type, and subject:
The response includes both the raw event_id and the normalized signal_id, so you can trace the full pipeline from event to signal:
When normalized is true, the event matched a known mapping. When false, the platform used the generic fallback.

Built-in event mappings

The platform ships with pre-calibrated mappings for common identity events: Unknown event types are accepted with signal type behavior and a base score of 10.

Event fields

Required: Optional:
Use event normalization when your events originate from within the platform (logins, verifications, attestations). Use the direct signal ingestion endpoint when you already have a scored signal from an external source.

Tenant isolation

Risk signals are fully tenant-isolated using row-level security (RLS). Each signal is bound to the authenticated tenant at ingestion time, and queries can only return signals that belong to the calling tenant.

Deepfake and impersonation detection

The deepfake detection API extends the risk signal pipeline with automated scanning for manipulated content and identity fraud. Submit images, videos, documents, or attestations for analysis, and scans that exceed the risk threshold automatically create a risk signal — no extra API call needed. See the deepfake and impersonation detection guide for the full workflow, indicator reference, and code examples.

Account takeover detection

The ATO detection API extends the risk signal pipeline with velocity-based login monitoring. Send login events to POST /v1/risk/ato/evaluate and the platform tracks failed attempts per subject in a rolling one-hour window. When a subject crosses a threshold (5, 10, or 20 failed logins), an alert is created and a risk signal is automatically ingested — no extra API call needed. See the account takeover detection guide for the full workflow, threshold reference, and integration patterns.

Velocity and anomaly scoring

The velocity scoring API extends the risk signal pipeline with multi-window action tracking and anomaly detection. Record any subject action via POST /v1/risk/velocity/record and the platform tracks frequency across four rolling windows (1 m, 5 m, 1 h, 24 h). A weighted velocity score is computed from the window counts, biased toward short windows for burst detection. When the score reaches 60 or above, a risk signal with signal_type: "velocity" is automatically ingested — no extra API call needed. See the velocity and anomaly scoring guide for the full workflow, scoring model, and integration patterns.

Webhook notifications

Risk signals created by any of the five detection paths can trigger real-time webhook notifications. Subscribe to risk.signal.created or risk.signal.escalated to react to new signals without polling. This covers signals from direct ingestion, event normalization, deepfake scans, ATO alerts, and velocity anomalies. See the webhooks guide for payload examples and integration patterns.

Usage metering

Anti-Fraud features are metered per billing cycle. Each detection path increments its own usage counter: Quotas vary by plan tier. You can check your current consumption with the usage API or in the console at Settings > Billing > Usage under the Anti-Fraud section. To verify whether a specific operation is allowed before performing it, use the limit check endpoint.
The response includes all Anti-Fraud counters with used, limit, and period fields so you can monitor consumption programmatically.
See the billing overview for the full list of 16 metered products and their default rates.

What’s next