---
title: "List loaded batches"
summary: "The batches currently held in memory, with their sizes, hashes and creation times."
category: "developer"
tags: ["attest", "reference", "batch", "list"]
updated: "2026-09-14T04:25:12.656Z"
url: "https://support.quorumtech.ch/articles/attest-list-batches"
markdown: "https://support.quorumtech.ch/articles/attest-list-batches.md"
---

# List loaded batches

`GET https://api.quorumtech.ch/attest/v1/batches`

Lists every batch the service currently holds. Batches expire six hours after they were created and are evicted oldest-first when the store is full, so a batch listed a moment ago may be gone by the time a check names it. The not-found error tells you to upload again.

`batchHash` identifies the set of documents as loaded, so a report can name which batch its verdicts were produced against.

## Request

No body.

## Example request

```bash
curl -X GET "https://api.quorumtech.ch/attest/v1/batches" \
  -H "Authorization: Bearer $QUORUM_API_KEY"
```

## Responses

### 200

The batches currently held in memory.

| Field | Type | Description |
| --- | --- | --- |
| `batches` | BatchSummary[] |  |
| `batches[].id` | string |  |
| `batches[].name` | string | May be null. |
| `batches[].documents` | integer |  |
| `batches[].spans` | integer |  |
| `batches[].totalChars` | integer |  |
| `batches[].createdAt` | string (date-time) |  |
| `batches[].batchHash` | string |  |

## Errors

The body is `{ "error": { "code", "message" } }`; the full catalogue with what to do about each code is on the Errors page.

| Status | Codes | When |
| --- | --- | --- |
| 401 |  | The key is missing, not recognised, or revoked. |
| 402 | `payment_required`, `credits_exhausted`, `remaining`, `needed` | The workspace has no active API subscription (`payment_required`), or is prepaid and has no credits left for this request (`credits_exhausted`, with `remaining` and `needed`). Manage billing and add credits at https://developer.quorumtech.ch/billing. |
| 403 |  | The key is not scoped to Attest. |
| 429 | `rate_limited`, `claims_rate_limited`, `claim_budget_exhausted`, `monthly_cap_reached`, `cap` | Over the key's requests-per-minute limit (`rate_limited`), its claims-per-minute ceiling (`claims_rate_limited`), its claims-per-day budget (`claim_budget_exhausted`), or, for a postpaid workspace, its monthly credit cap (`monthly_cap_reached`, with `cap` and `resetsAt`). `Retry-After` says when to try again; the daily budget resets at midnight UTC and the cap on the first of the month. |

## Cost

Free.
