Skip to content

Start pipeline runs

POST /api/v1/data-pipelines/runs: request fields and declared response contract.

POST/api/v1/data-pipelines/runs

Authorization
PermissiondataPipelines.manage
Workspace scoperequired
Scope targetworkspace

Request body

Request body fields
FieldTypeRequiredNullableDefault
pipelineIdstringoptionalnon-null—
pipelineRefobjectoptionalnon-null—
pipelineRef.kindstringrequirednon-null—
pipelineRef.packageKeystringrequirednon-null—
pipelineRef.constructKeystringrequirednon-null—
versionIdstringoptionalnon-null—
sourceunknownoptionalnon-null—
s3Keystringoptionalnon-null—
retryFromRunIdstringoptionalnon-null—
idempotencyKeystringoptionalnon-null—

Response

201

Response fields
FieldTypeRequiredNullableDefault
dataobjectrequirednon-null—
data.runIdstringrequirednon-null—
data.pipelineIdstringrequirednon-null—
data.jobIdstringoptionalnon-null—
data.status"queued" | "validating" | "running" | "completed" | "failed" | "partial_failure" | "cancelled"optionalnon-null—

Declared failures

Declared failures
DATA_PIPELINES_REQUEST_IDENTITY_CONFLICT409 — not retryable
NOT_IMPLEMENTED501 — not retryable
VALIDATION_FAILED400 — not retryable

Durable identity

Durable identity
Kindrequest-identity
Request fieldsidempotencyKey
ConflictDATA_PIPELINES_REQUEST_IDENTITY_CONFLICT

Readback

The effect completes asynchronously; reacquire the result with:

  • dataPipelines.runs.get

Request example

Schematic only. Replace placeholders with real values and include all required nested fields.

POST /api/v1/data-pipelines/runs HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json

{}