---
title: "Approve an AI extraction review (ingest the candidates)"
method: POST
path: "/v1/imports/contexts/{contextId}/extraction-reviews/{reviewId}/approve"
tags: ["Ingestion"]
---

# Approve an AI extraction review (ingest the candidates)

`POST /v1/imports/contexts/{contextId}/extraction-reviews/{reviewId}/approve`

Approves a PENDING_REVIEW review and runs the SINGLE deterministic handoff into the normal ingestion pipeline (dedup + outbox + match-trigger), linking the resulting job to the review. This is the ONLY path from an AI candidate to a reconciled transaction, and it runs only on explicit human approval. The approving principal is the reviewer (audit attribution). Tenant from the JWT, context from the path.

## Path parameters

- `contextId` string, uuid, required — Context ID
- `reviewId` string, uuid, required — Review ID

## Response `200`

OK

- ApproveExtractionResponse
  - `candidateCount` integer, required — Number of candidates ingested through the normal pipeline
  - `ingestionJobId` string, uuid, required — Downstream ingestion job the approved candidates produced
  - `reviewId` string, uuid, required — Identifier of the approved review

## Other responses

- `default` — Error

---

[API](https://skmtc.net/lerian/apis/identity-plugin.md) · [All operations](https://skmtc.net/lerian/apis/identity-plugin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lerian/identity-plugin/revisions/25daba385532/schema)
