---
title: "Approve a suggested characteristic"
method: POST
path: "/v1/trust/passports/{passportId}/characteristics/{key}/approve"
tags: ["Trust"]
---

# Approve a suggested characteristic

`POST /v1/trust/passports/{passportId}/characteristics/{key}/approve`

## Request

- Base URL: `https://api.prod.keyban.io`
- URL: `https://api.prod.keyban.io/v1/trust/passports/{passportId}/characteristics/{key}/approve`
- Auth: API key in header `X-Api-Key`

Publish one `suggested` extraction to `product.characteristics` (it becomes `verified`). A `conflict` cannot be approved: the existing value always stays.

## Path parameters

- `passportId` string, required
- `key` string, required

## Response `201`

- DppCharacteristicReviewDto
  - `data` object[], required
    - `key` string, required: Characteristic key (camelCase), as stored in `product.characteristics`.
    - `currentValue` unknown
    - `provenance` object: AI provenance of the characteristic. Absent for source data (badge « Structuré »).
      - `source` 'ai', required: Origin of the extraction. Only `ai` exists today (LLM extraction from the passport free text); source-data characteristics carry no provenance entry at all.
      - `status` 'verified' | 'suggested' | 'conflict', required: Review status: `verified` = grounded in the source text and published to characteristics; `suggested` = not grounded, pending review; `conflict` = a different value already existed, pending arbitration.
      - `value` unknown
      - `sourceTextHash` string, required: SHA-256 (hex) of the source text (name + description) at extraction time. Lets later runs detect that the text changed and the grounding is stale.
      - `extractedAt` string, date-time, required: RFC 3339 timestamp of the extraction.
  - `total` integer, required: Number of review entries (published + parked characteristics).

## Other responses

- `409`: Conflicting extractions cannot be approved

---

[API](https://skmtc.dev/keyban/apis/keyban-rest-apis.md) · [All operations](https://skmtc.dev/keyban/apis/keyban-rest-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/keyban/apis/keyban-rest-apis/revisions/0bb79a1da961?raw)
