---
title: "Create a new batch job"
method: POST
path: "/v2/batch"
tags: ["Batch"]
---

# Create a new batch job

`POST /v2/batch`

Creates a batch processing job from a JSONL file. Requires the Scale plan. The multipart file field must be `input` (or `file` alias), the file must be 5 MB or smaller, and it must contain 20-500 records by default. Each line must contain `request_id`, `endpoint: "/v2/generate"`, and `payload`.

## Response `200`

Validation successful (dry_run=true)

- object
  - `status` 'VALIDATED'

## Other responses

- `201` — Batch created successfully (dry_run=false)
- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `429` — Too Many Requests - batch concurrency limit reached (errorCode concurrency_limit_reached).

## Changes

> 6 revisions in range; 3 could not be searched.

- **2026-07-26** `281780d8e3a6` — 1 info
  - added the media type `application/json` for the response with the status `429`

[Change history](https://skmtc.dev/sync/apis/sync-api-v2/changes/v2/batch/post.md)

---

[API](https://skmtc.dev/sync/apis/sync-api-v2.md) · [All operations](https://skmtc.dev/sync/apis/sync-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sync/sync-api-v2/revisions/595901a0ee97/schema)
