TypeScript SDK
import { WebApiSDK } from "@parable-platform/web-api-sdk";
const sdk = new WebApiSDK({
baseUrl: process.env.PARABLE_API_URL!,
requestInterceptor: (config) => ({
...config,
headers: { ...config.headers, "X-Tenant": process.env.PARABLE_WORKSPACE! },
}),
});
const query = {};
const result = await sdk.vendors.parableVendors(
query
);import os
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
result = sdk.vendors.parable_vendors(search=None, limit=None, offset=None, exclude_connected=None)use parable_web_api_sdk::{namespaces, ClientConfig, RequestOptions, WebApiSdk};
let sdk = WebApiSdk::new(ClientConfig::with_base_url(
std::env::var("PARABLE_API_URL")?,
None,
None,
))?;
let options = RequestOptions::with_header("X-Tenant", std::env::var("PARABLE_WORKSPACE")?, None, None);
let query = namespaces::vendors::ParableVendorsQueryParams {
search: None,
limit: None,
offset: None,
exclude_connected: None,
};
let result = sdk.vendors.parable_vendors(
Some(&query),
Some(&options)
).await?;sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
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
}
query := &namespaces.VendorsParableVendorsQueryParams{}
result, err := sdk.VendorsNamespace.ParableVendors(ctx, query){
"data": {
"items": [
{
"groupings": [
{
"breadcrumbs": [
"<string>"
],
"groupings": "<array>",
"id": "<string>",
"isLeaf": true,
"name": "<string>",
"releaseStage": "ga",
"slug": "<string>",
"sortOrder": 0,
"vendor": "<unknown>",
"connectorId": "<string>",
"connectorReleaseStatus": "draft",
"connectorSlug": "<string>",
"description": "<string>",
"docs": "<string>",
"externalVersion": "<string>",
"groupingPath": "<string>",
"ingestionConfigSchema": {},
"integrationClass": "api",
"logo": {},
"parableVersion": "<string>",
"parent": "<unknown>",
"priority": "required",
"protocolType": "<string>",
"supportedAuthStrategies": [
{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"id": "<string>",
"type": "bearer",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"addressingConfig": {
"basePath": "<string>",
"host": "<string>",
"scheme": "<string>",
"variables": [
{
"name": "<string>",
"source": "<string>",
"oauthResponsePath": "<string>",
"required": true
}
]
},
"apiKeyConfig": {
"credentialHeaders": {},
"headerName": "<string>",
"queryParam": "<string>"
},
"basicConfig": {
"passwordField": "<string>",
"usernameField": "<string>",
"passwordValue": "<string>"
},
"bearerConfig": {
"headerName": "<string>",
"tokenField": "<string>",
"tokenPrefix": "<string>"
},
"configSchema": {},
"credentialProbe": {
"operations": [
{
"id": "<string>",
"outcomes": [
{
"all": [
{
"operator": "equals",
"source": {
"namespace": "credential",
"path": "<string>"
},
"expected": "<unknown>"
}
],
"outcome": "success",
"reason": "<string>"
}
],
"request": {
"allowedHostSuffixes": [
"<string>"
],
"auth": {
"mode": "none",
"password": "<string>",
"username": "<string>"
},
"endpoint": "<string>",
"method": "GET",
"allowedConfiguredHost": "<string>",
"defaults": {},
"fallbackEndpoint": "<string>",
"headers": {},
"queryParams": {},
"replaySafe": true,
"requestBody": "<unknown>"
},
"extracts": [
{
"name": "<string>",
"source": {
"namespace": "credential",
"path": "<string>"
},
"type": "string",
"secret": true
}
],
"invocation": {
"forEach": {
"namespace": "credential",
"path": "<string>"
},
"itemName": "<string>",
"aggregation": "all_success",
"maxItems": 0
}
}
],
"maxRequests": 0,
"signedTokens": [
{
"algorithm": "HS256",
"claims": "<unknown>",
"key": "<string>",
"lifetimeSeconds": 0,
"name": "<string>",
"headers": {}
}
],
"timeoutSeconds": 0,
"writebacks": [
{
"extract": "<string>",
"operation": "<string>",
"target": "<string>"
}
]
},
"defaultBaseUrl": "<string>",
"defaultScopes": [
"<string>"
],
"delegatedUserField": "<string>",
"docs": "<string>",
"extraHeaders": {},
"hook": "<string>",
"ingestionConfigSchema": {},
"label": "<string>",
"oauth2Config": {
"tokenEndpoint": "<string>",
"audienceParam": "<string>",
"authorizeUrl": "<string>",
"grantType": "client_credentials",
"passwordField": "<string>",
"platformManagedClient": true,
"resourceHeaders": {},
"scopes": [
"<string>"
],
"tokenBodyEncoding": "json",
"tokenEndpointAuthMethod": "client_secret_basic",
"tokenEndpointExtraParams": "<unknown>",
"tokenPrefix": "<string>",
"tokenReadinessDelaySeconds": 5,
"tokenRefreshCodes": [
499
],
"tokenResponsePath": "<string>",
"usernameField": "<string>"
},
"preEncodedBasicConfig": {
"tokenField": "<string>"
},
"support": "supported"
}
],
"supportedInboundAuthStrategies": [
{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"handshakeKind": "none",
"id": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"verificationType": "hmac_sha256",
"configSchema": {},
"label": "<string>",
"replayWindowSeconds": 4503599627370495,
"signatureBase": "<string>",
"signatureHeader": "<string>",
"timestampHeader": "<string>"
}
]
}
],
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"sortOrder": 0,
"description": "<string>",
"logo": {}
}
],
"limit": 0,
"offset": 0,
"total": 0
},
"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>"
}Too Many Requests{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Gateway TimeoutDirectory
List Providers
Lists the Providers available on the platform, with search and paging. It says nothing about what this Workspace has actually connected.
GET
/
api
/
vendors
/
parable-vendors
TypeScript SDK
import { WebApiSDK } from "@parable-platform/web-api-sdk";
const sdk = new WebApiSDK({
baseUrl: process.env.PARABLE_API_URL!,
requestInterceptor: (config) => ({
...config,
headers: { ...config.headers, "X-Tenant": process.env.PARABLE_WORKSPACE! },
}),
});
const query = {};
const result = await sdk.vendors.parableVendors(
query
);import os
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
result = sdk.vendors.parable_vendors(search=None, limit=None, offset=None, exclude_connected=None)use parable_web_api_sdk::{namespaces, ClientConfig, RequestOptions, WebApiSdk};
let sdk = WebApiSdk::new(ClientConfig::with_base_url(
std::env::var("PARABLE_API_URL")?,
None,
None,
))?;
let options = RequestOptions::with_header("X-Tenant", std::env::var("PARABLE_WORKSPACE")?, None, None);
let query = namespaces::vendors::ParableVendorsQueryParams {
search: None,
limit: None,
offset: None,
exclude_connected: None,
};
let result = sdk.vendors.parable_vendors(
Some(&query),
Some(&options)
).await?;sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
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
}
query := &namespaces.VendorsParableVendorsQueryParams{}
result, err := sdk.VendorsNamespace.ParableVendors(ctx, query){
"data": {
"items": [
{
"groupings": [
{
"breadcrumbs": [
"<string>"
],
"groupings": "<array>",
"id": "<string>",
"isLeaf": true,
"name": "<string>",
"releaseStage": "ga",
"slug": "<string>",
"sortOrder": 0,
"vendor": "<unknown>",
"connectorId": "<string>",
"connectorReleaseStatus": "draft",
"connectorSlug": "<string>",
"description": "<string>",
"docs": "<string>",
"externalVersion": "<string>",
"groupingPath": "<string>",
"ingestionConfigSchema": {},
"integrationClass": "api",
"logo": {},
"parableVersion": "<string>",
"parent": "<unknown>",
"priority": "required",
"protocolType": "<string>",
"supportedAuthStrategies": [
{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"id": "<string>",
"type": "bearer",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"addressingConfig": {
"basePath": "<string>",
"host": "<string>",
"scheme": "<string>",
"variables": [
{
"name": "<string>",
"source": "<string>",
"oauthResponsePath": "<string>",
"required": true
}
]
},
"apiKeyConfig": {
"credentialHeaders": {},
"headerName": "<string>",
"queryParam": "<string>"
},
"basicConfig": {
"passwordField": "<string>",
"usernameField": "<string>",
"passwordValue": "<string>"
},
"bearerConfig": {
"headerName": "<string>",
"tokenField": "<string>",
"tokenPrefix": "<string>"
},
"configSchema": {},
"credentialProbe": {
"operations": [
{
"id": "<string>",
"outcomes": [
{
"all": [
{
"operator": "equals",
"source": {
"namespace": "credential",
"path": "<string>"
},
"expected": "<unknown>"
}
],
"outcome": "success",
"reason": "<string>"
}
],
"request": {
"allowedHostSuffixes": [
"<string>"
],
"auth": {
"mode": "none",
"password": "<string>",
"username": "<string>"
},
"endpoint": "<string>",
"method": "GET",
"allowedConfiguredHost": "<string>",
"defaults": {},
"fallbackEndpoint": "<string>",
"headers": {},
"queryParams": {},
"replaySafe": true,
"requestBody": "<unknown>"
},
"extracts": [
{
"name": "<string>",
"source": {
"namespace": "credential",
"path": "<string>"
},
"type": "string",
"secret": true
}
],
"invocation": {
"forEach": {
"namespace": "credential",
"path": "<string>"
},
"itemName": "<string>",
"aggregation": "all_success",
"maxItems": 0
}
}
],
"maxRequests": 0,
"signedTokens": [
{
"algorithm": "HS256",
"claims": "<unknown>",
"key": "<string>",
"lifetimeSeconds": 0,
"name": "<string>",
"headers": {}
}
],
"timeoutSeconds": 0,
"writebacks": [
{
"extract": "<string>",
"operation": "<string>",
"target": "<string>"
}
]
},
"defaultBaseUrl": "<string>",
"defaultScopes": [
"<string>"
],
"delegatedUserField": "<string>",
"docs": "<string>",
"extraHeaders": {},
"hook": "<string>",
"ingestionConfigSchema": {},
"label": "<string>",
"oauth2Config": {
"tokenEndpoint": "<string>",
"audienceParam": "<string>",
"authorizeUrl": "<string>",
"grantType": "client_credentials",
"passwordField": "<string>",
"platformManagedClient": true,
"resourceHeaders": {},
"scopes": [
"<string>"
],
"tokenBodyEncoding": "json",
"tokenEndpointAuthMethod": "client_secret_basic",
"tokenEndpointExtraParams": "<unknown>",
"tokenPrefix": "<string>",
"tokenReadinessDelaySeconds": 5,
"tokenRefreshCodes": [
499
],
"tokenResponsePath": "<string>",
"usernameField": "<string>"
},
"preEncodedBasicConfig": {
"tokenField": "<string>"
},
"support": "supported"
}
],
"supportedInboundAuthStrategies": [
{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"handshakeKind": "none",
"id": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"verificationType": "hmac_sha256",
"configSchema": {},
"label": "<string>",
"replayWindowSeconds": 4503599627370495,
"signatureBase": "<string>",
"signatureHeader": "<string>",
"timestampHeader": "<string>"
}
]
}
],
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"sortOrder": 0,
"description": "<string>",
"logo": {}
}
],
"limit": 0,
"offset": 0,
"total": 0
},
"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>"
}Too Many Requests{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Gateway TimeoutList Providers
list_providersHeaders
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"
Response
Successful response
provider API Types These types are used for the connector catalog browsing experience. They wrap the DB types with computed fields for frontend display. Paginated response for listing parable vendors.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?