---
title: "Import a CSV / Excel file into a list"
method: POST
path: "/workspace/tables/{id}/import/commit"
tags: ["workspace"]
---

# Import a CSV / Excel file into a list

`POST /workspace/tables/{id}/import/commit`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/workspace/tables/{id}/import/commit`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Writes the import in one transaction: new columns, widened dropdown choices, then the rows. multipart/form-data with `file`, the confirmed `mapping`, and the `fingerprint` the preview returned, which is refused with 409 SHEET_CHANGED when it does not match the upload. The whole file is checked against the row quota up front, so an over-quota import is refused with 402 and writes nothing. A file that would take the list past the platform row ceiling per list (SYSTEM_LIMITS.rowsPerList, the same on every plan) is refused whole with 422 SYSTEM_LIMIT_REACHED and also writes nothing. Workflows do NOT run for imported rows. Returns a batchId for undo.

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string, required

## Response `201`

Rows imported; counts plus the batchId

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT
- `403`: Forbidden - insufficient role

---

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