---
title: "Bulk run a flow (no table required)"
method: POST
path: "/external/v1/flows/{flow_id}/bulk-run"
tags: ["Flows"]
---

# Bulk run a flow (no table required)

`POST /external/v1/flows/{flow_id}/bulk-run`

## Request

- Base URL: `https://api.databar.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.databar.ai/external/v1/flows/{flow_id}/bulk-run`
- Auth: API key in header `x-apikey`

Start a flow over many input sets and return one ``task_id``.

Poll ``GET /tasks/{task_id}``. Results are aligned to ``inputs``: one
element per input, in the same order, with ``null`` for misses — same
contract as ``POST /enrichments/{id}/bulk-run``.

Poll with ``?include_trace=true`` to also get ``trace`` in the same alignment:
``trace[i]`` is what the run for ``inputs[i]`` did.

## Path parameters

- `flow_id` string, required

## Request body

- BulkRunFlowIn
  - `inputs` object[], required: One input set per record, in the order you want results back. Each object maps flow input id → value string, same shape as `POST /flows/{id}/run`.

## Response `200`

OK

- TaskOut
  - `task_id` string, required
  - `status` string, required

---

[API](https://skmtc.dev/databar/apis/external-api.md) - [All operations](https://skmtc.dev/databar/apis/external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/databar/apis/external-api/revisions/efe15f8bb9bb?raw)
