---
title: "Create a table with the given name"
method: POST
path: "/v1/table/{id}/create"
tags: ["Table", "Data"]
---

# Create a table with the given name

`POST /v1/table/{id}/create`

Create a new table in the namespace with the given data in Arrow IPC stream.

The schema of the Arrow IPC stream is used as the table schema.    
If the stream is empty, the API creates a new empty table.

## Path parameters

- `id` string, required

## Query parameters

- `delimiter` string, nullable — An opaque token that allows pagination for list APIs (e.g. ListNamespaces). For an initial client request for a list API, if the server cannot return all items in one response, or if there are more items than the `pageSize` specified in the client request, the server must return a `nextPageToken` in the response indicating there are more results available. After the initial request, the value of `nextPageToken` from each response must be used by the client as the `pageToken` parameter value for the next request. Clients must interpret either `null`, missing value or empty string value of `nextPageToken` from a server response as the end of the listing results.

## Headers

- `x-lance-table-location` string, required
- `x-lance-table-properties` string

## Response `200`

Table properties result when creating a table

- CreateTableResponse
  - `name` string, required
  - `namespace` string[], required
  - `location` string, required
  - `properties` unknown

## Other responses

- `400` — Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.
- `401` — Unauthorized. The request lacks valid authentication credentials for the operation.
- `403` — Forbidden. Authenticated user does not have the necessary permissions.
- `404` — A server-side problem that means can not find the specified resource.
- `503` — The service is not ready to handle the request. The client should wait and retry. The service may additionally send a Retry-After header to indicate when to retry.
- `5XX` — A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.

## Changes

- **2025-07-22** `ac7519693c52` — 3 breaking, 7 info
  - added the new required `header` request parameter `x-lance-table-location` to all path's operations
  - added the new required `header` request parameter `x-lance-table-location`
  - removed the media type `application/x-arrow-ipc` from the request body
  - api tag `Data` added
  - …6 more
- **2025-07-21** `db7569410aa4` — 1 info
  - api tag `Metadata` added
- **2025-07-21** `6790486d1fac` — 7 breaking, 20 warning, 25 info
  - removed the media type `application/vnd.apache.arrow.stream` from the request body
  - removed the required property `code` from the response with the `400` status
  - removed the required property `code` from the response with the `401` status
  - removed the required property `code` from the response with the `403` status
  - …48 more

[Change history](https://skmtc.dev/lance-format/apis/lance-namespace-specification/changes/v1/table/:id/create/post.md)

---

[API](https://skmtc.dev/lance-format/apis/lance-namespace-specification.md) · [All operations](https://skmtc.dev/lance-format/apis/lance-namespace-specification/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lance-format/lance-namespace-specification/revisions/ac7519693c52/schema)
