Python SDK
import os
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
result = sdk.catalog.table_shape_stats()sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
result, err := sdk.CatalogNamespace.TableShapeStats(ctx){
"data": {
"stats": [
{
"capturedAt": "2023-11-07T05:31:56Z",
"columnCount": 0,
"columns": [
{
"arrowType": "<string>",
"columnName": "<string>",
"nonNullCount": 0,
"nullPct": 123,
"validationFailureCount": 0,
"validationFailurePct": 123,
"avg": 123,
"distinctCount": 0,
"maxValue": "<string>",
"minValue": "<string>",
"parableScalar": "<string>",
"q25": 123,
"q50": 123,
"q75": 123,
"std": 123
}
],
"distinctCountsExact": true,
"rowCount": 0,
"runDate": "2023-12-25",
"runId": "<string>",
"snapshotId": "<string>",
"storageUri": "<string>",
"loadType": "<string>",
"sampledRowCount": 0,
"tapContractId": "<string>",
"totalByteSize": 0
}
],
"statsVersion": "<string>",
"tenantId": "<string>"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Read the shape of every table
Returns the most recent snapshot of each table’s columns and their distributions, for every table in this Workspace’s catalog.
GET
/
api
/
catalog
/
table-shape-stats
Python SDK
import os
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
result = sdk.catalog.table_shape_stats()sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
result, err := sdk.CatalogNamespace.TableShapeStats(ctx){
"data": {
"stats": [
{
"capturedAt": "2023-11-07T05:31:56Z",
"columnCount": 0,
"columns": [
{
"arrowType": "<string>",
"columnName": "<string>",
"nonNullCount": 0,
"nullPct": 123,
"validationFailureCount": 0,
"validationFailurePct": 123,
"avg": 123,
"distinctCount": 0,
"maxValue": "<string>",
"minValue": "<string>",
"parableScalar": "<string>",
"q25": 123,
"q50": 123,
"q75": 123,
"std": 123
}
],
"distinctCountsExact": true,
"rowCount": 0,
"runDate": "2023-12-25",
"runId": "<string>",
"snapshotId": "<string>",
"storageUri": "<string>",
"loadType": "<string>",
"sampledRowCount": 0,
"tapContractId": "<string>",
"totalByteSize": 0
}
],
"statsVersion": "<string>",
"tenantId": "<string>"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Access
An MCP token or a Parable token can call this operation. See Authentication for the kinds of token. Your roles must granttenant.data.catalog.
Errors
WA-TN-001: No Workspace context was supplied. Call from a Workspace context.
Authorizations
A personal access token, which starts with pat_. A Parable token can call each operation that the roles of its owner allow. An MCP token can call only the read operations that are open to agents. A SQL token does not work on this API.
Headers
Workspace slug. Overrides subdomain-based workspace resolution when provided.
Example:
"acme"
Optional request correlation ID echoed back in the response.
Example:
"550e8400-e29b-41d4-a716-446655440000"