---
title: "Check many pairs"
method: POST
path: "/check/batch"
---

# Check many pairs

`POST /check/batch`

## Request

- Base URL: `https://tetheredtrust.com/v1`
- URL: `https://tetheredtrust.com/v1/check/batch`
- Auth: one of:
  - none
  - HTTP bearer

Up to 25 independent compatibility checks in one call (e.g. ranking candidate products for one device). Each result has its own decision, evidence and receipt.

## Request body

- object
  - `checks` object[], required
    - `existing` string, required: What the person already has, ideally with the exact model number, e.g. 'Lenovo ThinkPad T480', 'Sony A7 IV', 'DeWalt DCD800', 'HP OfficeJet Pro 9015e', 'iPhone 16 Pro', 'HomePod mini'.
    - `candidate` string, required: What they want to buy: a model/part number or key specs, e.g. 'Crucial CT16G4SFRA32A', '1TB M.2 2230 NVMe', 'DCB205', 'HP 962XL', 'Canon RF 24-105mm f/4L', 'Eve Energy'.
    - `detail` string: Optional extra identifiers: machine type, revision, year, region, serial range.
    - `existing_id` string: Optional: an exact product id (from resolve_product, suggestions or a candidates list) instead of existing text.
    - `candidate_id` string: Optional: an exact product id instead of candidate text.

## Response `200`

OK

- object

## Other responses

- `400`: Bad input (code bad_request), or plain HTTP (https_required).
- `401`: Missing or invalid API key where one is required.
- `402`: Payment required: pay with x402 or credits and retry. Verified first, settled only for a completed decision.
- `429`: Rate limit; see Retry-After.
- `500`: Our error; retry once.
- `503`: Temporarily unavailable, or paid access is off (paid_access_off).

---

[API](https://skmtc.dev/tetheredtrust/apis/tethered-trust-api.md) · [All operations](https://skmtc.dev/tetheredtrust/apis/tethered-trust-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tetheredtrust/apis/tethered-trust-api/revisions/f737ac591159?raw)
