---
title: "List AI match-rule suggestions (the human-review queue)"
method: GET
path: "/v1/matching/contexts/{contextId}/rule-suggestions"
tags: ["Matching"]
---

# List AI match-rule suggestions (the human-review queue)

`GET /v1/matching/contexts/{contextId}/rule-suggestions`

Cursor-paginated list of rule suggestions for a context, optionally filtered by status (e.g. PENDING_REVIEW). Reads stored config-only candidates; egresses nothing. Tenant from the JWT, context from the path.

## Path parameters

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

## Query parameters

- `status` 'PENDING_REVIEW' | 'APPROVED' | 'REJECTED' — Filter by status
- `limit` integer — Page size
- `cursor` string — Opaque pagination cursor

## Response `200`

OK

- RuleSuggestionListResponse
  - `items` RuleSuggestionResponse[], nullable, required — Page of rule-suggestion reviews
    - `candidate` RuleSuggestionCandidateResponse, required
      - `confidence` number, double, required — Advisor confidence in the suggestion, from 0.0 (lowest) to 1.0 (highest)
      - `config` object, required — Per-type rule configuration over the closed schema; the shape depends on the candidate type
      - `expectedImprovement` string — Advisory note on the expected auto-match-rate effect; never a monetary figure
      - `priority` integer, required — Proposed rule priority in the range 1..1000 (lower runs first)
      - `rationale` string, required — Short human-readable rationale for the suggestion
      - `type` string, required — Proposed rule type from the closed vocabulary: EXACT (strict equality), TOLERANCE (within an amount band), or DATE_LAG (allowing a settlement-date offset)
    - `contextId` string, required — Reconciliation context ID this suggestion belongs to
    - `createdAt` string, required — When the review was created (RFC 3339)
    - `createdRuleId` string — Identifier of the match rule created on approval; empty until an approved review is linked
    - `id` string, required — Unique identifier for the review
    - `rejectReason` string — Optional reason recorded when the suggestion is rejected
    - `reviewerId` string — Principal id of the reviewer; empty until the suggestion is adjudicated
    - `status` string, required — Lifecycle status: PENDING_REVIEW (awaiting human decision), APPROVED (rule created), or REJECTED (discarded)
    - `updatedAt` string, required — When the review was last updated (RFC 3339)
    - `version` integer, required — Optimistic-concurrency version of the review
  - `limit` integer, required — Maximum number of items requested for this page
  - `nextCursor` string — Opaque cursor for the next page; empty when there are no more results
  - `prevCursor` string — Opaque cursor for the previous page; empty on the first page

## 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/versions/25daba385532/schema)
