import json
import os
from parable_types_web_api import DescribePoolTableInput
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"]},
)
)
input_data = DescribePoolTableInput.model_validate(
json.loads("{\"tableRef\":\"example\"}"),
)
result = sdk.provider_pool.describe_pool_table(input_data)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
}
var input webapitypes.DescribePoolTableInput
if err := json.Unmarshal([]byte(`{"tableRef":"example"}`), &input); err != nil {
return err
}
result, err := sdk.ProviderPoolNamespace.DescribePoolTable(ctx, input){
"data": {
"catalogVersion": "<string>",
"table": {
"catalog": "<string>",
"fields": [
{
"arrowType": "<string>",
"hidden": true,
"name": "<string>",
"nullable": true,
"poorPruning": true,
"scalarRef": "<string>",
"system": true
}
],
"importedForeignKeys": [
{
"referencedColumns": [
"<string>"
],
"referencedSchema": "<string>",
"referencedTable": "<string>",
"sourceColumns": [
"<string>"
]
}
],
"logicalName": "<string>",
"schemaName": "<string>",
"tableKind": "main",
"tapKind": "override",
"validationRates": [
{
"column": "<string>",
"rate": "<string>"
}
],
"description": "<string>",
"materialized": true,
"primaryKey": {
"columns": [
"<string>"
]
},
"statsRowCount": 0,
"watermark": "2023-11-07T05:31:56Z",
"watermarkStale": true
}
},
"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>"
}Too Many Requests{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Gateway TimeoutDescribe a Pool table
Describes one table of the catalog. 1. tableRef is the name a FROM clause takes, such as providers.jiracloud.issues. 2. Each field has its Arrow type, its Parable scalar when it has one, and whether it is hidden or a system column. 3. importedForeignKeys are documented relationships, not enforced constraints: a join on one can still multiply rows. 4. A null row count, watermark or validation rate means unknown.
import json
import os
from parable_types_web_api import DescribePoolTableInput
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"]},
)
)
input_data = DescribePoolTableInput.model_validate(
json.loads("{\"tableRef\":\"example\"}"),
)
result = sdk.provider_pool.describe_pool_table(input_data)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
}
var input webapitypes.DescribePoolTableInput
if err := json.Unmarshal([]byte(`{"tableRef":"example"}`), &input); err != nil {
return err
}
result, err := sdk.ProviderPoolNamespace.DescribePoolTable(ctx, input){
"data": {
"catalogVersion": "<string>",
"table": {
"catalog": "<string>",
"fields": [
{
"arrowType": "<string>",
"hidden": true,
"name": "<string>",
"nullable": true,
"poorPruning": true,
"scalarRef": "<string>",
"system": true
}
],
"importedForeignKeys": [
{
"referencedColumns": [
"<string>"
],
"referencedSchema": "<string>",
"referencedTable": "<string>",
"sourceColumns": [
"<string>"
]
}
],
"logicalName": "<string>",
"schemaName": "<string>",
"tableKind": "main",
"tapKind": "override",
"validationRates": [
{
"column": "<string>",
"rate": "<string>"
}
],
"description": "<string>",
"materialized": true,
"primaryKey": {
"columns": [
"<string>"
]
},
"statsRowCount": 0,
"watermark": "2023-11-07T05:31:56Z",
"watermarkStale": true
}
},
"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>"
}Too Many Requests{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Gateway TimeoutAccess
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
HTTP 404: No table of that name is in a Pool the caller may read. The name may be misspelled, or the table may be in a Pool their role does not reach. Copy tableRef from a search result.HTTP 403: The caller cannot read the Workspace data catalog. Use an identity with data catalog permission.
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.
"acme"
Optional request correlation ID echoed back in the response.
"550e8400-e29b-41d4-a716-446655440000"
Body
The table's name as a FROM clause takes it, such as
providers.jiracloud.issues. Search results return it as tableRef.
1 - 500Response
Successful response
One table of the catalog, as Parable describes it: its fields with their Arrow types and Parable scalars, its primary key and relationships, and what is known of its rows and freshness. A value no measurement has produced is null, which means unknown, not healthy.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes