---
title: "Pick a winner"
method: POST
path: "/comparisons/{comparisonId}/pick"
---

# Pick a winner

`POST /comparisons/{comparisonId}/pick`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/comparisons/{comparisonId}/pick`
- Auth: HTTP bearer

Record the person's winner pick for this comparison. Writes a `human.decision` event to every session's record, as the web UI does.

Blind Arena matches use `POST /arena/personal/{id}/vote`, which preserves owned-workspace checks, blind identity masking, one verdict and billing release. This ordinary comparison-pick route still refuses those matches (`arena.kind !== "comparison"`).

## Path parameters

- `comparisonId` string, required

## Request body

- object
  - `winnerColumnId` string: The columnId of the winning column. Omit to record a tie or "none of these".
  - `outcome` 'tie' | 'both_bad': "tie" or "both_bad" when there is no winner; ignored when winnerColumnId is set.

## Response `200`

Pick recorded.

- object
  - `comparisonId` string, required
  - `winnerSessionId` string, nullable
  - `revealed` boolean, required
  - `seats` object[], required
    - `sessionId` string
    - `agentType` string
    - `llm` string

## Other responses

- `400`: Error — { error: { code, message } }
- `401`: Error — { error: { code, message } }
- `403`: Error — { error: { code, message } }
- `404`: Error — { error: { code, message } }
- `409`: Error — { error: { code, message } }
- `default`: Error — { error: { code, message, request_id } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/comparisons/:comparisonId/pick/post.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/8280a065ef6a?raw)
