---
title: "Upload a file asset"
method: POST
path: "/v6/files"
tags: ["Files"]
---

# Upload a file asset

`POST /v6/files`

Uploads a file and creates a file asset record. The request is a multipart/form-data body containing the file content and optional metadata (name, tags, format). Supported formats: `CSV`, `PSV`, `JSON`, `JSONL`, `XLSX`. Once uploaded, the file asset can be used as the `data_source` of a batch job via `POST /v6/batches`. The file enters `AVAILABLE` status on successful upload; use `POST /v6/files/{fileId}/expire` to release it when no longer needed.

## Response `200`

File asset created. Returns the new file asset record with `status: AVAILABLE`.

## Other responses

- `400` — Validation error. Check the `code` field — common causes: unsupported file format, file content failed encryption validation, or metadata constraint violation (e.g. name exceeds 255 characters).
- `401` — Missing or invalid access token.
- `402` — Payment Required
- `403` — Forbidden
- `415` — Unsupported Media Type
- `429` — Too Many Requests

---

[API](https://skmtc.net/extole/apis/integration-api-server-to-extole.md) · [All operations](https://skmtc.net/extole/apis/integration-api-server-to-extole/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/extole/integration-api-server-to-extole/revisions/c16e62e66755/schema)
