Skip to content
Last updated
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.

Request Body

Array of pipeline records (max 1,000 per request):

FieldTypeRequiredDescription
source_systemstringYesSource platform identifier (e.g., "airbyte", "fivetran", "custom")
namespacestringYesSource application namespace (e.g., "clickup", "jira", "notion")
actionstringYesAction to perform: "upsert" or "delete"
organization_idstringYesOrganization ID (org_ prefixed)
idstringYesUnique identifier from source system (1-255 chars)
dataobjectYesFree-form data from source system
fileobjectNoOptional file attachment metadata
created_atstringYesRecord creation timestamp (ISO 8601)
updated_atstringNoRecord last update timestamp (ISO 8601)

File Metadata Object

FieldTypeRequiredDescription
file_urlstringYesLocal file path where file is staged
file_relative_pathstringYesRelative path in source system
source_file_urlstringNoOriginal URL in source system

Constraints

  • 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

Returns

Success response with processing statistics.

cURL
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"
    }
  ]'

Response

200 - Success
{
  "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
    }
  }
}