Submit Vote
Submit a vote for a pair comparison.
Security / integrity rules (per plan):
- Votes require Supabase JWT (API keys are rejected)
- Votes are bound to the currently served sticky pair via pair_id
- winner_id must be one of the pair’s samples
- For anchored experiments: both samples must share the same anchor_value
- Soft-deleted samples cannot be voted on
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Path Parameters
Body
- VoteCreate
- VoteCreate
- VoteCreate
Request to submit a vote.
Votes are bound to the currently served sticky pair via pair_id.
Pair ID returned by GET next-pair (sticky)
Winning sample id for left_wins/right_wins outcomes.
Per-criterion outcomes for a multi-axis experiment. Mutually exclusive with the scalar outcome/winner_id (which are sugar for the single 'default' axis). The route layer enforces that all experiment axes are present; tie/cannot_tell count as answering.
Client-side telemetry schema version
64Optional feedback text explaining the choice
2000Vote outcome. Required when winner_id is omitted. Non-choice outcomes do not count for ranking or spend.
left_wins, right_wins, tie, both_bad, cannot_tell Playback percentage observed on sample A (audio flows)
0 <= x <= 100Playback seconds observed on sample A (audio flows)
x >= 0Playback percentage observed on sample B (audio flows)
0 <= x <= 100Playback seconds observed on sample B (audio flows)
x >= 0Absolute per-sample scores for numeric axes in a mixed multi-axis vote.
Time taken to make the decision in milliseconds
x >= 0Response
Successful Response
Response after submitting a vote.
Response with the next pair to compare.
ready, completed, paused, no_comparisons, no_pairs_available, blocked, error Updated voting progress after a submitted vote.

