Iceberg Catalog
This page describes how to connect with Tableflow's read-only REST catalog.
WarpStream implements a read-only Iceberg REST catalog API that provides access to Tableflow tables stored in your clusters.
Important Details
Read-Only Access: This catalog is read-only and designed for integrating with query engines like Snowflake, Databricks, and AWS Glue. All write operations return 403 Forbidden.
Authentication: Bearer token authentication using WarpStream Agent Keys. Other authentication methods are not currently supported.
Namespaces: Only a single namespace default is supported.
Storage Credentials: The catalog does not vend storage credentials. Clients must configure their own storage credentials to access table data.
Construct the Base URL
The base URL for connecting to the catalog is formed by $METADATA_URL/catalogs/iceberg/$VIRTUAL_CLUSTER_ID.
Where $METADATA_URL can be found at Region, and $VIRTUAL_CLUSTER_ID is found in the overview tab, in the top right section.

So for example if your metadata URL was: https://metadata.default.us-east-1.warpstream.com and your virtual cluster ID was vci_04ace9b5_5e41_1915_85ff_a20ea5601e48 then your base URL would be: https://metadata.default.us-east-1.warpstream.com/catalogs/iceberg/vci_04ace9b5_5e41_1915_85ff_a20ea5601e48
Authenticate
Currently, only Bearer token authentication is supported. You must include your Agent Key in the Authorization header:
Authorization: Bearer $AGENT_KEYThe Agent key can be found (or created) at the Agent Keys tab in the UI:

You can also manage your Agent Keys using WarpStream's Terraform provider at https://registry.terraform.io/providers/warpstreamlabs/warpstream/latest/docs/resources/agent_key.
Supported Endpoints
Configuration
GET /v1/config- Catalog configuration
Namespaces
GET /v1/namespaces- List namespacesGET /v1/namespaces/{namespace}- Get namespace detailsHEAD /v1/namespaces/{namespace}- Check namespace exists
Tables
GET /v1/namespaces/{namespace}/tables- List tablesGET /v1/namespaces/{namespace}/tables/{table}- Load table metadataHEAD /v1/namespaces/{namespace}/tables/{table}- Check table existsGET /v1/namespaces/{namespace}/tables/{table}/credentials- Get credentials (returns empty)
Views
GET /v1/views- List views (returns empty)GET /v1/views/{view}- Returns404HEAD /v1/views/{view}- Returns404
Unsupported Operations
All namespace/table/view write operations (POST, DELETE, updates) return 403 Forbidden.
Example
curl -H "Authorization: Bearer aks_..."
https://metadata.default.us-east-1.warpstream.com/catalogs/iceberg/vci_04ace9b5_5e41_1915_85ff_a20ea5601e48/v1/namespaces/default/tables/my_tableLast updated
Was this helpful?