---
title: "Run one tool over many records"
method: POST
path: "/batch"
tags: ["Batch & workflow"]
---

# Run one tool over many records

`POST /batch`

## Request

- Base URL: `https://seqbench.com/api/v1`
- URL: `https://seqbench.com/api/v1/batch`
- Auth: none required

Runs a single batchable tool over every record in `input` (a multi-FASTA file or one sequence per line). The per-record sequence is injected into the tool argument named by that tool's `seqArg`; `args` are shared across all records.

## Request body

- BatchRequest
  - `tool` string, required: A batchable tool slug (see `GET /batch`).
  - `input` string, required: Multi-FASTA text or one sequence per line (max ~2,000,000 chars).
  - `args` object: Shared tool arguments applied to every record.

## Response `200`

Batch completed (individual rows may carry per-record errors).

- object
  - `ok` unknown, required
  - `result` BatchResult, required
    - `tool` string, required
    - `count` integer, required
    - `capped` boolean, required: True if input exceeded the record limit.
    - `limit` integer, required: Maximum records per call (500).
    - `columns` string[], required
    - `rows` BatchRow[], required
      - `name` string, required
      - `cells` object, required
      - `error` string
      - `errorCode` string
      - `retryable` boolean
    - `errors` integer, required
    - `provenance` Provenance, required
      - `apiVersion` string, required
      - `tool` union, required: Tool slug, or an array of slugs (one per step) for a workflow.
        - string
        - string[]
      - `generatedAt` string, date-time, required: ISO 8601 timestamp of when the result was generated.

## Other responses

- `400`: Invalid request (bad JSON, missing tool/input, or tool not batchable).

---

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