# Batch

Source: https://www.solscanner.app/docs/indexer/reference/batch

> Several reads answered from one shared snapshot.

Use this when two answers have to describe the same instant. Items in a batch cannot disagree with each other, because they are all read at one `(block, hash)`.

1 route. Every path below is served under `/index/v1/{chain}`, and every request carries an `x-api-key` header, so those two are not repeated per route. The shared contract for pagination, snapshots, precision and absence is in [Read API](/docs/indexer/api).

Batch Request [#batch-request]

```http
POST /batch
```

Several reads in one request, answered from one shared snapshot so items cannot disagree with each other. Adds `token.metadata` (strict metadata + creation block + launch join, `point` cost), and `token.top_holders`, `token.holders` (`params.sort` = `balance` default or `wallet_id`) and `token.ohlcv` (`params.frame`/`from`/`to` required, `quote`/`order` optional; parsed by the standalone `/ohlcv` query struct and answered by its query facade): each the first page at a batch limit (20 holder rows, 50 candles), `page` cost. An unknown key inside `params` refuses the whole request with `422 invalid_json_body` rather than being dropped. Limits stay 20 items and a shared 4 MiB budget.
