Obtain a root or service-principal access token from the Polaris /api/catalog/v1/oauth/tokens endpoint using client credentials
Send POST /api/management/v1/catalogs with a JSON body specifying the catalog name, type (INTERNAL or EXTERNAL), and storage config (e.g., S3 defaultBaseLocation)
Confirm the response returns the catalog object with its name and properties
Optionally set catalog-level properties by sending a PUT to /api/management/v1/catalogs/{catalogName}
Verify the catalog is listed via GET /api/management/v1/catalogs
Known gotchas
The management API (/api/management) is separate from the catalog API (/api/catalog); mixing the two base paths causes 404s
INTERNAL catalogs store metadata inside Polaris's own backing store; EXTERNAL catalogs delegate to a remote Iceberg catalog and have different property requirements
The root credentials bootstrapped at server startup are separate from service principal credentials; use the right credential pair for each scope
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp