TypeScript SDK
import { WebApiSDK } from "@parable-platform/web-api-sdk";
import type { ParableArtifactIdsInput } from "@parable-platform/web-api-types";
const sdk = new WebApiSDK({
baseUrl: process.env.PARABLE_API_URL!,
auth: { token: process.env.PARABLE_API_TOKEN! },
requestInterceptor: (config) => ({
...config,
headers: { ...config.headers, "X-Tenant": process.env.PARABLE_WORKSPACE! },
}),
});
const input: ParableArtifactIdsInput = JSON.parse(`{
"artifactIds": [
"550e8400-e29b-41d4-a716-446655440000"
]
}`);
const result = await sdk.parableArtifacts.restoreParableArtifacts(
"example",
input
);import json
import os
from parable_types_web_api import ParableArtifactIdsInput
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 = ParableArtifactIdsInput.model_validate(
json.loads("{\"artifactIds\":[\"550e8400-e29b-41d4-a716-446655440000\"]}"),
)
result = sdk.parable_artifacts.restore_parable_artifacts('example', input_data)use parable_web_api_sdk::{types, ClientConfig, RequestOptions, WebApiSdk};
let sdk = WebApiSdk::new(ClientConfig::with_base_url(
std::env::var("PARABLE_API_URL")?,
Some(std::env::var("PARABLE_API_TOKEN")?),
None,
))?;
let options = RequestOptions::with_header("X-Tenant", std::env::var("PARABLE_WORKSPACE")?, None, None);
let input: types::ParableArtifactIdsInput = serde_json::from_value(
serde_json::json!({
"artifactIds": [
"550e8400-e29b-41d4-a716-446655440000"
]
}),
)?;
let result = sdk.parable_artifacts.restore_parable_artifacts(
serde_json::from_value(serde_json::json!("example"))?,
input,
Some(&options)
).await?;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.ParableArtifactIdsInput
if err := json.Unmarshal([]byte(`{"artifactIds":["550e8400-e29b-41d4-a716-446655440000"]}`), &input); err != nil {
return err
}
result, err := sdk.ParableArtifactsNamespace.RestoreParableArtifacts(ctx, "example", input){
"data": [
{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"fileName": "<string>",
"fileSize": 4503599627370495,
"fileType": "csv",
"id": "<string>",
"kind": "image",
"madeByPonder": true,
"schemaInferenceStatus": "not_requested",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"uploadStatus": "pending",
"uploadedBy": {
"email": "jsmith@example.com",
"id": "<string>",
"name": "<string>"
},
"analysisWork": {
"artifactId": "<string>",
"state": "PENDING",
"workId": "<string>",
"errorCode": "INVALID_SOURCE",
"errorMessage": "<string>",
"tapId": "<string>"
},
"attributedTapId": "<string>",
"dataSchema": {},
"deletedAt": "2023-11-07T05:31:56Z",
"familyName": "<string>",
"media": {
"design": {
"hasThumbnail": true
},
"font": {
"axes": [
{
"default": 123,
"max": 123,
"min": 123,
"tag": "<string>"
}
],
"family": "<string>",
"instances": [
{
"coordinates": [
{
"tag": "<string>",
"value": 123
}
],
"name": "<string>"
}
],
"italic": true,
"revision": 123,
"subfamily": "<string>",
"weight": 0,
"width": 0,
"fullName": "<string>",
"postscriptName": "<string>",
"sampleText": "<string>"
},
"image": {
"animated": true,
"height": 0,
"width": 0
},
"video": {
"codec": "<string>",
"durationMs": 0,
"height": 0,
"width": 0
}
},
"parableId": "<string>",
"path": "<string>",
"publishWork": {
"artifactId": "<string>",
"state": "PENDING",
"workId": "<string>",
"errorCode": "INVALID_SOURCE",
"errorMessage": "<string>",
"tapId": "<string>"
},
"rowCount": 0,
"uploadExpiresAt": "2023-11-07T05:31:56Z"
}
],
"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>"
}Artifacts
Restore Parable Artifacts
Lists retained files of the Parable again, including after the Undo offer ends.
POST
/
api
/
parable
/
authoring
/
primaries
/
{rootRefId}
/
artifacts
/
actions
/
restore
TypeScript SDK
import { WebApiSDK } from "@parable-platform/web-api-sdk";
import type { ParableArtifactIdsInput } from "@parable-platform/web-api-types";
const sdk = new WebApiSDK({
baseUrl: process.env.PARABLE_API_URL!,
auth: { token: process.env.PARABLE_API_TOKEN! },
requestInterceptor: (config) => ({
...config,
headers: { ...config.headers, "X-Tenant": process.env.PARABLE_WORKSPACE! },
}),
});
const input: ParableArtifactIdsInput = JSON.parse(`{
"artifactIds": [
"550e8400-e29b-41d4-a716-446655440000"
]
}`);
const result = await sdk.parableArtifacts.restoreParableArtifacts(
"example",
input
);import json
import os
from parable_types_web_api import ParableArtifactIdsInput
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 = ParableArtifactIdsInput.model_validate(
json.loads("{\"artifactIds\":[\"550e8400-e29b-41d4-a716-446655440000\"]}"),
)
result = sdk.parable_artifacts.restore_parable_artifacts('example', input_data)use parable_web_api_sdk::{types, ClientConfig, RequestOptions, WebApiSdk};
let sdk = WebApiSdk::new(ClientConfig::with_base_url(
std::env::var("PARABLE_API_URL")?,
Some(std::env::var("PARABLE_API_TOKEN")?),
None,
))?;
let options = RequestOptions::with_header("X-Tenant", std::env::var("PARABLE_WORKSPACE")?, None, None);
let input: types::ParableArtifactIdsInput = serde_json::from_value(
serde_json::json!({
"artifactIds": [
"550e8400-e29b-41d4-a716-446655440000"
]
}),
)?;
let result = sdk.parable_artifacts.restore_parable_artifacts(
serde_json::from_value(serde_json::json!("example"))?,
input,
Some(&options)
).await?;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.ParableArtifactIdsInput
if err := json.Unmarshal([]byte(`{"artifactIds":["550e8400-e29b-41d4-a716-446655440000"]}`), &input); err != nil {
return err
}
result, err := sdk.ParableArtifactsNamespace.RestoreParableArtifacts(ctx, "example", input){
"data": [
{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"fileName": "<string>",
"fileSize": 4503599627370495,
"fileType": "csv",
"id": "<string>",
"kind": "image",
"madeByPonder": true,
"schemaInferenceStatus": "not_requested",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"uploadStatus": "pending",
"uploadedBy": {
"email": "jsmith@example.com",
"id": "<string>",
"name": "<string>"
},
"analysisWork": {
"artifactId": "<string>",
"state": "PENDING",
"workId": "<string>",
"errorCode": "INVALID_SOURCE",
"errorMessage": "<string>",
"tapId": "<string>"
},
"attributedTapId": "<string>",
"dataSchema": {},
"deletedAt": "2023-11-07T05:31:56Z",
"familyName": "<string>",
"media": {
"design": {
"hasThumbnail": true
},
"font": {
"axes": [
{
"default": 123,
"max": 123,
"min": 123,
"tag": "<string>"
}
],
"family": "<string>",
"instances": [
{
"coordinates": [
{
"tag": "<string>",
"value": 123
}
],
"name": "<string>"
}
],
"italic": true,
"revision": 123,
"subfamily": "<string>",
"weight": 0,
"width": 0,
"fullName": "<string>",
"postscriptName": "<string>",
"sampleText": "<string>"
},
"image": {
"animated": true,
"height": 0,
"width": 0
},
"video": {
"codec": "<string>",
"durationMs": 0,
"height": 0,
"width": 0
}
},
"parableId": "<string>",
"path": "<string>",
"publishWork": {
"artifactId": "<string>",
"state": "PENDING",
"workId": "<string>",
"errorCode": "INVALID_SOURCE",
"errorMessage": "<string>",
"tapId": "<string>"
},
"rowCount": 0,
"uploadExpiresAt": "2023-11-07T05:31:56Z"
}
],
"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>"
}Restore Parable Artifacts
restore_parable_artifactsAuthorizations
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"
Path Parameters
rootRefId parameter UUID v4 with automatic base62 encoding for client-facing APIs
Body
application/json
Minimum array length:
1UUID v4 with automatic base62 encoding for client-facing APIs
Pattern:
^([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})$Was this page helpful?