---
title: "Start a workflow asynchronously"
method: POST
path: "/workflow/start"
---

# Start a workflow asynchronously

`POST /workflow/start`

## Request body

- object
  - `workflowName` string, required — The name of the workflow to execute
  - `input` unknown, required
  - `workflowId` string — (Optional) The workflowId to use. Must be unique
  - `catalog` string — The catalog (Temporal task queue) to route the execution to. Falls back to the default catalog.
  - `taskQueue` string — Deprecated alias for `catalog`. If both are sent, `catalog` wins.

## Response `200`

The workflow start result

- object
  - `workflowId` string — The id of the started workflow
  - `runId` string, nullable — The first execution's run id for this workflow

## Other responses

- `400` — Invalid request body, query, or pagination token
- `404` — Workflow execution, workflow type, or catalog not found
- `424` — Workflow dependency failed (e.g. workflow not in a terminal state, or workflow type is unsupported by the selected catalog)
- `500` — Internal server error (e.g. Temporal connection failure)
- `503` — Catalog workflow unavailable (worker not running or still starting). Retry-After header may be set.

## Changes

- **2026-07-03** `fcefb3d33302` — 2 info
  - added the non-success response with the status `424`
  - added the non-success response with the status `503`
- **2026-04-30** `c8798d226c67` — 2 info
  - added the new optional request property `catalog`
  - request property `taskQueue` deprecated
- **2026-04-24** `01552bfa9579` — 2 breaking, 3 warning
  - added `#/components/schemas/ValidationErrorResponse, #/components/schemas/ErrorResponse` to the response body `oneOf` list for the response status `400`
  - the response's body type changed from `object` to no type for status `400`
  - removed the optional property `error` from the response with the `400` status
  - removed the optional property `issues` from the response with the `400` status
  - …1 more
- **2026-04-17** `a3368f919949` — 1 info
  - added the optional property `runId` to the response with the `200` status
- **2026-03-13** `0f0e49049ef1` — 1 breaking, 2 warning, 7 info
  - the response's body type changed from no type to `object` for status `400`
  - removed the request property `catalog`
  - removed the optional property `runId` from the response with the `200` status
  - request property `taskQueue` reactivated
  - …6 more

[Change history](https://skmtc.dev/growthxai/apis/output-ai-api/changes/workflow/start/post.md)

---

[API](https://skmtc.dev/growthxai/apis/output-ai-api.md) · [All operations](https://skmtc.dev/growthxai/apis/output-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/growthxai/output-ai-api/revisions/09a49e598435/schema)
