import json
import os
from parable_types_web_api import PlotParableReportInput
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 = PlotParableReportInput.model_validate(
json.loads("{\"idempotencyKey\":\"550e8400-e29b-41d4-a716-446655440000\"}"),
)
result = sdk.parable_authoring.plot_workspace_parable_report('example', 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.PlotParableReportInput
if err := json.Unmarshal([]byte(`{"idempotencyKey":"550e8400-e29b-41d4-a716-446655440000"}`), &input); err != nil {
return err
}
result, err := sdk.ParableAuthoringNamespace.PlotWorkspaceParableReport(ctx, "example", input){
"data": {
"forced": true,
"id": "<string>",
"occurredAt": "2023-11-07T05:31:56Z",
"plotResults": [
{
"id": "<string>",
"plotEntityKey": "<string>",
"plotEntityVersion": 0,
"plotName": "<string>",
"rowCountHidden": true,
"spentCalls": 123,
"spentCost": 123,
"status": "pending",
"updatedAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"errorMessage": "<string>",
"maxCost": {
"value": 4503599627370495
},
"maxExternalCalls": {
"value": 4503599627370495
},
"reusedFrom": {
"occurredAt": "2023-11-07T05:31:56Z",
"preview": true,
"reportRunId": "<string>"
},
"rowCount": 0,
"startedAt": "2023-11-07T05:31:56Z"
}
],
"preview": true,
"publishedCommitId": "<string>",
"reportKey": "<string>",
"sources": [
{
"delivery": "batch",
"id": "<string>",
"name": "<string>",
"connectionStatus": "disabled",
"connectionStatusMessage": "<string>",
"dataAsOf": "2023-11-07T05:31:56Z",
"hasData": true,
"logoUrl": "<string>",
"provider": "<string>",
"streamsOff": [
"<string>"
],
"tenantConnectorId": "<string>",
"vendorName": "<string>"
}
],
"status": "pending",
"trigger": "scheduled",
"triggerSources": [
{
"completedAt": "2023-11-07T05:31:56Z",
"kind": "provider_tap",
"name": "<string>",
"sourceId": "<string>"
}
],
"completedAt": "2023-11-07T05:31:56Z",
"durationMs": 0,
"failureMessage": "<string>",
"planKey": "<string>",
"proposalId": "<string>",
"requestedBy": {
"id": "<string>",
"kind": "organization",
"name": "<string>"
},
"typicalDurationMs": 0,
"unavailableReason": "<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>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Run a Report on a Parable
Starts a Report reading against a Parable using the data source you choose. The result shows up as a Report run. With preview, the run reads a sample of the data and can run on a set of Changes; prefer a Preview while you iterate and a full run once the Changes are published.
import json
import os
from parable_types_web_api import PlotParableReportInput
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 = PlotParableReportInput.model_validate(
json.loads("{\"idempotencyKey\":\"550e8400-e29b-41d4-a716-446655440000\"}"),
)
result = sdk.parable_authoring.plot_workspace_parable_report('example', 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.PlotParableReportInput
if err := json.Unmarshal([]byte(`{"idempotencyKey":"550e8400-e29b-41d4-a716-446655440000"}`), &input); err != nil {
return err
}
result, err := sdk.ParableAuthoringNamespace.PlotWorkspaceParableReport(ctx, "example", input){
"data": {
"forced": true,
"id": "<string>",
"occurredAt": "2023-11-07T05:31:56Z",
"plotResults": [
{
"id": "<string>",
"plotEntityKey": "<string>",
"plotEntityVersion": 0,
"plotName": "<string>",
"rowCountHidden": true,
"spentCalls": 123,
"spentCost": 123,
"status": "pending",
"updatedAt": "2023-11-07T05:31:56Z",
"completedAt": "2023-11-07T05:31:56Z",
"errorMessage": "<string>",
"maxCost": {
"value": 4503599627370495
},
"maxExternalCalls": {
"value": 4503599627370495
},
"reusedFrom": {
"occurredAt": "2023-11-07T05:31:56Z",
"preview": true,
"reportRunId": "<string>"
},
"rowCount": 0,
"startedAt": "2023-11-07T05:31:56Z"
}
],
"preview": true,
"publishedCommitId": "<string>",
"reportKey": "<string>",
"sources": [
{
"delivery": "batch",
"id": "<string>",
"name": "<string>",
"connectionStatus": "disabled",
"connectionStatusMessage": "<string>",
"dataAsOf": "2023-11-07T05:31:56Z",
"hasData": true,
"logoUrl": "<string>",
"provider": "<string>",
"streamsOff": [
"<string>"
],
"tenantConnectorId": "<string>",
"vendorName": "<string>"
}
],
"status": "pending",
"trigger": "scheduled",
"triggerSources": [
{
"completedAt": "2023-11-07T05:31:56Z",
"kind": "provider_tap",
"name": "<string>",
"sourceId": "<string>"
}
],
"completedAt": "2023-11-07T05:31:56Z",
"durationMs": 0,
"failureMessage": "<string>",
"planKey": "<string>",
"proposalId": "<string>",
"requestedBy": {
"id": "<string>",
"kind": "organization",
"name": "<string>"
},
"typicalDurationMs": 0,
"unavailableReason": "<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>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Access
This operation needs a Parable token. An MCP token cannot call it. See Authentication for the kinds of token. Your roles must granttenant.parables.manage.
Errors
PA-AU-001: The Parable or its published Report context was not found, or the set of Changes to Preview is not one the caller may open on this Parable. Check the rootRefId and confirm a published Version exists; for a Preview, check the proposalId.PA-AU-006: The idempotency key was already used for different input. Generate a new idempotency key.PA-AU-007: The Parable is pocketed, so it cannot run a Report. Restore the Parable, then run its Report.PA-AU-019: The caller cannot run a Report for this Parable. Use a Workspace identity with Parable manage permission and the required RACI role.PA-AU-005: The published Version has no Pipeline to run, a Refresh named a set of Changes, or a Refresh of this Report is still running. Make a Plot a Pipeline and publish, Preview the set instead of refreshing it, or wait for the run that the message names.
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"
Path Parameters
rootRefId parameter UUID v4 with automatic base62 encoding for client-facing APIs
Body
What Plot returns: the run it minted, so the picker can select it at once.
UUID v4 with automatic base62 encoding for client-facing APIs
^([0-9A-Za-z]{1,22}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$Refresh everything: every Pipeline recomputes, even one whose inputs, plan and settings match an earlier Refresh. Null or false is Refresh, which reuses such a Pipeline's output. The run records it, and the audit trail names who forced it.
True runs a Preview: the whole Report end to end on a sample of the real data, stored and listed like a Refresh but never Latest, and kept for a shorter time. False or null runs a Refresh.
The set of Changes to Preview, by ParableProposal.id; a Preview only. The run reads the set as it stands when Preview is pressed. Null previews the newest published Version.
^([0-9A-Za-z]{1,22}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$The Report the run belongs to: an enabled Report of the captured Version. Null names the Version's first enabled Report by order, or the Parable itself when the Version has no enabled Report. Every run runs every Pipeline, whatever its Report. Creating a run never changes the authored definition.
^([0-9A-Za-z]{1,22}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$