---
title: "Verify Batch"
method: POST
path: "/api/v1/verify/batch"
tags: ["Verify"]
---

# Verify Batch

`POST /api/v1/verify/batch`

## Request

- Base URL: `https://lenz.io`
- URL: `https://lenz.io/api/v1/verify/batch`
- Auth: HTTP bearer

Fan-out wrapper around /verify for multi-claim LLM responses.

Body: ``{claims: [{text, source_url?, webhook_url?, visibility?, depth?},
...]}`` capped at 20 items. Server pre-checks total credits, then fans out N
independent pipelines — each with its own ``task_id`` and lifecycle.
Each claim's webhook (per-item override, or batch ``webhook_url``, or
per-key default) fires when its pipeline terminates. ``batch_id`` is
purely for client-side correlation; the server doesn't gate anything
on it.

On a mid-fan-out enqueue error, the response includes the partial
``items`` list and a ``partial: true`` flag. Per-claim credit spend
happens at each claim's normal persist time — claims that never
enqueue are never charged.

``depth`` works like ``visibility``: a batch-wide default that any item
can override. See ``POST /verify`` for what the values mean.

Each item carries its claim in ``claim`` (``text`` is accepted as an
alias), plus the same optional fields as ``POST /verify``.

**Versions.** 202: `2026-10-11` receives `BatchAcceptedOut`, `2026-05-13` receives `BatchAcceptedOutLegacy`; 422: `2026-10-11` receives `ValidationErrorOut`, `2026-05-13` receives `ValidationErrorOutLegacy`; default: `2026-10-11` receives `ErrorOut`, `2026-05-13` receives `ErrorOutLegacy`.

## Headers

- `X-Lenz-API-Version` string

## Request body

- VerifyBatchIn
  - `claims` VerifyBatchItemIn[], required
    - `claim` string, nullable: The claim to check. A statement in natural language; several claims in one string are split and handled separately.
    - `text` string: Accepted alias for `claim`. Send one or the other; `text` is used when it has content.
    - `source_url` string
    - `webhook_url` string, nullable: This item's webhook. Omitted or `null`: the batch's `webhook_url`. `""`: no webhook for this item. API version `2026-05-13` reads `""` as omitted.
    - `language` string
    - `visibility` 'private' | 'unlisted', nullable
    - `depth` 'standard' | 'low', nullable
  - `webhook_url` string, nullable: Where to POST this request's webhook. Omitted or `null`: your credential's default webhook URL, if it has one. `""`: no webhook for this request. API version `2026-05-13` reads `""` as omitted.
  - `language` string
  - `visibility` 'private' | 'unlisted'
  - `depth` 'standard' | 'low'

## Response `202`

Accepted

- BatchAcceptedOut: The receipt of `POST /verify/batch` and `POST /verify/{task_id}/select`: one task per claim, in the order sent. Poll each `task_id`.
  - `batch_id` string, required
  - `items` BatchAcceptedItemOut[], required
    - `task_id` string, required
    - `claim` string, required
    - `claim_text` string: Sent only to callers on `2026-05-13`; use `claim`.
  - `partial` boolean: True when only some of the claims were accepted (the balance covered the first ones).

## Other responses

- `422`: A field to fix
- `default`: An error

---

[API](https://skmtc.dev/lenz/apis/lenz-ai-fact-checking-api.md) · [All operations](https://skmtc.dev/lenz/apis/lenz-ai-fact-checking-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lenz/apis/lenz-ai-fact-checking-api/revisions/6150947324bf?raw)
