---
title: "Creates a simple flow that runs one rapid blueprint over every datapoint of its items."
method: POST
path: "/flow/simple"
tags: ["SimpleFlow"]
---

# Creates a simple flow that runs one rapid blueprint over every datapoint of its items.

`POST /flow/simple`

The blueprint is fixed once the flow has items. Every image collects up to MaxResponses responses; an item ending by time-to-live or stop completes when it averages MinResponses per image.

## Request body

- CreateSimpleFlowEndpointInput
  - `name` string, required — The name of the flow.
  - `blueprint` IFlowRapidBlueprint, required
    - `_t` 'ClassifyBlueprint', required
    - `title` string, required
    - `categories` ClassifyBlueprintCategory[], required
      - `label` string, required
      - `value` string, required
  - `maxResponses` integer, nullable — The number of accepted responses per image after which the image stops collecting. Defaults to 5, at least MinResponses.
  - `minResponses` integer, nullable — The minimum average number of accepted responses per image for an item ending by time-to-live or stop to count as completed. Defaults to 3, at least 1.
  - `audienceId` string, nullable — Optional audience ID. When provided, the flow will only be served to users in this audience.
  - `validationSetId` string, nullable — Optional ID of the validation set to use.
  - `serveToResponseRatio` number, double, nullable — Ratio of concurrent serves to responses. When set, limits serving to avoid over-collection. Defaults to 0.8.
  - `serveTimeoutSeconds` integer, nullable — Time in seconds a user has to submit an answer after loading the task. Defaults to 40.
  - `featureFlags` FeatureFlag[], nullable — Optional feature flags to enable for this flow.
    - `key` string, required
    - `value` string, required
  - `targetResponseCount` integer, nullable — Target average response count per completed item for PID rate control. Defaults to MaxResponses times 24, a typical batch.
  - `pidProportionalGain` number, double, nullable — PID proportional gain. Defaults to 0.
  - `pidIntegralGain` number, double, nullable — PID integral gain. Defaults to 0.003.
  - `pidDerivativeGain` number, double, nullable — PID derivative gain. Defaults to 0.
  - `pidOutputOffset` number, double, nullable — Constant offset added to the PID output before clamping, shifting the controller's operating point. Defaults to 25.
  - `pidMinSessionsPerMinute` integer, nullable — Minimum sessions per minute the PID can set. Defaults to 20.
  - `pidMaxSessionsPerMinute` integer, nullable — Maximum sessions per minute the PID can set. Defaults to 50.
  - `pidBatchMode` 'Total' | 'PerBatch' | 'PerBatchTimeWeighted', nullable — How PID output maps to campaign rate. Total: direct rate. PerBatch: multiplied by active batch count. PerBatchTimeWeighted: multiplied by time-weighted batch count. Defaults to PerBatch.
  - `drainDurationSeconds` integer, nullable — Duration in seconds for draining flow items. Defaults to 40.

## Response `200`

OK

- CreateSimpleFlowEndpointOutput
  - `flowId` string, required — The ID of the created simple flow.

## Other responses

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

## Changes

- **2026-09-23** `229a5989cf68` — 1 warning
  - removed the request property `defaultTimeToLiveSeconds`
- **2026-09-20** `71d1f82c030f` — 2 warning, 2 info
  - removed the request property `maxDatapointsPerItem`
  - removed the request property `responsesRequired`
  - added the new optional request property `maxResponses`
  - added the new optional request property `minResponses`
- **2026-09-19** `0ed57e29d31d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/rapidata/apis/rapidata-api/changes/flow/simple/post.md)

---

[API](https://skmtc.dev/rapidata/apis/rapidata-api.md) · [All operations](https://skmtc.dev/rapidata/apis/rapidata-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rapidata/apis/rapidata-api/revisions/0cbca856ba0f?raw)
