curl -X POST https://<your-instance>/v1/sdk/client/onboard \
-H "Authorization: Bearer trvh_sdk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"clientId": "DEF",
"clientName": "Client DEF Corp",
"connectionId": "D2026A00042",
"externalIdKey": "CRD_ALPHA_CORE",
"coreModelId": "SM2026A00001",
"vdm": [
{
"name": "Main VDM",
"vendor": "SNOWFLAKE",
"selectedColumns": [],
"joinConfiguration": [],
"measureConfiguration": []
}
],
"dashboards": [
{
"name": "DEF Dashboard",
"templateType": "realEstate",
"category": ["BI"],
"sections": [
{
"name": "KPIs",
"topSection": true,
"charts": [
{
"title": "Total AUM",
"type": "kpi",
"measures": [{"field": "MARKET_VALUE", "aggregation": "sum"}],
"dimensions": ["PERIOD"]
}
]
}
]
}
],
"security": { "enabled": true }
}'
curl -X POST https://<your-instance>/v1/sdk/client/onboard/<userToken> \
-H "Content-Type: application/json" \
-H "CTN: <csrf-token>" \
--cookie "LASID=<session>;ATN=<access>;RTN=<refresh>" \
-d '{ ... }'
{
"success": true,
"status": "COMPLETED",
"client": {
"clientId": "DEF",
"clientName": "Client DEF Corp",
"connectionId": "D2026A00042",
"modelId": "SM2026A00004",
"vdmIds": ["V2026A00109"],
"facadeIds": ["F2026A00018"],
"experimentIds": ["E2026A00042"],
"coreModelId": "SM2026A00001",
"status": "ACTIVE",
"onboardedBy": "admin_user_id",
"onboardedDate": "2026-03-17T10:00:00.000Z"
}
}
{
"success": true,
"status": "ALREADY_EXISTS",
"client": { "clientId": "DEF", "..." : "..." }
}
{
"success": false,
"error": "Validation failed: clientId is required; connectionId is required; At least one VDM config is required in the package"
}
SDK API
Client Onboard
Onboard a new client from an exported onboarding JSON package — creates semantic model, VDM(s), dashboards, and client registry entry
POST
/
v1
/
sdk
/
client
/
onboard
curl -X POST https://<your-instance>/v1/sdk/client/onboard \
-H "Authorization: Bearer trvh_sdk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"clientId": "DEF",
"clientName": "Client DEF Corp",
"connectionId": "D2026A00042",
"externalIdKey": "CRD_ALPHA_CORE",
"coreModelId": "SM2026A00001",
"vdm": [
{
"name": "Main VDM",
"vendor": "SNOWFLAKE",
"selectedColumns": [],
"joinConfiguration": [],
"measureConfiguration": []
}
],
"dashboards": [
{
"name": "DEF Dashboard",
"templateType": "realEstate",
"category": ["BI"],
"sections": [
{
"name": "KPIs",
"topSection": true,
"charts": [
{
"title": "Total AUM",
"type": "kpi",
"measures": [{"field": "MARKET_VALUE", "aggregation": "sum"}],
"dimensions": ["PERIOD"]
}
]
}
]
}
],
"security": { "enabled": true }
}'
curl -X POST https://<your-instance>/v1/sdk/client/onboard/<userToken> \
-H "Content-Type: application/json" \
-H "CTN: <csrf-token>" \
--cookie "LASID=<session>;ATN=<access>;RTN=<refresh>" \
-d '{ ... }'
{
"success": true,
"status": "COMPLETED",
"client": {
"clientId": "DEF",
"clientName": "Client DEF Corp",
"connectionId": "D2026A00042",
"modelId": "SM2026A00004",
"vdmIds": ["V2026A00109"],
"facadeIds": ["F2026A00018"],
"experimentIds": ["E2026A00042"],
"coreModelId": "SM2026A00001",
"status": "ACTIVE",
"onboardedBy": "admin_user_id",
"onboardedDate": "2026-03-17T10:00:00.000Z"
}
}
{
"success": true,
"status": "ALREADY_EXISTS",
"client": { "clientId": "DEF", "..." : "..." }
}
{
"success": false,
"error": "Validation failed: clientId is required; connectionId is required; At least one VDM config is required in the package"
}
Full client onboarding from a self-contained JSON package. Creates all resources (semantic model, VDMs, dashboards with experiments and facades) and registers the client as
ACTIVE.
This endpoint supports both API key authentication (
Authorization: Bearer trvh_sdk_...) and browser session authentication (POST /v1/sdk/client/onboard/{userId} with CSRF token).Request Body
The request body is an onboarding JSON package — the same format produced by the Download button in the Client Onboarding UI.string
required
Unique client identifier (e.g.,
"DEF"). Will be uppercased automatically.string
required
Display name for the client (e.g.,
"Client DEF Corp").string
required
DataBridge connection ID for the client’s data source (e.g.,
"D2026A00042").string
required
The
modelId of the core semantic model to inherit from. Must exist on the target platform.string
Key name used for row-level security user mapping (e.g.,
"CRD_ALPHA_CORE").array
required
Array of VDM configurations. At least one is required.
Show VDM object
Show VDM object
string
VDM display name.
string
Optional description.
string
default:"SNOWFLAKE"
Database vendor.
string
default:"bi_semantic_model"
Source type.
array
Column selection configuration.
array
Table join definitions.
array
Measure definitions.
array
Calculated expression definitions.
array
Time series configuration.
array
Ranking configuration.
array
Filter configuration.
array
Arithmetic configuration.
array
Transformation configuration.
boolean
default:false
Enable row-level security on this VDM.
object
Security binding definitions.
object
User-to-scope mapping table configuration.
object
Scope definition table configuration.
array
Array of dashboard definitions. Each dashboard creates experiments and a facade.
Show dashboard object
Show dashboard object
string
Dashboard display name.
string
Optional description.
string
Layout template type (e.g.,
"realEstate").string
Exact layout template name. Takes priority over
templateType.array
Dashboard categories (e.g.,
["BI"]).array
Dashboard tags.
array
Array of dashboard sections (same format as Import Dashboard sections).
Show section object
Show section object
string
Section name (appears as category tab label).
boolean
default:false
Render in the always-visible top section.
boolean
default:false
Appear as a navigable category tab.
array
required
Array of chart definitions (same format as Import Dashboard charts).
object
Global security settings.
Show security properties
Show security properties
boolean
default:true
Enable row-level security for the client model.
Response
boolean
Whether the request completed.
string
"COMPLETED" for new clients, "ALREADY_EXISTS" if the client was already onboarded.object
The created (or existing) client registry record.
Show client properties
Show client properties
curl -X POST https://<your-instance>/v1/sdk/client/onboard \
-H "Authorization: Bearer trvh_sdk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"clientId": "DEF",
"clientName": "Client DEF Corp",
"connectionId": "D2026A00042",
"externalIdKey": "CRD_ALPHA_CORE",
"coreModelId": "SM2026A00001",
"vdm": [
{
"name": "Main VDM",
"vendor": "SNOWFLAKE",
"selectedColumns": [],
"joinConfiguration": [],
"measureConfiguration": []
}
],
"dashboards": [
{
"name": "DEF Dashboard",
"templateType": "realEstate",
"category": ["BI"],
"sections": [
{
"name": "KPIs",
"topSection": true,
"charts": [
{
"title": "Total AUM",
"type": "kpi",
"measures": [{"field": "MARKET_VALUE", "aggregation": "sum"}],
"dimensions": ["PERIOD"]
}
]
}
]
}
],
"security": { "enabled": true }
}'
curl -X POST https://<your-instance>/v1/sdk/client/onboard/<userToken> \
-H "Content-Type: application/json" \
-H "CTN: <csrf-token>" \
--cookie "LASID=<session>;ATN=<access>;RTN=<refresh>" \
-d '{ ... }'
{
"success": true,
"status": "COMPLETED",
"client": {
"clientId": "DEF",
"clientName": "Client DEF Corp",
"connectionId": "D2026A00042",
"modelId": "SM2026A00004",
"vdmIds": ["V2026A00109"],
"facadeIds": ["F2026A00018"],
"experimentIds": ["E2026A00042"],
"coreModelId": "SM2026A00001",
"status": "ACTIVE",
"onboardedBy": "admin_user_id",
"onboardedDate": "2026-03-17T10:00:00.000Z"
}
}
{
"success": true,
"status": "ALREADY_EXISTS",
"client": { "clientId": "DEF", "..." : "..." }
}
{
"success": false,
"error": "Validation failed: clientId is required; connectionId is required; At least one VDM config is required in the package"
}