POST/v1/connectors/pipeline/upsert
Batch upsert data records from pipeline platforms like Airbyte, Fivetran, or custom connectors.
Requires Pipeline Connector API Key via X-API-Key header.
Array of pipeline records (max 1,000 per request):
| Field | Type | Required | Description |
|---|---|---|---|
source_system | string | Yes | Source platform identifier (e.g., "airbyte", "fivetran", "custom") |
namespace | string | Yes | Source application namespace (e.g., "clickup", "jira", "notion") |
action | string | Yes | Action to perform: "upsert" or "delete" |
organization_id | string | Yes | Organization ID (org_ prefixed) |
id | string | Yes | Unique identifier from source system (1-255 chars) |
data | object | Yes | Free-form data from source system |
file | object | No | Optional file attachment metadata |
created_at | string | Yes | Record creation timestamp (ISO 8601) |
updated_at | string | No | Record last update timestamp (ISO 8601) |
| Field | Type | Required | Description |
|---|---|---|---|
file_url | string | Yes | Local file path where file is staged |
file_relative_path | string | Yes | Relative path in source system |
source_file_url | string | No | Original URL in source system |
- Batch Size: Maximum 1,000 records per request
- Rate Limit: 100 requests per minute per organization
- Organization: All records must belong to same organization
- Data: Cannot be empty object
Success response with processing statistics.
cURL
- Bash
- Python
- JavaScript
curl -X POST https://api.aitronos.com/v1/connectors/pipeline/upsert \
-H "X-API-Key: $PIPELINE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"source_system": "airbyte",
"namespace": "clickup",
"action": "upsert",
"organization_id": "org_123abc456def789",
"id": "task_12345",
"data": {
"name": "Implement new feature",
"status": "in_progress",
"assignee": "john@example.com",
"priority": "high"
},
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T14:20:00Z"
}
]'200 - Success
- JSON
- JSON
- JSON
- JSON
- JSON
{
"success": true,
"message": "Batch received successfully",
"processed_count": 5,
"failed_count": 0,
"request_id": "req_abc123def456",
"processing_time_ms": 145,
"summary": {
"namespaces": {
"clickup": 5
},
"source_systems": {
"airbyte": 5
},
"actions": {
"upsert": 5
}
}
}