---
title: "Submit the same moderator review across multiple incidents (Art 14, bulk)"
method: POST
path: "/api/v1/incidents/batch-review"
tags: ["Incidents"]
---

# Submit the same moderator review across multiple incidents (Art 14, bulk)

`POST /api/v1/incidents/batch-review`

## Request

- Base URL: `https://api.tuteliq.ai`
- URL: `https://api.tuteliq.ai/api/v1/incidents/batch-review`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Applies the same review action + reason to up to 100 incidents in one call. Each incident emits its own signed Art 12 audit receipt — bulk is a UX shortcut, not a compliance shortcut. Per-incident success/error is returned so a partial failure can be retried without re-running successful items.

## Request body

- object
  - `incident_ids` string[], required
  - `action` 'confirm' | 'downgrade' | 'escalate' | 'reclassify' | 'dismiss' | 'resolve' | 'reopen', required
  - `reason_code` 'confirmed_accurate' | 'false_positive' | 'out_of_context' | 'insufficient_severity' | 'incorrect_category' | 'requires_law_enforcement' | 'parent_notified' | 'other', required
  - `reason_comment` string
  - `new_risk_level` 'low' | 'moderate' | 'high' | 'critical'
  - `new_risk_category` 'bullying' | 'grooming' | 'unsafe' | 'self_harm' | 'other' | 'social_engineering' | 'app_fraud' | 'romance_scam' | 'mule_recruitment' | 'gambling_harm' | 'coercive_control' | 'vulnerability_exploitation' | 'radicalisation' | 'distress_signals' | 'tfgbv' | 'synthetic_content'
  - `moderator_external_id` string
  - `retention_class` 'biometric-high-risk' | 'safety-high-risk' | 'limited-risk' | 'minimal-risk'

## Response `200`

Default Response

- object
  - `total` number
  - `succeeded` number
  - `failed` number
  - `results` object[]

---

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