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

# Create a workflow

`POST /workflows/v1/create`

## Request

- Base URL: `https://api.langdock.com`
- URL: `https://api.langdock.com/workflows/v1/create`
- Auth: HTTP bearer

Creates an inactive unpublished draft owned by the API key user.

## Request body

- object
  - `name` string, required
  - `description` string
  - `timezone` string: Valid IANA timezone.
  - `initialTriggerKind` 'manual' | 'webhook' | 'scheduled' | 'form' | 'integration' | 'meeting_end': Starter trigger. Do not send this together with nodes and edges.
  - `nodes` object[]: Draft nodes. Must be sent together with edges.
  - `edges` object[]: Draft edges. Must be sent together with nodes.
  - `shareWith` object
    - `userIds` string[]
    - `groupIds` string[]
    - `role` 'user' | 'editor'
  - `limits` object: Execution caps. Send null on a field to clear it.
    - `monthlyCostUsd` number, nullable
    - `perRunCostUsd` number, nullable
    - `maxExecutionsPerHour` integer, nullable

## Response `200`

Workflow created successfully

## Other responses

- `400`: Invalid body, mixed initialTriggerKind with a graph, or nodes without edges
- `401`: Invalid or missing API key
- `403`: Missing WORKFLOW_WRITE_API scope, createWorkflows, or shareWorkflows. meeting_end without Meetings returns MEETINGS_FEATURE_FLAG_DISABLED.
- `404`: A shareWith target is unknown or cannot be shared
- `429`: Rate limit exceeded
- `500`: Internal server error

## Changes

- **2026-11-03** `c62bf90b4013`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/langdock/apis/langdock-api/changes/workflows/v1/create/post.md)

---

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