REST API documentation for Pangolin catalog.
Pangolin implements the Apache Iceberg REST Catalog specification with additional extensions for Git-like branching and multi-tenancy.
Complete REST API reference covering:
- Namespace operations
- Table operations
- Catalog configuration
- Maintenance endpoints
Authentication methods:
- Bearer token authentication
- NO_AUTH mode (development)
- Custom headers (X-Pangolin-Tenant)
Namespace Operations:
GET /v1/{prefix}/namespaces- List namespacesPOST /v1/{prefix}/namespaces- Create namespaceDELETE /v1/{prefix}/namespaces/{namespace}- Delete namespace
Table Operations:
GET /v1/{prefix}/namespaces/{namespace}/tables- List tablesPOST /v1/{prefix}/namespaces/{namespace}/tables- Create tableGET /v1/{prefix}/namespaces/{namespace}/tables/{table}- Load tablePOST /v1/{prefix}/namespaces/{namespace}/tables/{table}- Update tableDELETE /v1/{prefix}/namespaces/{namespace}/tables/{table}- Delete table
Credential Vending:
GET /v1/{prefix}/namespaces/{namespace}/tables/{table}/credentials- Get credentials
Branch Management:
GET /api/v1/branches- List branchesPOST /api/v1/branches- Create branchPOST /api/v1/branches/merge- Merge branches
Tag Management:
GET /api/v1/tags- List tagsPOST /api/v1/tags- Create tagDELETE /api/v1/tags/{name}- Delete tag
Merge Operations:
GET /api/v1/catalogs/{catalog}/merge-operations- List merge operationsGET /api/v1/merge-operations/{id}- Get merge operationGET /api/v1/merge-operations/{id}/conflicts- List conflictsPOST /api/v1/conflicts/{id}/resolve- Resolve conflictPOST /api/v1/merge-operations/{id}/complete- Complete mergePOST /api/v1/merge-operations/{id}/abort- Abort merge
Business Metadata & Access Requests:
-
GET/POST/DELETE /api/v1/assets/{id}/metadata- Manage business metadata -
GET /api/v1/search- Unified search (Catalogs, Namespaces, Assets) -
GET /api/v1/search/assets- Search assets by name -
GET /api/v1/assets/{id}- Get asset details -
POST /api/v1/assets/{id}/request-access- Request access -
GET /api/v1/access-requests- List access requests -
GET/PUT /api/v1/access-requests/{id}- Get/update access request
Audit Logs:
GET /api/v1/audit- List audit events (with filtering)GET /api/v1/audit/count- Get audit event countsGET /api/v1/audit/{id}- Get specific audit event
Warehouse Management:
GET /api/v1/warehouses- List warehousesPOST /api/v1/warehouses- Create warehouseGET /api/v1/warehouses/{name}- Get warehouse
Catalog Management:
GET /api/v1/catalogs- List catalogsPOST /api/v1/catalogs- Create catalogGET /api/v1/catalogs/{name}- Get catalogGET /api/v1/catalogs/{prefix}/namespaces/tree- Get tree structure
Service Users & API Keys:
POST /api/v1/service-users- Create service userGET /api/v1/service-users- List service usersPOST /api/v1/service-users/{id}/rotate- Rotate API key
Pangolin provides an interactive Swagger UI for live API exploration:
- Swagger UI:
http://localhost:8080/swagger-ui - OpenAPI JSON:
http://localhost:8080/api-docs/openapi.json
| Document | Description |
|---|---|
| api_overview.md | Complete REST API reference |
| authentication.md | Authentication methods and setup |
curl -X POST http://localhost:8080/v1/analytics/namespaces \
-H "Content-Type: application/json" \
-d '{"namespace": ["my_namespace"]}'curl -X POST http://localhost:8080/v1/analytics/namespaces/my_ns/tables \
-H "Content-Type: application/json" \
-d '{
"name": "my_table",
"schema": {...}
}'curl -X POST http://localhost:8080/api/v1/warehouses \
-H "Content-Type: application/json" \
-d '{
"name": "my_warehouse",
"storage_config": {
"type": "s3",
"bucket": "my-bucket",
"access_key_id": "...",
"secret_access_key": "..."
}
}'- Getting Started - Setup and configuration
- Features - Advanced features
- Storage - Storage configuration