---
title: "Bitable Cell Validation"
method: POST
path: "/api/internal/bitable/cell-validation"
tags: ["internal"]
---

# Bitable Cell Validation

`POST /api/internal/bitable/cell-validation`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/internal/bitable/cell-validation`
- Auth: none declared

Receive a validator worker's score for a bittable cell version.

Query params:
  - version_id: the BitableCellVersion.id the executor dispatched against.

Body (pydantic: CellValidationCreate):
  - score: float in [0, 1] | null (findings-only validator).
  - findings: list of {code, severity, message, evidence?}.
  - suggested_regen_note: user-addressable correction text; populates
    the next version's iteration_note when auto-regen fires.
  - raw: opaque full validator response (debugging / future miner).
  - validator_skill: slug of the validator (echoed for audit).

Idempotency: UNIQUE(version_id) on bitable_cell_validations lets us
detect re-delivery. The handler upserts on conflict by short-circuiting
when a row already exists.

## Query parameters

- `version_id` string, uuid, required

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
