---
title: "Submit a Batch via CSV"
method: POST
path: "/batches/csv"
tags: ["Batches"]
---

# Submit a Batch via CSV

`POST /batches/csv`

## Request

- Base URL: `https://sandbox.alloy.co/v1`
- URL: `https://sandbox.alloy.co/v1/batches/csv`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `/oauth/bearer`
  - HTTP basic
- TypeScript: <https://skmtc.dev/alloy/apis/alloy-api/docs/batches/csv/post.ts> (a function with typed inputs; its response is checked against the schema)

Legacy batch submission path. Provide a URL to a CSV file (referenced by an S3 URL); the batch is created and its tasks are enqueued asynchronously.

## Request body

- object
  - `csv_url` string, required: URL of the CSV file to submit
  - `concurrent_tasks` number, nullable: Number of tasks to process concurrently
  - `batch_results_bucket` string, nullable: Destination bucket for batch results

## Response `202`

Batch accepted for processing

- object
  - `batch_token` string
  - `batch_status` string
  - `batch_get_route` string
  - `_links` object
    - `batch` BatchLink
      - `href` string

## Changes

- **2026-11-03** `615aa97a5ddb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alloy/apis/alloy-api/changes/batches/csv/post.md)

---

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