---
title: "Create a workflow"
method: POST
path: "/workflows"
tags: ["Workflows"]
---

# Create a workflow

`POST /workflows`

Create a new workflow owned by the authenticated user.

**Authentication:** Required.

**Common Use Cases:**
- Save a newly built workflow
- Programmatically provision workflows

**Note:** Workflow names must be unique within your namespace. Creating a
workflow with a name you already use returns a 400 validation error.

## Request body

- object — Request body for creating a new workflow
  - `name` string, required — Unique workflow name/slug within the user's namespace
  - `title` string, required — Human-readable workflow title
  - `contents` object, required — The workflow definition/configuration object
    - `name` string, required — Internal name of the workflow definition
    - `version` string, required — Workflow definition format version
    - `nodes` object, required — Workflow nodes keyed by node id
    - `output` object, required — Output field mappings keyed by output name
    - `schema` object, required — Input/output schema for the workflow
      - `input` object, required — Input fields schema
      - `output` object, required — Output fields schema
    - `metadata` object — Optional workflow metadata
  - `is_public` boolean — Whether the workflow is publicly visible

## Response `201`

Successfully created workflow

- object — Response containing a single workflow's details
  - `workflow` object, required — The workflow details
    - `name` string, required — Unique workflow name/slug within the user's namespace
    - `title` string, required — Human-readable workflow title
    - `user_nickname` string, required — Display name/username of the owner
    - `created_at` string, required — ISO8601 timestamp of workflow creation
    - `is_public` boolean, required — Whether the workflow is publicly visible
    - `contents` object, required — The workflow definition/configuration object

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication required
- `403` — Access denied
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/fal/apis/platform-apis.md) · [All operations](https://skmtc.dev/fal/apis/platform-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fal/platform-apis/revisions/0c7dabf80b00/schema)
