> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Investigator agent

> Let the Investigator prepare a cited report for every verification, transaction alert and case in review, and choose how much it may decide on its own.

> [!WARNING]
>
> The Investigator is new and is not yet enabled for every organization. Ask Didit to turn it on. It needs the Growth plan or higher, and it never runs on sandbox applications.

The Investigator reviews items that are waiting for a person. For each one it reads the record, writes a report with a recommendation and the evidence behind it, and either waits for your reviewer or, when you allow it, decides on its own.

## What it reviews

| Queue | Item | Starts when |
| - | - | - |
| KYC | A verification session | The session moves to **In Review**. |
| KYB | A business verification | The session moves to **In Review**. |
| AML | A session with an ongoing AML monitoring hit | A new hit arrives. |
| Transactions | A transaction alert | The transaction moves to **In Review**. |
| Cases | A case | The case is opened or reopened. |

If your team decides the item first, the Investigator's run closes without a decision.

## The report

Each report has:

* a **recommendation**: approve, decline, request more information (resubmission for a verification, awaiting the user for a transaction), or escalate,
* a **confidence**: high, moderate or low,
* a summary and the reasoning,
* **evidence**: each point is marked fine, a risk, worth a look, explained, or context, and cites its sources,
* for screening hits, whether each hit is the same person, not the same person, or unclear,
* suggested next steps, such as opening a linked record or a case.

### Sources it cites

The Investigator reads the same data your reviewers see in the console and the API: the verification decision, the business verification decision, the transaction detail or the case detail. It can also open linked sessions, transactions and cases. Every evidence point cites the section of the record it read, or the linked record it opened. The report also shows **What I checked**: the overview, sections and records it read, in order.

It works only from that record. Before the record reaches the model, Didit removes media, links and internal identifiers, and masks protected characteristics. The Investigator cannot change data. It only writes its report.

## Stages

| Stage | What happens | Charged |
| - | - | - |
| **Not set up** | The Investigator does not run. | No |
| **Shadow mode** | It writes reports and scores itself against your team's decisions. Reviewers decide as usual. | No |
| **Automation is live** | Reports appear for reviewers, and queues can decide on their own at the autonomy level you choose. | Yes |

Run shadow mode for 7, 14 (the default) or 30 days before going live. Setup, shadow mode and backtests are never charged.

## Autonomy levels

Set an autonomy level for each queue:

| Level | What it does |
| - | - |
| **Off** | Items reach reviewers without a report. |
| **Suggest** (default) | It prepares the report. A person decides every item. |
| **Auto** | It decides items your policy covers, at **high** confidence, when its past agreement with your team meets the queue threshold. |
| **Full auto** | It also decides **moderate**-confidence items. A sample still goes to a person for quality checks. |

The Investigator decides on its own only when all of these hold:

* the application is live and the queue is on **Auto** or **Full auto**, and not paused,
* your team policy covers the item and says to take the recommended action,
* no guardrail holds the item,
* its agreement with your team's past decisions meets the threshold, over at least 20 decisions in the last 90 days,
* the item is not picked for the quality sample, is inside the rollout share, and the daily limit is not reached.

| Queue setting | Values |
| - | - |
| Threshold | 80, 85, 90 (default) or 95% agreement |
| Quality sample | 2, 5 (default) or 10% of decided items go to a person |
| Daily limit | Default 200 items per day |
| Rollout | Gradual (25% of items for 14 days) or all items |
| Amount cap | Transactions above it always go to a person. Default 25,000 in your application's currency. |
| Advance automatically | Move up a level when agreement reaches 98% |

To move a queue up to **Auto** or **Full auto**, you first run a backtest on past decisions and confirm the result. The **Cases** and **AML** queues are never batch-accepted, and escalated cases or cases waiting for a second reviewer are never decided automatically.

## Guardrails

These rules are always on and cannot be changed:

* Sanctions matches always go to a person.
* Fraud and AML reasons never reach end users.
* No decision is based on protected characteristics.
* The Investigator never files a regulatory report.
* Every decision is logged and can be overridden.

## Reviewing a report

On **Suggest**, a reviewer can:

* **Accept** the recommendation,
* **Edit and accept** it,
* **Override** it, with a category (missing context, needs information, policy differs, evidence misread, other) and a reason of 10 to 500 characters,
* **Batch accept** up to 50 items marked **Ready to accept**.

Accepting a recommendation applies the decision through the item's normal path, so your usual webhooks and notifications fire. An escalation opens a linked case. A decision taken by the Investigator is labelled **Decided by the Investigator** on the item.

## Team policy

Each queue has a team policy: your rules for what to approve, decline or escalate. The Investigator follows it, and it decides on its own only where the policy covers the item. Policies are versioned. The **Questions** tab collects points the Investigator needs your team to clarify.

## Audit trail

The **Activity** tab records every report, acceptance, edit, override, automated decision, guardrail hold and settings change, with who did it: the Investigator, a person, an API key or the system. Entries cannot be edited. Export up to 10,000 entries as CSV.

## Pricing

| Item reviewed | Price |
| - | - |
| Verification (KYC, KYB or AML hit) or transaction alert | \$0.10 |
| Case | \$0.40 |

You are charged once per item, only when the application is live and the report is accepted, edited and accepted, or the Investigator decides on its own. Overrides, items your team decided elsewhere, failed runs, shadow mode, setup and backtests are free. Plan discounts apply.

Set an optional monthly spend limit in **Settings**. At the limit, new items reach reviewers without a report.

## API and webhooks

The Investigator API is under `https://verification.didit.me/v3/investigator/` and uses your application's API key (`x-api-key`).

| Endpoint | Purpose |
| - | - |
| `GET summary/`, `GET queue/` | Queue counts and the items waiting. |
| `GET runs/{id}/` | One report. |
| `POST runs/{id}/accept/`, `POST runs/{id}/override/`, `POST runs/batch-accept/` | Act on reports. |
| `GET transactions/{id}/` | The report for a transaction. |
| `GET dashboard/`, `GET performance/`, `GET activity/`, `GET activity/export/` | Results and the audit trail. |
| `GET guardrails/` | The locked guardrails. |
| `GET` / `PATCH settings/` | Stage and monthly spend limit. |

A restricted API key needs the `decisions` scope to read and act on reports, and the `applications` scope to read or change settings. Transaction reports also need the `transactions` scope. Keys limited to some workflows or to approved sessions are refused, because the queue spans every workflow. The full request and response schemas are in [`openapi-25.json`](https://docs.didit.me/openapi-25.json), under the **Investigator** tag.

There is no separate Investigator webhook. The `decision` in a [`status.updated` webhook](/integration/webhooks#investigator-block) and in `GET /v3/session/{id}/decision/` includes an `investigator` block with the run's `status`, `recommendation`, `confidence`, `summary`, `ready_to_accept`, `automated` and `decided_by` (`investigator` or `member`).

## Related

> **[Manual review](/console/manual-review.md)**
>
> How your team reviews verification sessions.

> **[Cases](/console/case-management/cases.md)**
>
> Case management for alerts and investigations.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.