List review pairs
Pairs of variants in the organisation's catalogue that may be one item, most probable first: the evidence for and against each, its decisive conflicts and the AI judge's answer. Open pairs by default.
- Scopes
products:read - Rate classread
/v1/match-pairsPairs of variants in the organisation's catalogue that may be one item, most probable first: the evidence for and against each, its decisive conflicts and the AI judge's answer. Open pairs by default.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Query Parameters
Page size
1 <= value <= 10020Opaque position returned by a previous page
^[A-Za-z0-9_-]{1,512}$Opaque position returned by a previous page
^[A-Za-z0-9_-]{1,512}$Pairs of this status
"open"Value in
- "open"
- "merged"
- "dismissed"
- "stale"
Header Parameters
Dated API version; pinned per organisation on first use and overridable per request
Value in
- "2026-10-01"
- "2026-10-04"
The data the request acts on: test is the organisation's sandbox. An OAuth token picks it (live by default); an API key's mode is fixed, and naming the other one is refused
Value in
- "live"
- "test"
ETag of a cached representation; a match returns 304
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/match-pairs"{ "object": "list", "data": [ { "object": "match_pair", "id": "string", "status": "open", "probability": 0, "variants": [ { "id": "string", "product": "string" }, { "id": "string", "product": "string" } ], "evidence": [ { "comparison": "string", "level": -9007199254740991, "weight": 0 } ], "conflicts": [ "string" ], "judgement": { "object": "match_judgement", "id": "string", "model": "string", "outcome": "merged", "choice": "string", "confidence": 0, "reasons": [ { "field": "string", "subject_quote": "string", "candidate_quote": "string" } ], "note": "string", "judged_at": "2019-08-24T14:15:22Z" }, "merge": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "has_more": true, "next_cursor": "string"}Retrieve a merge GET
One merge: the product groups and variants it joined, who decided it, and its undoing.
List merges GET
The organisation's merges, newest first, whoever decided them: matching's rules, its scores, the AI judge or a person. Filter by status or by a product group on either side, to find a merge to undo.