---
title: "List indexes on a table"
method: POST
path: "/v1/table/{id}/index/list"
tags: ["Table", "Index", "Metadata"]
---

# List indexes on a table

`POST /v1/table/{id}/index/list`

List all indices created on a table. Returns information about each index
including name, columns, status, and UUID.

## Request body

- ListTableIndicesRequest
  - `identity` Identity — Identity information of a request.
    - `api_key` string — API key for authentication. REST NAMESPACE ONLY This is passed via the `x-api-key` header.
    - `auth_token` string — Bearer token for authentication. REST NAMESPACE ONLY This is passed via the `Authorization` header with the Bearer scheme (e.g., `Bearer <token>`).
  - `context` Context — Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`.
  - `id` string[] — The namespace identifier
  - `version` integer, nullable — Optional table version to list indexes from
  - `branch` string — Branch to target. When not specified, the main branch is used.
  - `page_token` string, nullable — An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results.
  - `limit` integer, nullable — An inclusive upper bound of the number of results that a caller will receive.

## Response `200`

List of indices on the table

- ListTableIndicesResponse
  - `context` Context — Arbitrary context as key-value pairs. How to use the context is custom to the specific implementation. On a request, it carries caller-provided context to the implementation. On a response, it carries implementation-provided context back to the caller. REST NAMESPACE ONLY Context entries are mapped to and from HTTP headers using the `header.` prefix: - On a request, any entry whose key starts with `header.` is sent as an HTTP request header with the prefix stripped. For example, the entry `{"header.Authorization": "Bearer abc"}` is sent as the request header `Authorization: Bearer abc`. - On a response, every HTTP response header is returned as an entry whose key is the header name prefixed with `header.`. For example, the response header `x-request-id: abc123` is returned as the entry `{"header.x-request-id": "abc123"}`.
  - `indexes` IndexContent[], required — List of indexes on the table
    - `index_name` string, required — Name of the index
    - `index_uuid` string, required — Unique identifier for the index
    - `columns` string[], required — Canonical Lance field paths covered by this index. Nested fields use dot-separated segments; segments containing literal dots are backtick-quoted, and backticks inside quoted segments are doubled.
    - `status` string, required — Current status of the index
    - `index_type` string — Friendly index type, e.g. IVF_PQ, BTREE. Unknown if no plugin recognizes the index.
    - `type_url` string — Protobuf type URL, a precise type identifier for the index.
    - `num_indexed_rows` integer — Number of live rows covered by the index. This does not count rows that are in the index but have since been deleted.
    - `num_unindexed_rows` integer — Number of rows that are not indexed.
    - `size_bytes` integer, nullable — Total index size in bytes across all segments. Null for indices predating file-size tracking.
    - `num_segments` integer — Number of index deltas/segments.
    - `created_at` string, date-time, nullable — Creation time for indexes. Null for legacy indices.
    - `index_version` integer — On-disk index format version.
    - `index_details` string, nullable — Opaque, type-specific JSON with additional index details. For vector indices this carries metric/distance type, partitioning, and HNSW/PQ/SQ/RQ parameters.
  - `page_token` string, nullable — An opaque token that allows pagination for list operations (e.g. ListNamespaces). For an initial request of a list operation, if the implementation cannot return all items in one response, or if there are more items than the page limit specified in the request, the implementation must return a page token in the response, indicating there are more results available. After the initial request, the value of the page token from each response must be used as the page token value for the next request. Caller must interpret either `null`, missing value or empty string value of the page token from the implementation's response as the end of the listing results.

## 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.

---

[API](https://skmtc.net/lancedb/apis/lance-namespace-specification.md) · [All operations](https://skmtc.net/lancedb/apis/lance-namespace-specification/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lancedb/lance-namespace-specification/versions/d5b7c114f475/schema)
