---
title: "Create a list from a CSV / Excel file"
method: POST
path: "/workspace/tables/import"
tags: ["workspace"]
---

# Create a list from a CSV / Excel file

`POST /workspace/tables/import`

## Request

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

Creates the list and fills it in one call. multipart/form-data with `file`, the scope, the confirmed `mapping`, the `fingerprint` the preview returned, and an optional `name` (the file name is used when it is absent). Every refusal that can run before the create does: the row quota for the whole file (402) and the per-list column ceiling (422). The fingerprint check cannot, because it needs a list to import into, so a mismatch answers 409 SHEET_CHANGED and the list that had just been created is removed again rather than left behind empty. Workflows do NOT run for imported rows. Returns the created list alongside the counts and the batchId.

## Headers

- `X-Organization-Id` string, required

## Response `201`

List created and filled; the table, counts and 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)
