---
title: "Run Er Gate Endpoint"
method: POST
path: "/admin/er-gate"
tags: ["admin"]
---

# Run Er Gate Endpoint

`POST /admin/er-gate`

## Request

- Base URL: `https://api.humaux.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.humaux.com/admin/er-gate`
- Auth: HTTP bearer

Run the entity-resolution acceptance gate INSIDE the live app process.

WHY in-app: entity_resolution_v3.confirm_pair's L3 arbiter needs a live LLM
provider. Run standalone (docker exec … er_gate.py) it can't reach one, so every
gray-band pair returns UNKNOWN/EXCEPTION and the health gate (correctly) goes red
— the gate isn't fooled, but it also can't test real L3. Executed here, inside the
process that already has the classifier provider configured, confirm_pair's L3
reaches the real model, so the gate exercises the true funnel: L1 deterministic
synonyms (zero LLM) + L3 for the genuine gray band.

Deterministic L1 + tenant isolation already decide most canary pairs with no LLM,
so this endpoint is cheap (only a handful of real L3 calls). READ-ONLY: it merely
calls confirm_pair; it NEVER merges anything (merges stay behind the migration
script's backup + interactive guards).

Body (optional): {"dataset": "<path>"} — defaults to the shipped canary set.
Returns {status: PASS|FAIL, results: <gate json>, report: <human text>}.

## Request body

- object

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/humaux/apis/humaux-memory.md) · [All operations](https://skmtc.dev/humaux/apis/humaux-memory/llms.txt) · [OpenAPI document](https://skmtc.dev/humaux/apis/humaux-memory/revisions/30baeb9d49d8?raw)
