---
title: "Create a new DAG definition"
method: POST
path: "/dags"
tags: ["dags"]
---

# Create a new DAG definition

`POST /dags`

Creates a new empty DAG file with the specified name

## Query parameters

- `remoteNode` string

## Request body

- object
  - `name` string, regex, required — Name of the DAG
  - `spec` string — Optional DAG spec in YAML format to initialize the DAG. If provided, the spec will be validated before creation.

## Response `201`

A successful response

- object
  - `name` string, required — Name of the newly created DAG

## Other responses

- `400` — Invalid DAG spec
- `default` — Generic error response

## Changes

- **2026-07-23** (v1) `75b8e91aaf57` — 6 warning
  - added the new `conflict` enum value to the `code` response property for the response status `400`
  - added the new `conflict` enum value to the `code` response property for the response status `default`
  - added the new `human_task_resume_failed` enum value to the `code` response property for the response status `400`
  - added the new `human_task_resume_failed` enum value to the `code` response property for the response status `default`
  - …2 more
- **2026-05-24** (v1) `8a2d5d3e9608` — 2 warning
  - added the new `rate_limited` enum value to the `code` response property for the response status `400`
  - added the new `rate_limited` enum value to the `code` response property for the response status `default`
- **2026-04-30** (v1) `50e1d517afc1` — 2 info
  - removed the `rate_limited` enum value from the `code` response property for the response status `400`
  - removed the `rate_limited` enum value from the `code` response property for the response status `default`

[Change history](https://skmtc.dev/dagucloud/apis/dagu/changes/dags/post.md)

---

[API](https://skmtc.dev/dagucloud/apis/dagu.md) · [All operations](https://skmtc.dev/dagucloud/apis/dagu/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dagucloud/dagu/revisions/9fcb8e054188/schema)
