---
title: "Rate many cells at once"
method: POST
path: "/tables/{table_id}/cells/feedback/bulk/"
tags: ["table-rows"]
---

# Rate many cells at once

`POST /tables/{table_id}/cells/feedback/bulk/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/tables/{table_id}/cells/feedback/bulk/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Apply ONE verdict, and one optional note, to up to 1000 cells. The endpoint that makes rating a swept selection a single request instead of N. The rating and the note are shared because a sweep is one judgement about one thing the column got wrong. Lenient per cell: a selection spanning a column that runs no saved agent rates the rest and counts the others in `skipped`, since a rectangular selection routinely crosses column kinds. Re-rating replaces the earlier verdict rather than adding a second one.

## Path parameters

- `table_id` string, uuid, required

## Request body

- CellFeedbackBulkRequestSchema: One verdict, applied to many cells. The rating and the note are shared on purpose: a swept selection is one judgement about one thing the column got wrong, so asking for the sentence N times would collect N copies of it.
  - `cells` CellFeedbackTargetSchema[], required: The cells to rate.
    - `column_id` string, uuid, required
    - `record_id` string, uuid, required
  - `comment` string, nullable: What was wrong, in the user's own words. Applied to every named cell. Optional.
  - `rating` 'up' | 'down', required: How a person judged one produced cell value.

## Response `200`

Successful Response

- CellFeedbackBulkResponseSchema: Result of a bulk rating; cells that could not be rated are counted. No echo of the stored verdicts: the caller already knows the one rating and one note it sent, so returning a thousand identical copies would say nothing it could not derive. ``skipped_column_ids`` is the part it cannot.
  - `applied` integer, required: Cells whose verdict was written.
  - `skipped` integer, required: Cells refused because their column runs no saved agent to improve.
  - `skipped_column_ids` string[]: The distinct columns that refused, so the client can name them.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Column not found
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
