Skip to main content
POST
/
v1
/
table
/
{id}
/
version
/
create
Create a new table version
curl --request POST \
  --url {scheme}://{host}:{port}/{basePath}/v1/table/{id}/version/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "version": 1,
  "manifest_path": "<string>",
  "identity": {
    "api_key": "<string>",
    "auth_token": "<string>"
  },
  "context": {},
  "id": [
    "<string>"
  ],
  "manifest_size": 1,
  "e_tag": "<string>",
  "metadata": {},
  "naming_scheme": "V2"
}
'
{
  "transaction_id": "<string>",
  "version": {
    "version": 1,
    "manifest_path": "<string>",
    "manifest_size": 1,
    "e_tag": "<string>",
    "timestamp_millis": 123,
    "metadata": {}
  }
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

id
string
required

string identifier of an object in a namespace, following the Lance Namespace spec. When the value is equal to the delimiter, it represents the root namespace. For example, v1/namespace/$/list performs a ListNamespace on the root namespace.

Query Parameters

delimiter
string

An optional delimiter of the string identifier, following the Lance Namespace spec. When not specified, the $ delimiter must be used.

Body

application/json

Request to create a new table version entry. This supports put_if_not_exists semantics, where the operation fails if the version already exists.

version
integer<int64>
required

Version number to create

Required range: x >= 0
manifest_path
string
required

Path to the manifest file for this version

identity
object

Identity information of a request.

context
object

Arbitrary context for a request as key-value pairs. How to use the context is custom to the specific implementation.

REST NAMESPACE ONLY Context entries are passed via HTTP headers using the naming convention x-lance-ctx-<key>: <value>. For example, a context entry {"trace_id": "abc123"} would be sent as the header x-lance-ctx-trace_id: abc123.

id
string[]

The table identifier

manifest_size
integer<int64>

Size of the manifest file in bytes

Required range: x >= 0
e_tag
string

Optional ETag for the manifest file

metadata
object

Optional metadata for the version

naming_scheme
string

The naming scheme used for manifest files in the _versions/ directory.

Known values:

  • V1: _versions/{version}.manifest - Simple version-based naming
  • V2: _versions/{inverted_version}.manifest - Zero-padded, reversed version number (uses u64::MAX - version) for O(1) lookup of latest version on object stores

V2 is preferred for new tables as it enables efficient latest-version discovery without needing to list all versions.

Example:

"V2"

Response

Result of creating a table version

Response for creating a table version

transaction_id
string

Optional transaction identifier

version
object