---
title: "Get a batch upload URL"
method: POST
path: "/classifications/batch/upload-url"
tags: ["Classification"]
---

# Get a batch upload URL

`POST /classifications/batch/upload-url`

## Request

- Base URL: `https://api.tarifflo.com/api/v2`
- URL: `https://api.tarifflo.com/api/v2/classifications/batch/upload-url`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

A presigned PUT URL (valid 900 seconds) for a JSONL file of {id?,text} rows. PUT the file, then start the batch with the returned `inputKey`.

Requires the API key scope `classifications`.

## Request body

- object
  - `filename` string, required

## Response `200`

Successful response

- object
  - `uploadUrl` string, required
  - `inputKey` string, required
  - `expiresInSeconds` number, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

---

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