---
title: "Apply a review action to many records"
method: POST
path: "/v1/review/batch"
tags: ["Review"]
---

# Apply a review action to many records

`POST /v1/review/batch`

## Request

- Base URL: `https://api.talonic.com`
- URL: `https://api.talonic.com/v1/review/batch`
- Auth: HTTP bearer

Approve or reject many validation records in one call. Failed ids
(not found or not owned by the customer) are reported in the
`results` array rather than aborting the whole batch.

**App keys.** An app service key reaches this route and every id is
checked individually: a record whose Spec the app does not hold at
`act` is reported as `{ "status": "error", "error":
"insufficient_grant" }` and is never mutated. `act` is a distinct
grant from `read`, so an app that can list a record still cannot
decide it without one.

## Request body

- ReviewBatchActionRequest
  - `ids` string[], required: Non-empty list of validation-record UUIDs.
  - `action` 'approve' | 'reject', required: Decision applied to every record in `ids`.

## Response `200`

Per-record outcomes.

- ReviewBatchActionResponse
  - `processed` integer, required: Number of records successfully updated.
  - `failed` integer, required: Number of records that could not be updated (not found, not owned).
  - `results` object[], required
    - `id` string, uuid, required
    - `status` string, required: Per-record outcome (`approved`, `rejected`, or `error`).
    - `error` string: Present on `status: error` rows (e.g. `not_found`).

## Other responses

- `400`: The request is invalid.
- `401`: Missing or invalid API key.
- `429`: Daily rate limit exceeded.

---

[API](https://skmtc.dev/talonic/apis/talonic-api.md) · [All operations](https://skmtc.dev/talonic/apis/talonic-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talonic/apis/talonic-api/revisions/678fe5f8c9c3?raw)
