---
title: "Create Table"
method: POST
path: "/api/public/v2/tables"
tags: ["smart-tables"]
---

# Create Table

`POST /api/public/v2/tables`

Create a new Table. By default, an empty Sheet 1 with a Column A text column and one empty row is created. Pass create_default_sheet: false to create a table without a default sheet. Requests are scoped to the workspace associated with the API key; table, sheet, column, cell, operation, and version IDs must belong to that workspace.

## Request body

- CreateTableRequest
  - `title` string, nullable — Table title. Defaults to a unique 'Untitled Table' name if omitted.
  - `folder_id` integer, nullable — Folder to place the table in.
  - `create_default_sheet` boolean — When true (default), creates Sheet 1 with a Column A text column and one empty row. When false, creates an empty table with no sheets.

## Response `201`

Table created. When create_default_sheet is true (default), the response includes default_sheet and table.sheet_count is 1. When create_default_sheet is false, default_sheet is omitted and table.sheet_count is 0.

- CreateTableResponse
  - `success` boolean, required
  - `message` string
  - `table` TableDetail, required — A Table — a versioned, multi-sheet table that can run LLM columns to generate or evaluate data at scale.
    - `id` string, uuid — Unique table identifier.
    - `workspace_id` integer — Workspace that owns this resource; determined by the authenticated request scope.
    - `title` string
    - `folder_id` integer, nullable
    - `sheet_count` integer — Number of active sheets.
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `default_sheet` Sheet — A sheet within a Table.
    - `id` string, uuid
    - `table_id` string, uuid
    - `workspace_id` integer — Workspace that owns this resource; determined by the authenticated request scope.
    - `title` string
    - `index` integer — Display order of the sheet within the table (0-based).
    - `row_count` integer
    - `version_count` integer — Current sheet version number. It increments when sheet data, layout, score configuration, imports, or execution output changes.
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400` — Invalid request
- `401` — Unauthorized - missing or invalid API key.
- `404` — Folder not found
- `422` — Validation error - request parameters or body are invalid.

## Changes

- **2026-07-26** `a23093a0a506` — 4 info
  - added the new optional request property `create_default_sheet`
  - added the optional property `default_sheet` to the response with the `201` status
  - the response property `success` became required for the status `201`
  - the response property `table` became required for the status `201`

[Change history](https://skmtc.dev/promptlayer/apis/promptlayer-api/changes/api/public/v2/tables/post.md)

---

[API](https://skmtc.dev/promptlayer/apis/promptlayer-api.md) · [All operations](https://skmtc.dev/promptlayer/apis/promptlayer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/promptlayer/promptlayer-api/revisions/a23093a0a506/schema)
