Skip to main content
POST /api/v1/pairwise compares creatives directly instead of scoring them independently. Use it when you already know which matchups need a decision. Every pair gets exactly five blinded Claude Haiku votes, with presentation order balanced 3/2 to control for position bias. The response returns every vote and every raw response, so the result is auditable rather than a black-box verdict.
This is not the same mechanism as refine_close_pairs on the Rank API. Refinement is automatic and fires only on near-ties that Kettio detects. The Pairwise API runs a full panel on exactly the pairs you name, whatever their scores.

Request

Send 1 to 10 pairs per request. The endpoint uses the same inline-or-saved audience contract as /api/v1/rank, so an audience_id works here too. Full schemas are in the Pairwise API reference.

Outcomes and billing

Pairwise usage is reported separately from Rank API usage. The Rank API’s rate limit and credit accounting are based on scoring evaluations; pairwise_evaluations are counted on their own.

Use it as a controlled cascade

The reason to keep the two endpoints separate is that it lets you run a clean experiment. The pattern:
1

Rank with refinement off

Call /api/v1/rank with refine_close_pairs: false so the SSR scores stay frozen.
2

Pick the comparisons before you look at outcomes

Choose which pairs to send to /api/v1/pairwise — and choose your consensus threshold — up front, not after seeing results.
3

Override only on consensus

Replace the SSR winner only when the panel clears the threshold you preregistered.
Picking the pairs or the threshold after reading outcomes turns this into a post-hoc fit. If you intend to report the result as evidence, fix both before the first outcome lands.

Choosing between the two

Use Rank

You have a batch and need an ordering. You do not know in advance which comparisons matter.

Use Pairwise

You have two specific creatives and need to know which one wins, with the votes on record.