---
title: "Submit a validation"
method: POST
path: "/v1/validations"
tags: ["simple"]
---

# Submit a validation

`POST /v1/validations`

## Request

- Base URL: `https://alive-api.alphakek.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://alive-api.alphakek.ai/v1/validations`
- Auth: none declared

Submit a validation on a pair. Challenge ID resolves the bench automatically.

## Request body

- VerificationRequest: Submit a verification on a pair.
  - `challenge_id` string, required: Challenge ID
  - `solution_a_id` string, required: First solution ID
  - `solution_b_id` string, required: Second solution ID
  - `winner` 'a' | 'b' | 'skip', required: Verification choice: 'a', 'b', or 'skip'

## Response `200`

Successful Response

- VerificationResponse: Response after submitting a verification. Field set mirrors ``SubmitVerificationResponse`` in ``alive/api/routes/verification.py`` so the frontend can read the same shape regardless of which submission endpoint was used. The older webapp-only route at ``POST /v1/verifications/{token_address}`` populated ``verifier_lambda_balance``; this route did not, which left the validate page rendering ``λ balance: —`` for every weighted vote. Now both routes return the same structure.
  - `verification_id` string, required
  - `winner` string, required
  - `balance_snapshot` string, required
  - `has_weight` boolean, required
  - `message` string, nullable
  - `verifier_lambda_balance` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-16** `b6d96e7673dc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alphakek-ai/apis/aikek-api/changes/v1/validations/post.md)

---

[API](https://skmtc.dev/alphakek-ai/apis/aikek-api.md) - [All operations](https://skmtc.dev/alphakek-ai/apis/aikek-api/llms.txt) - [OpenAPI document](https://skmtc.dev/alphakek-ai/apis/aikek-api/revisions/b6d96e7673dc?raw)
