FurniOpsDocs
API referenceMatching

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.

  • Scopesproducts:read
  • Rate classread
GET/v1/match-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.

Authorization

apiKey
AuthorizationBearer <token>

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

In: header

Query Parameters

limit?integer

Page size

Range1 <= value <= 100
Default20
starting_after?string

Opaque position returned by a previous page

Match^[A-Za-z0-9_-]{1,512}$
ending_before?string

Opaque position returned by a previous page

Match^[A-Za-z0-9_-]{1,512}$
status?string

Pairs of this status

Default"open"

Value in

  • "open"
  • "merged"
  • "dismissed"
  • "stale"

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"
If-None-Match?string

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