IngestIQ

Pipelines

Pipeline management and execution endpoints

List Pipelines#

Get all pipelines for a knowledge base.

curl http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response#

{
  "pipelines": [
    {
      "id": "pipeline-uuid",
      "name": "PDF Document Pipeline",
      "description": "Process uploaded PDFs",
      "status": "active",
      "scheduleConfig": null,
      "createdAt": "2024-01-28T12:00:00.000Z"
    }
  ]
}

Create Pipeline#

Create a new pipeline.

namestringrequired

Pipeline name

descriptionstring

Optional description

sourceConnectorConfigIdstringrequired

Source connector configuration ID

parserModelConfigIdstringrequired

Parser model configuration ID

embeddingModelConfigIdstringrequired

Embedding model configuration ID

destinationConnectorConfigIdstringrequired

Destination connector configuration ID

parsingPromptstring

Custom parsing instructions

metadataParsingPromptstring

Metadata extraction prompt

isMetadataPromptboolean

Enable metadata extraction

scheduleConfigobject

Scheduling configuration

curl -X POST http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Technical Docs Pipeline",
    "description": "Process technical documentation",
    "sourceConnectorConfigId": "source-config-uuid",
    "parserModelConfigId": "parser-config-uuid",
    "embeddingModelConfigId": "embedding-config-uuid",
    "destinationConnectorConfigId": "dest-config-uuid",
    "parsingPrompt": "Preserve code blocks exactly"
  }'

Response#

{
  "id": "pipeline-uuid",
  "name": "Technical Docs Pipeline",
  "knowledgebaseId": "kb-uuid",
  "status": "active",
  "createdAt": "2024-01-28T12:00:00.000Z"
}

Get Pipeline#

Get pipeline details.

curl http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines/{pipelineId}/details \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response#

{
  "id": "pipeline-uuid",
  "name": "Technical Docs Pipeline",
  "description": "Process technical documentation",
  "status": "active",
  "sourceConnectorConfig": { ... },
  "parserModelConfig": { ... },
  "embeddingModelConfig": { ... },
  "destinationConnectorConfig": { ... },
  "parsingPrompt": "Preserve code blocks exactly",
  "scheduleConfig": null
}

Update Pipeline#

Update pipeline configuration.

curl -X PUT http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines/{pipelineId}/update \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Pipeline Name",
    "parsingPrompt": "New parsing instructions"
  }'

Execute Pipeline#

Execute a pipeline to process documents.

File Upload Execution#

curl -X POST http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines/{pipelineId}/execute \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -F "files=@document.pdf"

URL-based Execution (Video/Web)#

curl -X POST http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines/{pipelineId}/execute \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://youtube.com/watch?v=..."]
  }'

Response#

{
  "executionId": "exec-uuid",
  "status": "processing",
  "documentsQueued": 3,
  "message": "Pipeline execution started"
}

Get Execution History#

Get pipeline execution history.

curl "http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines/{pipelineId}/executions?page=1&limit=10" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response#

{
  "executions": [
    {
      "id": "exec-uuid",
      "status": "completed",
      "documentsProcessed": 5,
      "documentsFailed": 0,
      "startedAt": "2024-01-28T12:00:00.000Z",
      "completedAt": "2024-01-28T12:05:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "total": 25
  }
}

Configure Schedule#

Enable scheduled execution.

curl -X PUT http://localhost:3000/api/v2/knowledgebases/{kbId}/pipelines/{pipelineId}/update \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "scheduleConfig": {
      "enable_automation": true,
      "interval_type": "Daily",
      "interval_time": "09:00",
      "timezone": "UTC"
    }
  }'

Schedule Types#

TypeAdditional Fields
Dailyinterval_time
Weeklyinterval_time, day_of_week
Monthlyinterval_time, date_of_month

Error Responses#

ErrorStatusDescription
PIPELINE_NOT_FOUND404Pipeline not found
EXECUTION_FAILED500Pipeline execution failed
INVALID_SCHEDULE400Invalid schedule configuration
Documentation