longrun.
Run a workflow

Docs

Workflows / Run a workflow

Run a workflow

Run a published workflow. Replace the sample input with your workflow’s own input names.

POSThttps://uselongrun.app/v1/workflows/{workflow_id}/runs
Request
curl --request POST "https://uselongrun.app/v1/workflows/${WORKFLOW_ID}/runs" \
  --header "Authorization: Bearer ${API_KEY}" \
  --header "Content-Type: application/json" \
  --data "$(jq -n --arg FILE_ID "${FILE_ID}" '{
  "inputs": {
    "document": $FILE_ID
  }
}')"
Accepted · 202
{
  "id": "run_example",
  "status": "queued",
  "outputs": null,
  "error": null,
  "retry_of_run_id": null,
  "created_at": "2026-10-22T10:00:00.000Z",
  "updated_at": "2026-10-22T10:00:00.000Z"
}

The request is accepted, but processing has not finished. Retrieve the run using its ID to get the result.

Get the run result

Request parameters

path
idstringRequired

The workflow ID to use. Copy it from the workflow’s API tab. Replace {id} in the URL with that value.

Example
"${WORKFLOW_ID}"
header
Idempotency-KeystringOptional

Scoped to workspace and operation; same key and payload reuses the run during its seven-day retention period. Changed payload returns 409.

Example
"receipt-1042-v1"

Maximum length: 200 characters.

Request body

inputsobjectOptional

Values for the published workflow’s named inputs. Replace document with the name defined in your workflow.

Example
{
  "document": "${FILE_ID}"
}
outputobjectOptional

Where to deliver generated files. Omit this to use the endpoint’s default destination.

Example
{
  "storage": "temporary"
}

Storage guide · Bubble delivery setup

Show child fields
output.storagestringOptional

temporary stores results in LongRun. bubble delivers them to a connected Bubble app. These are the only supported values. A published workflow uses its configured destination unless you override it.

Example
"temporary"

Default: "temporary"

Allowed values: temporary bubble

output.connection_idstringConditionally required

Required when storage is bubble. Copy the connection ID from Settings → Integrations → Bubble. Not used for temporary storage.

Example
"${STORAGE_CONNECTION_ID}"
output.privatebooleanOptional

Only for Bubble delivery. true creates a private file and requires attach_to. false requests a public upload; access still depends on the receiving app configuration.

Example
false

Default: false

output.attach_tostringConditionally required

Required when storage is bubble and private is true. The Bubble Thing ID that owns the file. See the Bubble integration guide for setup.

Example
"${BUBBLE_THING_ID}"
output.file_namestringOptional

Optional output filename, such as receipt.pdf. Omit it to use the generated timestamp-based name. Applies to either destination.

Example
"receipt.pdf"

Maximum length: 255 characters.

webhook_idsarray of stringOptional

IDs of configured webhook endpoints to notify. Copy these from Settings → Webhooks.

Example
[
  "${WEBHOOK_ID}"
]

Maximum items: 20

Returns

Returns 202 Accepted with a run ID. Processing continues after the response. Retrieve the run until its status is completed, failed, or cancelled.

Retrieve a run →