Table API
Table endpoints provide operations for creating, reading, updating, and deleting Iceberg tables through the REST Catalog API.List Tables
List all tables in a namespace.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier (multi-part namespaces use
%1F separator)Query Parameters
Pagination token from a previous response
Maximum number of tables to return
Response
List of table identifiers
Token for next page of results
Example
Create Table
Create a new table in the specified namespace.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Headers
UUIDv7 for idempotent request handling
Comma-separated list of access delegation mechanisms:
vended-credentials, remote-signingRequest Body
Table name
Table location. If not provided, a location will be generated.
Table schema definition
Partition specification
Sort order for data
Table properties
If true, table is not created but metadata is initialized for a transaction. Default: false.
Response
Location of table metadata file
Complete table metadata
Additional configuration for the table
Example
Load Table
Load table metadata from the catalog.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Table name
Headers
ETag from previous response. Server returns 304 if metadata hasn’t changed.
Access delegation mechanisms
Query Parameters
Which snapshots to include:
all (default) or refs (only referenced snapshots)Comma-separated list of view identifiers referencing this table
Response
Location of table metadata file
Complete table metadata including schema, partition specs, snapshots, etc.
Additional configuration and credentials for accessing the table
Example
Update Table
Commit updates to table metadata.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Table name
Headers
UUIDv7 for idempotent request handling
Request Body
Assertions that must be true before applying updates
Changes to apply to table metadata
Response
Location of new metadata file
Updated table metadata
Example
The server validates requirements before applying updates. If any requirement fails, the entire commit is rejected with 409 Conflict.
Check Table Exists
Check if a table exists without loading its metadata.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Table name
Response
No response body. Status code indicates existence.Example
Drop Table
Delete a table from the catalog.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Table name
Query Parameters
If true, delete table data and metadata. Default: false.
Headers
UUIDv7 for idempotent request handling
Response
No response body on success.Example
Rename Table
Rename a table or move it to a different namespace.Path Parameters
Optional prefix for multi-tenant deployments
Headers
UUIDv7 for idempotent request handling
Request Body
Current table identifier
New table identifier
Response
No response body on success.Example
Moving tables across namespaces is valid but not all servers support it. Check the 406 response if cross-namespace moves fail.
Register Table
Register an existing table using its metadata file location.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Headers
UUIDv7 for idempotent request handling
Access delegation mechanisms
Request Body
Table name to register
Location of existing metadata file
Response
Same as Load Table response.Example
Report Metrics
Send table operation metrics to the catalog.Path Parameters
Optional prefix for multi-tenant deployments
Namespace identifier
Table name
Request Body
Metrics report containing scan metrics, commit metrics, etc.Response
No response body on success.Example
Status Codes
Success
200 OK- Request successful with response body204 No Content- Request successful without response body304 Not Modified- Table metadata unchanged (with If-None-Match)
Client Errors
400 Bad Request- Invalid request format401 Unauthorized- Authentication required403 Forbidden- Not authorized404 Not Found- Table or namespace does not exist406 Not Acceptable- Operation not supported409 Conflict- Table already exists or commit requirements failed419 Authentication Timeout- Authentication expired
Server Errors
500 Internal Server Error- Commit state unknown502 Bad Gateway- Gateway error, commit state unknown503 Service Unavailable- Service temporarily unavailable504 Gateway Timeout- Timeout, commit state unknown
Common Patterns
Staged Table Creation (CTAS)
Optimistic Concurrency Control
Using ETags
Related
- Namespace Endpoints - Namespace management
- View Endpoints - View management
- Table Metadata Spec - Metadata format
- REST API Overview - API overview