Merge a review pair
Joins the two variants as one item, and their product groups as one product (the older survives). Undo it with the merge's undo. A pair that is not open, or whose records changed so they can no longer merge, answers 409.
- Scopes
products:write - Rate classwrite
- Idempotency-Key required
/v1/match-pairs/{id}/mergeJoins the two variants as one item, and their product groups as one product (the older survives). Undo it with the merge's undo. A pair that is not open, or whose records changed so they can no longer merge, answers 409.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Path Parameters
Match pair (two variants matching offers for review) ID
^mpr_[0-9A-Za-z]{22}$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"
Unique key for this operation, reused on retries (24 h)
1 <= length <= 257Preview the write and change nothing: true answers the would-be response, explain a Preview (application/vnd.furniops.preview+json)
Value in
- "true"
- "explain"
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
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/match-pairs/string/merge" \ -H "Idempotency-Key: string"{ "object": "merge", "id": "string", "survivor": "string", "merged": "string", "variants": [ { "merged": "string", "into": "string" } ], "decided_by": { "method": "deterministic", "rule": "string", "actor": "string", "score": 0, "confidence": 0 }, "created_at": "2019-08-24T14:15:22Z", "undone_at": "2019-08-24T14:15:22Z", "undone_by": { "method": "deterministic", "rule": "string", "actor": "string", "score": 0, "confidence": 0 }}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.
Reopen a dismissed review pair POST
Puts a dismissed pair back in the review queue, as it was before it was dismissed: it can be merged or dismissed again. A pair that is not dismissed answers 409.