S3 Tables Buckets
Catalog endpoints
Each table bucket is a catalog. Which endpoint serves it depends on the format it holds.
ICEBERG
http://localhost:8181/v1LANCE
http://localhost:9101Total Buckets
0
Last Updated
2026-09-06 13:09
Iceberg REST Port
8181
Table Buckets
| Name | Format | Owner | ARN | Catalog Endpoint | Created | Policy | Actions |
|---|---|---|---|---|---|---|---|
No table buckets foundCreate your first S3 Tables bucket to get started. | |||||||
Client Examples
ICEBERGDuckDB
INSTALL iceberg;
LOAD iceberg;
CREATE SECRET (
TYPE ICEBERG,
ENDPOINT 'http://localhost:8181',
SCOPE 's3://my-table-bucket/'
);
SELECT * FROM iceberg_scan('s3://my-table-bucket/my-namespace/my-table');ICEBERGPython (PyIceberg)
from pyiceberg.catalog import load_catalog
catalog = load_catalog(
name="seaweedfs",
**{
"type": "rest",
"uri": "http://localhost:8181",
"warehouse": "s3://my-table-bucket/",
}
)
namespaces = catalog.list_namespaces()LANCEPython (lance-namespace)
from lance_namespace import connect
ns = connect("rest", {"uri": "http://localhost:9101"})
ns.list_namespaces(id=["my-table-bucket"])
ns.describe_table(id=["my-table-bucket", "my-namespace", "my-table"])LANCEPython (pylance)
import lance
from lance_namespace import connect
ns = connect("rest", {"uri": "http://localhost:9101"})
table = ns.describe_table(id=["my-table-bucket", "my-namespace", "my-table"])
# The namespace vends both the location and the credentials to read it.
dataset = lance.dataset(table.location, storage_options=table.storage_options)