Data sources define external data feeds that bring data into the platform. Each data source is associated with a connector type and sync configuration, and can be linked to a target schema for automatic data loading.
Base path
List data sources
Returns a paginated list of data sources for the current tenant, ordered by creation date (oldest first).
Query parameters
Parameter Required Type Description limitNo integer Maximum results per page. Default 25. cursorNo string Cursor for keyset pagination.
Response 200
{
"data" : [
{
"id" : "ds_001" ,
"tenantId" : "t_001" ,
"key" : "crm-customers" ,
"name" : "CRM Customer Export" ,
"description" : "Daily customer data export from Salesforce." ,
"connectorKey" : "salesforce" ,
"sourceConfig" : {
"objectName" : "Contact" ,
"query" : "SELECT Id, Email, Name FROM Contact"
},
"fileFormat" : null ,
"syncMode" : "incremental" ,
"schedule" : {
"cron" : "0 2 * * *" ,
"timezone" : "America/New_York"
},
"schemaKey" : "customers" ,
"status" : "active" ,
"lastSyncAt" : "2026-03-16T02:00:00.000Z" ,
"lastSyncStatus" : "success" ,
"recordCount" : 45000 ,
"rowVersion" : 3 ,
"createdAt" : "2026-03-01T12:00:00.000Z" ,
"updatedAt" : "2026-03-16T02:00:00.000Z"
}
],
"pagination" : {
"total" : 4 ,
"limit" : 25 ,
"hasMore" : false ,
"nextCursor" : null
}
}
Create a data source
POST /api/v1/data-sources
Creates a new data source configuration.
Request body
Field Required Type Description keyYes string (1-255) Unique identifier key. nameYes string (1-255) Display name. descriptionNo string Description. Default "". connectorKeyNo string Connector type key (e.g., "s3", "snowflake", "kafka"). Default "". sourceConfigNo object Connector-specific source configuration. Default {}. fileFormatNo string | null File format for file-based sources (e.g., "csv", "parquet", "json"). syncModeNo enum full_refresh (default), incremental, cdc.scheduleNo object Sync schedule configuration. Default {}. schemaKeyNo string | null Target schema key for data loading. statusNo enum draft (default), active, paused, archived.lastSyncAtNo string | null ISO 8601 timestamp of last sync. lastSyncStatusNo string | null Last sync result (e.g., "success", "failed"). recordCountNo integer (>= 0) Number of records in the source. Default 0.
Sync modes
Mode Description full_refreshReplace all data on each sync. incrementalOnly sync new or changed records since last sync. cdcChange data capture for real-time streaming.
Example request
{
"key" : "crm-customers" ,
"name" : "CRM Customer Export" ,
"description" : "Daily customer data export from Salesforce." ,
"connectorKey" : "salesforce" ,
"sourceConfig" : {
"objectName" : "Contact" ,
"query" : "SELECT Id, Email, Name FROM Contact"
},
"syncMode" : "incremental" ,
"schedule" : {
"cron" : "0 2 * * *" ,
"timezone" : "America/New_York"
},
"schemaKey" : "customers" ,
"status" : "active"
}
Response 201
Returns the created data source object.
Error codes
Code Reason 400Validation error (missing key or name). 409A data source with that key already exists. 415Content-Type is not application/json.
Update a data source
Updates an existing data source. Only provided fields are changed. Supports optimistic concurrency via rowVersion.
Request body
Field Required Type Description keyYes string The data source key to update. nameNo string (1-255) Updated name. descriptionNo string Updated description. connectorKeyNo string Updated connector key. sourceConfigNo object Updated source configuration. fileFormatNo string | null Updated file format. syncModeNo enum Updated sync mode. scheduleNo object Updated schedule. schemaKeyNo string | null Updated target schema key. statusNo enum Updated status. lastSyncAtNo string | null Updated last sync timestamp. lastSyncStatusNo string | null Updated last sync status. recordCountNo integer (>= 0) Updated record count. rowVersionNo integer Expected row version for optimistic concurrency.
If rowVersion is provided and does not match the current version, the update is rejected with a 409 conflict response containing the current data source state.
Response 200
Returns the updated data source object. The rowVersion is automatically incremented.
Response 409 (concurrency conflict)
{
"title" : "Optimistic concurrency conflict" ,
"detail" : "rowVersion mismatch." ,
"current" : { "..." : "current data source object" }
}
Error codes
Code Reason 400Validation error. 404Data source not found. 409Optimistic concurrency conflict.
Delete a data source
DELETE /api/v1/data-sources?key={sourceKey}
Deletes a data source by key.
Query parameters
Parameter Required Type Description keyYes string Data source key to delete.
Response 204
Empty body on success.
Error codes
Code Reason 400Missing key query parameter. 404Data source not found.
Role requirements
Method Minimum role GET viewerPOST editorPUT editorDELETE editor
Data Platform Learn more about connectors, schemas, and data pipelines in the platform UI.