---
title: "Validate an uploaded file"
method: POST
path: "/validate-upload"
tags: ["Uploads"]
---

# Validate an uploaded file

`POST /validate-upload`

## Request

- Base URL: `https://api.autumn.ai`
- URL: `https://api.autumn.ai/validate-upload`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
  - HTTP bearer

Validate an upload and return the filename for input_files. CSV becomes JSONL: delimiter detected, duplicate and blank headers renamed, extra cells kept as column_N, a user _row_id column becomes _row_id_2.

## Request body

- UploadRequest
  - `task_id` string, required: The task the file belongs to.
  - `filename` string, required: A .csv, .txt, .md or .markdown file name.

## Response `200`

The validated file; pass filename in input_files.

- ValidateUploadResponse
  - `filename` string, required: Pass this in input_files.
  - `path` string, required
  - `rows` integer, nullable
  - `fields` string[], nullable
  - `renamed` object[], nullable: Duplicate or blank headers that were renamed: index, original, name.
  - `delimiter` string, nullable
  - `extra_columns` integer, nullable

## Other responses

- `400`: `invalid_request`: The request is invalid. Fix the field in `param` (see `detail`), or read `message`.
- `401`: `unauthorized`: Missing or invalid credentials. Send your full API key as `X-API-Key: <key>` or `Authorization: Bearer <key>`.
- `422`: `invalid_request`: a field failed validation. `param` names it; `detail` is the validator output.
- `503`: `auth_unavailable`: Key verification is temporarily unavailable. Wait `retry_after` seconds, then send the request again.

---

[API](https://skmtc.dev/autumn-ai/apis/autumn-task-api.md) - [All operations](https://skmtc.dev/autumn-ai/apis/autumn-task-api/llms.txt) - [OpenAPI document](https://skmtc.dev/autumn-ai/apis/autumn-task-api/revisions/78fb43699783?raw)
