---
title: "Submit Enrich Ground Truth"
method: POST
path: "/v3/events/{eventID}/enrich-feedback"
tags: ["Feedback"]
---

# Submit Enrich Ground Truth

`POST /v3/events/{eventID}/enrich-feedback`

**Submit ground-truth re-ranking for an enrich event.**

An enrich output ranks candidates per enriched field, each candidate carrying a
stable `id`. This endpoint records the client's own ranking of those candidates
(by id) as ground truth, for later ranking-quality metrics.

Per field, `rankings` gives each candidate a 1-based `rank` (lower = better);
ties and gaps are allowed, and candidates left out are treated as unranked.
Every id must appear in that field's enrich output. Re-submitting overwrites.

Non-enrich events return `400`, matching `POST /v3/events/{eventID}/feedback`,
which reports an unsupported function type the same way. A body that is
structurally invalid (missing path, empty rankings, `rank` < 1, duplicate ids)
also returns `400`; a body that is well-formed but does not match the output
(unknown field path, unknown candidate id) returns `422`.

## Path parameters

- `eventID` string, required

## Request body

- EnrichGroundTruthRequest — Body of `POST /v3/events/{eventID}/enrich-feedback`.
  - `fields` EnrichFieldGroundTruth[], required
    - `path` string, required — The enriched field: a top-level key, or a JSON pointer for nested fields.
    - `rankings` EnrichCandidateRank[], required — The client's rank for each candidate they chose to rank, by id. Must contain at least one entry; candidates left out are treated as unranked.
      - `id` string, required — The candidate id, copied from the enrich output. Collection candidates are identified by their collection item id ("clitm_…"); endpoint candidates, which have no such row, by a content hash of their data ("h_…").
      - `rank` integer, required — 1-based rank (lower = better). Ties and gaps are allowed.

## Response `200`

The request has succeeded.

- EnrichGroundTruthResponse — Echoes the stored enrich ground truth.
  - `eventID` string, required — The event the ground truth was recorded against.
  - `functionType` string, required — Always `enrich`.
  - `fields` EnrichFieldGroundTruth[], required — The stored ground truth, echoed back.
    - `path` string, required — The enriched field: a top-level key, or a JSON pointer for nested fields.
    - `rankings` EnrichCandidateRank[], required — The client's rank for each candidate they chose to rank, by id. Must contain at least one entry; candidates left out are treated as unranked.
      - `id` string, required — The candidate id, copied from the enrich output. Collection candidates are identified by their collection item id ("clitm_…"); endpoint candidates, which have no such row, by a content hash of their data ("h_…").
      - `rank` integer, required — 1-based rank (lower = better). Ties and gaps are allowed.
  - `createdAt` string, date-time, required — When the ground truth was written.

## Changes

- **2026-08-10** `5b0d4b491ca7` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/bem-team/apis/bem-api/changes/v3/events/:eventID/enrich-feedback/post.md)

---

[API](https://skmtc.dev/bem-team/apis/bem-api.md) · [All operations](https://skmtc.dev/bem-team/apis/bem-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bem-team/bem-api/revisions/a6e4624117c6/schema)
