curl -X POST https://<your-instance>/v1/sdk/import-pipeline \
-H "Authorization: Bearer trvh_sdk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "ADP - MLS Property Ingestion",
"domain": "MLS",
"category": "Real Estate",
"tags": ["adp", "mls"],
"steps": [
{
"type": "source",
"name": "Extract MLS API",
"config": {
"connType": "API",
"endpoint": "/v2/property/snapshot",
"paginated": true,
"paginationKey": "pagetoken"
}
},
{
"type": "transform",
"name": "Map & Coerce Fields",
"config": {
"fieldMappings": [
{"source": "address.line1", "target": "address_line1"},
{"source": "summary.yearBuilt", "target": "year_built"}
],
"rules": [
{"field": "year_built", "rule": "to_integer"}
]
}
},
{
"type": "validate",
"name": "Validate Required Fields",
"config": {
"rules": [
{"field": "attom_id", "rule": "not_null"},
{"field": "zip", "rule": "regex", "params": {"pattern": "^\\d{5}$"}}
]
}
},
{
"type": "load",
"name": "Load to Postgres",
"config": {
"vendor": "POSTGRESQL",
"schemaName": "mls_data",
"tableName": "mls_properties_with_address"
}
},
{
"type": "reconcile",
"name": "ADP Reconciliation",
"config": {
"mappingSource": "default",
"compareRowCounts": true,
"checkFieldCompleteness": true,
"screenMapEnabled": true
}
}
],
"schedule": {
"isEnabled": true,
"frequency": "daily",
"startTime": "02:00"
}
}'