---
title: "Start a run"
method: POST
path: "/runs/{workflow_id}"
tags: ["runs"]
---

# Start a run

`POST /runs/{workflow_id}`

Creates one or more runs against the given workflow and queues them for execution. Pre-flight checks: balance sufficient, concurrency limit, workflow exists. Runs that fail to queue are marked FAILED immediately so they stop counting toward the concurrency limit.

## Path parameters

- `workflow_id` string, uuid, required — workflow to create runs for

## Request body

- RunCreateRequest — Request body for creating one or more runs.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `runs` RunConfig[], nullable, required — Per-run variable configurations. One run is created per entry.
    - `phone_id` string — PhoneID pins this run to a specific phone (for dedicated phones).
    - `variables` object[], nullable, required — Array of variable maps keyed by node ID.
  - `start_timeout_seconds` integer — How long a queued run may wait for a phone before it is auto-cancelled.

## Response `201`

Created

- RunCreateResponse — Returned after successfully creating one or more runs.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `run_ids` string[], nullable, required — List of created run identifiers.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/axilioai/apis/axilio-api.md) · [All operations](https://skmtc.net/axilioai/apis/axilio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/axilioai/axilio-api/versions/108ab4b41051/schema)
