FurniOpsDocs
API referenceMatching

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.

POST/v1/match-pairs/{id}/merge

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.

Authorization

apiKey
AuthorizationBearer <token>

An API key (fo_live_… / fo_test_…) as a bearer token

In: header

Path Parameters

id*string

Match pair (two variants matching offers for review) ID

Match^mpr_[0-9A-Za-z]{22}$

Header Parameters

FurniOps-Version?string

Dated API version; pinned per organisation on first use and overridable per request

Value in

  • "2026-10-01"
  • "2026-10-04"
FurniOps-Mode?string

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"
Idempotency-Key*string

Unique key for this operation, reused on retries (24 h)

Length1 <= length <= 257
FurniOps-Dry-Run?string

Preview 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  }}