/api/v1/vision/identify/{feedback_id}/confirm read:catalog Report the card your user kept for an earlier identification — the `match`, another candidate, or a printing sibling from `variants`. This is the learning loop: every confirmation feeds the same training the cardOS scanner’s confirmations do (the photo is indexed against the confirmed card, and near-misses are recorded as confusion pairs), so accuracy improves for your capture conditions over time. Free.
Confirm once per identification, with the card the user finally kept. Sending the confirmation a few hundred milliseconds after the identify response is fine — the identification record is retried for briefly if it has not landed yet.
A confirmation is a training label, so only send what a person actually chose. Do not auto-confirm `match` without the user seeing it; if you want that signal, simply do nothing — an unconfirmed identification is neutral.
POST /api/v1/vision/identify/%7Bfeedback_id%7D/confirm write These inputs are shared across all docs pages, so an id entered here carries over.
{
"card_id": "swshp_ja-104vh"
}Not run yet. Press Run to make a live call against https://service.rip.fun (through this demo's server-side proxy; the API key never reaches the browser).
curl -X POST 'https://service.rip.fun/api/v1/vision/identify/%7Bfeedback_id%7D/confirm' \
-H 'X-API-Key: rip_…' \
-H 'Content-Type: application/json' \
-d '{"card_id":"swshp_ja-104vh"}' | Field | Type | Required | Description |
|---|---|---|---|
feedback_id | number | yes | Path parameter: the `feedback_id` from the identify response. |
card_id | string | yes | The catalog id of the card the user kept — a candidate’s `card.id`, or a `variants[].card_id`. |
data)| Field | Description |
|---|---|
feedback_id | Echo of the identification confirmed. |
card_id | Echo of the confirmed card. |
was_top_match | `true` when the confirmed card was our `match`, `false` when the user picked something else, `null` when we had no match to compare against. |
| Status | Code | When |
|---|---|---|
| 400 | invalid_feedback_id | `feedback_id` is not a positive integer |
| 400 | card_id_required | no `card_id` string in the body |
| 404 | feedback_not_found | no identification with that `feedback_id` — they are kept, so this means a typo or an id from another environment |
| 429 | rate_limited | over 120 confirmations/minute for the key |
See Errors for the response envelope and the full code list.