https://api.planasonix.comAuth:
Authorization: Bearer plus your flx_ API key or a JWT obtained via the OAuth2 token exchange endpoint.
OAuth2 Token Exchange
POST /v1/oauth/tokens
Exchange an flx_ API key for a short-lived JWT. This endpoint is unauthenticated and follows the Iceberg REST spec’s OAuth2 flow.
string
required
Must be
client_credentials.string
required
Your
flx_ API key.Configuration
GET /v1/config
Returns the catalog configuration, including the default warehouse identifier.
Namespaces
GET /v1/namespaces
List namespaces in the catalog.
string
Optional parent namespace for hierarchical namespace listing.
POST /v1/namespaces
Create a new namespace.
string[]
required
Namespace identifier as an array of strings.
object
Key-value properties for the namespace.
GET /v1/namespaces/{namespace}
Get metadata for a namespace.
DELETE /v1/namespaces/{namespace}
Drop a namespace. The namespace must be empty (no tables).
Returns 204 No Content on success, 409 Conflict if the namespace contains tables.
POST /v1/namespaces/{namespace}/properties
Update namespace properties.
object
Properties to set or overwrite.
string[]
Property keys to remove.
Tables
GET /v1/namespaces/{namespace}/tables
List tables in a namespace.
POST /v1/namespaces/{namespace}/tables
Create a new table.
string
required
Table name.
object
required
Iceberg schema definition.
object
Optional partition specification.
string
Optional custom storage location.
GET /v1/namespaces/{namespace}/tables/{table}
Load a table. Returns the full table metadata and temporary storage credentials for data file access.
The
config field contains temporary, read-only credentials scoped to the table’s storage location. These credentials are typically valid for 1 hour (AWS STS) or the duration of the SAS token (Azure).POST /v1/namespaces/{namespace}/tables/{table}
Commit updates to a table. Uses optimistic concurrency — if another commit has occurred since your loadTable, the request returns 409 Conflict.
object[]
required
Pre-conditions that must be satisfied (e.g.,
assert-table-uuid, assert-current-schema-id).object[]
required
Table update actions (e.g.,
add-schema, add-snapshot, set-current-schema, set-properties).DELETE /v1/namespaces/{namespace}/tables/{table}
Drop a table and remove it from the catalog.
Returns 204 No Content on success.
POST /v1/tables/rename
Rename a table within or across namespaces.
object
required
Source table identifier (
namespace and name).object
required
Destination table identifier (
namespace and name).POST /v1/namespaces/{namespace}/tables/{table}/metrics
Report table scan metrics. Accepts the request and returns 204 No Content.
Error Responses
All error responses follow the Iceberg REST spec format:Rate Limits
Catalog API requests are rate-limited per organization by tier:
When the limit is exceeded, the API returns
429 Too Many Requests.