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
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier (multi-part namespaces use
%1F separator)Query Parameters
string
Pagination token from a previous response
integer
Maximum number of tables to return
Response
array
required
List of table identifiers
string
Token for next page of results
Example
Create Table
Create a new table in the specified namespace.Path Parameters
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
Headers
string (uuid)
UUIDv7 for idempotent request handling
string
Comma-separated list of access delegation mechanisms:
vended-credentials, remote-signingRequest Body
string
required
Table name
string
Table location. If not provided, a location will be generated.
object
required
Table schema definition
object
Partition specification
object
Sort order for data
object
Table properties
boolean
If true, table is not created but metadata is initialized for a transaction. Default: false.
Response
string
required
Location of table metadata file
object
required
Complete table metadata
object
Additional configuration for the table
Example
Load Table
Load table metadata from the catalog.Path Parameters
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
string
required
Table name
Headers
string
ETag from previous response. Server returns 304 if metadata hasn’t changed.
string
Access delegation mechanisms
Query Parameters
string
Which snapshots to include:
all (default) or refs (only referenced snapshots)string
Comma-separated list of view identifiers referencing this table
Response
string
required
Location of table metadata file
object
required
Complete table metadata including schema, partition specs, snapshots, etc.
object
Additional configuration and credentials for accessing the table
Example
Update Table
Commit updates to table metadata.Path Parameters
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
string
required
Table name
Headers
string (uuid)
UUIDv7 for idempotent request handling
Request Body
array
required
Assertions that must be true before applying updates
array
required
Changes to apply to table metadata
Response
string
required
Location of new metadata file
object
required
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
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
string
required
Table name
Response
No response body. Status code indicates existence.Example
Drop Table
Delete a table from the catalog.Path Parameters
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
string
required
Table name
Query Parameters
boolean
If true, delete table data and metadata. Default: false.
Headers
string (uuid)
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
string
required
Optional prefix for multi-tenant deployments
Headers
string (uuid)
UUIDv7 for idempotent request handling
Request Body
object
required
Current table identifier
object
required
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
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
Headers
string (uuid)
UUIDv7 for idempotent request handling
string
Access delegation mechanisms
Request Body
string
required
Table name to register
string
required
Location of existing metadata file
Response
Same as Load Table response.Example
Report Metrics
Send table operation metrics to the catalog.Path Parameters
string
required
Optional prefix for multi-tenant deployments
string
required
Namespace identifier
string
required
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