---
title: "Creates a new order with a custom pipeline configuration."
method: POST
path: "/order/complex"
tags: ["Order"]
---

# Creates a new order with a custom pipeline configuration.

`POST /order/complex`

## Request body

- CreateComplexOrderEndpointInput
  - `orderName` string, required — The name of the order.
  - `pipeline` IPipeline, required
    - `_t` 'CreateSimplePipelineModel', required
    - `artifacts` IPipelineArtifact[], required
      - `_t` 'CreateDatasetArtifactModel', required
      - `identifier` string, required
      - `dataset` IDataset, required
        - `_t` 'CloneDatasetModel', required
        - `datasetToCloneId` string, required
        - `datasetName` string, required
    - `pipelineSteps` IPipelineStep[], required
      - union
        - object
          - `_t` 'DatasetEvaluationStepModel', required
          - `datasetArtifactId` string, required
          - `aggregationResultFileArtifactId` string, required
          - `evaluationResultFileArtifactId` string, required
          - `receiver` string, required
        - object
          - `_t` 'SendCompletionMailStepModel', required
          - `receiver` string, required
          - `resultsFileArtifactIdentifier` string, required
        - object
          - `_t` 'WorkflowAggregationStepModel', required
          - `campaignArtifactId` string, required
          - `workflowArtifactId` string, required
          - `fileArtifactId` string, required
          - `aggregatorType` unknown
          - `demographicKeys` string[], nullable
        - object
          - `_t` 'WorkflowLabelingStepModel', required
          - `workflowArtifactId` string, required
    - `namePrefix` string, required
  - `isDemo` boolean — Whether the order is a demo.
  - `precedingOrderId` string, nullable — Optional ID of the order that must complete before this order starts processing.

## Response `200`

OK

- CreateComplexOrderEndpointOutput
  - `datasetId` string, nullable — The dataset ID of the created order.
  - `orderId` string, required — The ID of the created order.
  - `campaignId` string, nullable — The campaign ID of the created order.
  - `pipelineId` string, required — The pipeline ID of the created order.

## Other responses

- `400` — Bad Request
- `401` — Unauthenticated
- `403` — Forbidden

---

[API](https://skmtc.net/rapidata/apis/rapidata-api.md) · [All operations](https://skmtc.net/rapidata/apis/rapidata-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rapidata/rapidata-api/revisions/e42ec51c7b88/schema)
