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

# Choose a model

> When to use Anchor 3.0 Mini, Flagship, or Max on the one enforce endpoint.

All three models share [Enforce Content](/api-reference/validate/validate-content)
(`POST /api/v3/content/validate`). You pick a tier with `model_engine` in the
request body. There is no separate Mini or Max route.

The public name for the default tier is **Flagship**. The body value is
`anchor_3_0`. Older internal notes called this **Base**; that name is not used
in these docs. Pass `anchor_3_0` whenever another document says Base or
Anchor 3.0.

| Public name | `model_engine`    | Use it when                                                                                                              |
| ----------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Mini        | `anchor_3_0_mini` | You need a fast whole-message verdict against Mini's frozen rulebook. No scope or rewrite.                               |
| Flagship    | `anchor_3_0`      | You need per-line violations and a rewrite against managed rules or a trained adapter. This is the default.              |
| Max         | `anchor_3_0_max`  | You need per-line violations and a rewrite, and you will evaluate an uploaded policy at inference with nothing to train. |

## Mini

`model_engine: "anchor_3_0_mini"`

Detection only. The response has `result.flagged_rules` plus
`result.any_violation_detected` and `result.any_violation_p`. There are no
per-line `violations`, no `fix.suggested_text`, and no rewrite.

Mini always runs unscoped against its frozen rulebook. It cannot honor
workspace pack toggles or switched-off rules. Sending `validation_scope`
returns `422 unsupported_scope_for_model`; scope a Flagship or Max call
instead.

**When to use.** High-volume pre-checks, a first-pass flag before a Flagship
or Max call, or any path that only needs "is this clean?" Mini skips the
rewrite pass, so it returns sooner than Flagship or Max on the same input.

**When not to use.** You need a compliant rewrite, per-line quotes, or a
scoped rule set.

## Flagship

`model_engine: "anchor_3_0"` (default)

Per-line violations plus rewrite. With no `validation_scope`, Flagship stays on
Flagship and checks the workspace's active managed catalog only. Activated
custom rules are not evaluated by that scope-less call.

To evaluate an uploaded policy on Flagship, train an
[adapter](/guides/train-an-adapter) and scope the request to its import.
Training Studio is Flagship-only at launch.

**When to use.** Chat, email, and agent replies where you will apply
`fix.suggested_text` or block. Start here unless you have a reason to pick
Mini or Max.

**When not to use.** You only need a detection flag (use Mini), or you want
uploaded policies evaluated at inference on Max.

## Max

`model_engine: "anchor_3_0_max"`

Per-line violations plus rewrite, same shape as Flagship. Max evaluates the
workspace's active managed and custom rules at inference. There is no training
step and no Training Studio charge. Ask for Max explicitly; merely activating
custom rules does not move a scope-less Flagship request to Max.

To run Max against a policy you uploaded:

1. [Import](/guides/import-a-policy) the document and wait for extraction.
2. [Activate](/api-reference/custom-policies/activate-rules) the rules.
3. Call enforce with `model_engine: "anchor_3_0_max"` and the import id in
   `validation_scope.imports`.

**When to use.** Custom policies you do not want to train, or a mix of
managed rulepacks and uploaded rule text on one call.

**When not to use.** You only need detection (use Mini), or you already have
a Flagship adapter and want that adapter's judgment (use Flagship).

## Latency

Typical Flagship (Anchor 3.0) latency is 1.63 seconds. Mini is detection
only, so it skips the rewrite pass and returns sooner. Flagship and Max run
detection and then rewrite. Quality, precision, recall, F1, and latency are
on the [Anchor 3.0 benchmark](https://zerodrift.com/model/anchor-3-benchmark).

These are not SLOs; long content, cold starts, and fallback can take longer.
Use `mode: "sync"` for short content and `mode: "async"` when you expect to
wait.

## Request shape

Same endpoint, same fields, different `model_engine`:

```json theme={null}
{
  "content": "Our fund guarantees 20% returns with zero risk!",
  "mode": "sync",
  "model_engine": "anchor_3_0"
}
```

Replace `anchor_3_0` with `anchor_3_0_mini` or `anchor_3_0_max`. Read the
verdict from `result` on a completed job. See
[Act on Each Verdict](/guides/act-on-verdicts) for Pass / Fix / Block /
Escalate.

Mini responses omit per-line `violations` and rewrite fields. Handlers that
read `violations[].fix.suggested_text` must branch on Mini or skip that tier.

Public responses report billed `result.units` and `result.cost`; they do not
return raw input/output token counts.

## Next

* [Enforce Content](/api-reference/validate/validate-content) — request and
  response fields
* [Anchor 3.0 benchmark](https://zerodrift.com/model/anchor-3-benchmark) —
  quality and latency
* [Pricing](/pricing) — per-validation rates for Mini, Flagship, and Max
* [Quickstart](/quickstart) — first call
* [Train an Adapter](/guides/train-an-adapter) — optional Flagship adapter
* [Import a Policy](/guides/import-a-policy) — custom rules on Flagship or Max
