---
title: "Retrieve comprehensive DAG information"
method: GET
path: "/dags/{fileName}"
tags: ["dags"]
---

# Retrieve comprehensive DAG information

`GET /dags/{fileName}`

Fetches detailed information about a specific DAG definition

## Path parameters

- `fileName` string, regex, required — Name of the DAG file

## Query parameters

- `remoteNode` string

## Response `200`

A successful response

- object — Response object for getting details of a DAG
  - `filePath` string — Absolute file path of the DAG file on disk
  - `dag` DAGDetails — unresolved $ref
  - `localDags` LocalDag[], required — List of local DAGs that are part of this DAG
    - `name` string, required — Name of the local DAG
    - `dag` DAGDetails — unresolved $ref
    - `errors` string[], required — List of errors encountered while processing the local DAG
  - `latestDAGRun` DAGRunDetails, required — Detailed status information for the steps within a DAG-run.
    - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
    - `name` string, regex, required — Name of the DAG
    - `workspace` string — Workspace label value for the DAG-run. Omitted for default DAG-runs and invalid workspace labels.
    - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, required — Numeric status code indicating current DAG-run state: 0: "Not started" 1: "Running" 2: "Failed" 3: "Aborted" 4: "Success" 5: "Queued" 6: "Partial Success" 7: "Waiting for approval" 8: "Rejected"
    - `statusLabel` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'queued' | 'partially_succeeded' | 'waiting' | 'rejected', required — Human-readable status description for the DAG-run
    - `queuedAt` string — RFC 3339 timestamp when the DAG-run was queued
    - `autoRetryCount` integer, required — Number of scheduler-issued DAG auto-retries already consumed for this DAG-run
    - `autoRetryLimit` integer, nullable — Configured DAG-level automatic retry limit captured for this DAG-run; null when DAG-level automatic retry is not configured
    - `scheduleTime` string — RFC 3339 timestamp of when the DAG-run was scheduled to run
    - `startedAt` string, required — RFC 3339 timestamp when the DAG-run started
    - `finishedAt` string, required — RFC 3339 timestamp when the DAG-run finished
    - `artifactsAvailable` boolean, required — Whether artifact files are available for this DAG-run
    - `params` string — Runtime parameters passed to the DAG-run in JSON format
    - `workerId` string — ID of the worker that executed this DAG-run ('local' for local execution)
    - `triggerType` 'unknown' | 'scheduler' | 'manual' | 'webhook' | 'subdag' | 'retry' | 'catchup' — How the DAG-run was initiated
    - `labels` string[] — List of labels for categorizing and filtering DAG runs
    - `tags` string[] — Deprecated alias for labels. List of labels for categorizing and filtering DAG runs
    - `rootDAGRunName` string, required — Name of the root DAG-run
    - `rootDAGRunId` string, required — ID of the root DAG-run
    - `parentDAGRunName` string — Name of the parent DAG-run
    - `parentDAGRunId` string — ID of the parent DAG-run
    - `log` string, required — Path to the log file
    - `nodes` Node[], required — Status of individual steps within the DAG-run
      - `step` Step, required — Individual task definition that performs a specific operation in a DAG-run
        - `name` string, required — Unique identifier for the step within the DAG-run
        - `id` string — Optional short identifier for the step. Can be used in variable references like ${id.stdout} to access step properties. Must be unique within the DAG if specified
        - `description` string — Human-readable description of what the step does
        - `dir` string — Working directory for executing the step's command
        - `commands` CommandEntry[] — List of commands to execute sequentially
          - `command` string, required — The command to execute
          - `args` string[] — Arguments for the command
        - `script` string — Script content if the step executes a script file
        - `stdout` string — File path for capturing standard output
        - `stderr` string — File path for capturing standard error
        - `output` string — Variable name to store the step's output
        - `call` string — The name of the DAG to execute as a sub DAG-run
        - `params` string — Parameters to pass to the sub DAG-run in JSON format
        - `parallel` object — Configuration for parallel execution of the step
          - `items` union — Array of items to process in parallel. Can be a static array or a reference to a variable containing an array
            - string[]
            - string
          - `maxConcurrent` integer — Maximum number of parallel executions. Default is 10 if not specified
        - `depends` string[] — List of step names that must complete before this step can start
        - `repeatPolicy` RepeatPolicy — Configuration for step repeat behavior
          - `repeat` 'while' | 'until' — Repeat execution mode for steps
          - `interval` integer — Time in seconds to wait between repeat attempts
          - `limit` integer — Maximum number of times to repeat the step
          - `backoff` union
            - boolean — When true, uses default multiplier of 2.0
            - number, float — Custom exponential backoff multiplier
          - `maxIntervalSec` integer — Maximum interval in seconds (caps exponential growth)
          - `condition` Condition — Precondition that must be satisfied before running a step or DAG-run
            - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
            - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
            - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
            - `error` string — Error message if the condition is not met
            - `matched` boolean — Whether the condition was met
          - `exitCode` integer[] — List of exit codes that trigger repeat behavior
        - `mailOnError` boolean — Whether to send email notifications on step failure
        - `preconditions` Condition[] — Conditions that must be met before the step can start
          - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
          - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
          - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
          - `error` string — Error message if the condition is not met
          - `matched` boolean — Whether the condition was met
        - `timeoutSec` integer — Maximum execution time for the step in seconds. If set, this timeout takes precedence over the DAG-level timeout for this step.
        - `executorConfig` object — Executor configuration for this step
          - `type` string — Type of executor (e.g., 'wait', 'http', 'docker', 'command')
          - `config` object — Executor-specific configuration
        - `router` object — Router configuration for switch/case routing
          - `value` string, required — Expression to evaluate (e.g., '${STATUS}')
          - `routes` object[], required
            - `pattern` string, required — Match pattern (exact or 're:regex')
            - `targets` string[], required — Step names to route to
        - `approval` ApprovalConfig — Configuration for a human approval gate on a step
          - `prompt` string — Message displayed to the approver
          - `input` string[] — List of expected input field names from the approver
          - `required` string[] — Subset of input fields that must be provided
          - `rewindTo` string — Optional step name to restart from when the approver pushes the step back. Must reference the step itself or an upstream dependency.
      - `stdout` string, required — Path to the standard output log file for this step
      - `stderr` string, required — Path to the standard error log file for this step
      - `startedAt` string, required — RFC3339 timestamp when the step started
      - `finishedAt` string, required — RFC3339 timestamp when the step finished
      - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, required — Numeric status code indicating current node state: 0: "Not started" 1: "Running" 2: "Failed" 3: "Aborted" 4: "Success" 5: "Skipped" 6: "Partial Success" 7: "Waiting for approval" 8: "Rejected" 9: "Retrying"
      - `statusLabel` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'skipped' | 'partially_succeeded' | 'waiting' | 'rejected' | 'retrying', required — Human-readable status description for the node
      - `retryCount` integer, required — Number of retry attempts made for this step
      - `doneCount` integer, required — Number of successful completions for repeating steps
      - `subRuns` SubDAGRun[] — List of sub DAG-runs associated with this step
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `subRunsRepeated` SubDAGRun[] — List of repeated sub DAG-runs when using repeatPolicy
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `error` string — Error message if the step failed
      - `approvedAt` string — RFC3339 timestamp when the step was approved
      - `approvedBy` string — Username of who approved the step
      - `approvalInputs` object — Key-value inputs provided during approval
      - `rejectedAt` string — RFC3339 timestamp when the step was rejected
      - `rejectedBy` string — Username of who rejected the step
      - `rejectionReason` string — Optional reason for rejection
      - `approvalIteration` integer — Number of times this step has been pushed back for re-execution
      - `pushBackInputs` object — Key-value inputs from the last push-back, injected as environment variables during re-execution
      - `pushBackHistory` PushBackHistoryEntry[] — Chronological push-back history for this step
        - `iteration` integer, required — Push-back iteration number
        - `by` string — Authenticated user who pushed the step back
        - `at` string, date-time — RFC3339 timestamp when the push-back was recorded
        - `inputs` object — Inputs provided for this push-back event
    - `onExit` Node — Status of an individual step within a DAG-run
      - `step` Step, required — Individual task definition that performs a specific operation in a DAG-run
        - `name` string, required — Unique identifier for the step within the DAG-run
        - `id` string — Optional short identifier for the step. Can be used in variable references like ${id.stdout} to access step properties. Must be unique within the DAG if specified
        - `description` string — Human-readable description of what the step does
        - `dir` string — Working directory for executing the step's command
        - `commands` CommandEntry[] — List of commands to execute sequentially
          - `command` string, required — The command to execute
          - `args` string[] — Arguments for the command
        - `script` string — Script content if the step executes a script file
        - `stdout` string — File path for capturing standard output
        - `stderr` string — File path for capturing standard error
        - `output` string — Variable name to store the step's output
        - `call` string — The name of the DAG to execute as a sub DAG-run
        - `params` string — Parameters to pass to the sub DAG-run in JSON format
        - `parallel` object — Configuration for parallel execution of the step
          - `items` union — Array of items to process in parallel. Can be a static array or a reference to a variable containing an array
            - string[]
            - string
          - `maxConcurrent` integer — Maximum number of parallel executions. Default is 10 if not specified
        - `depends` string[] — List of step names that must complete before this step can start
        - `repeatPolicy` RepeatPolicy — Configuration for step repeat behavior
          - `repeat` 'while' | 'until' — Repeat execution mode for steps
          - `interval` integer — Time in seconds to wait between repeat attempts
          - `limit` integer — Maximum number of times to repeat the step
          - `backoff` union
            - boolean — When true, uses default multiplier of 2.0
            - number, float — Custom exponential backoff multiplier
          - `maxIntervalSec` integer — Maximum interval in seconds (caps exponential growth)
          - `condition` Condition — Precondition that must be satisfied before running a step or DAG-run
            - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
            - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
            - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
            - `error` string — Error message if the condition is not met
            - `matched` boolean — Whether the condition was met
          - `exitCode` integer[] — List of exit codes that trigger repeat behavior
        - `mailOnError` boolean — Whether to send email notifications on step failure
        - `preconditions` Condition[] — Conditions that must be met before the step can start
          - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
          - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
          - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
          - `error` string — Error message if the condition is not met
          - `matched` boolean — Whether the condition was met
        - `timeoutSec` integer — Maximum execution time for the step in seconds. If set, this timeout takes precedence over the DAG-level timeout for this step.
        - `executorConfig` object — Executor configuration for this step
          - `type` string — Type of executor (e.g., 'wait', 'http', 'docker', 'command')
          - `config` object — Executor-specific configuration
        - `router` object — Router configuration for switch/case routing
          - `value` string, required — Expression to evaluate (e.g., '${STATUS}')
          - `routes` object[], required
            - `pattern` string, required — Match pattern (exact or 're:regex')
            - `targets` string[], required — Step names to route to
        - `approval` ApprovalConfig — Configuration for a human approval gate on a step
          - `prompt` string — Message displayed to the approver
          - `input` string[] — List of expected input field names from the approver
          - `required` string[] — Subset of input fields that must be provided
          - `rewindTo` string — Optional step name to restart from when the approver pushes the step back. Must reference the step itself or an upstream dependency.
      - `stdout` string, required — Path to the standard output log file for this step
      - `stderr` string, required — Path to the standard error log file for this step
      - `startedAt` string, required — RFC3339 timestamp when the step started
      - `finishedAt` string, required — RFC3339 timestamp when the step finished
      - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, required — Numeric status code indicating current node state: 0: "Not started" 1: "Running" 2: "Failed" 3: "Aborted" 4: "Success" 5: "Skipped" 6: "Partial Success" 7: "Waiting for approval" 8: "Rejected" 9: "Retrying"
      - `statusLabel` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'skipped' | 'partially_succeeded' | 'waiting' | 'rejected' | 'retrying', required — Human-readable status description for the node
      - `retryCount` integer, required — Number of retry attempts made for this step
      - `doneCount` integer, required — Number of successful completions for repeating steps
      - `subRuns` SubDAGRun[] — List of sub DAG-runs associated with this step
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `subRunsRepeated` SubDAGRun[] — List of repeated sub DAG-runs when using repeatPolicy
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `error` string — Error message if the step failed
      - `approvedAt` string — RFC3339 timestamp when the step was approved
      - `approvedBy` string — Username of who approved the step
      - `approvalInputs` object — Key-value inputs provided during approval
      - `rejectedAt` string — RFC3339 timestamp when the step was rejected
      - `rejectedBy` string — Username of who rejected the step
      - `rejectionReason` string — Optional reason for rejection
      - `approvalIteration` integer — Number of times this step has been pushed back for re-execution
      - `pushBackInputs` object — Key-value inputs from the last push-back, injected as environment variables during re-execution
      - `pushBackHistory` PushBackHistoryEntry[] — Chronological push-back history for this step
        - `iteration` integer, required — Push-back iteration number
        - `by` string — Authenticated user who pushed the step back
        - `at` string, date-time — RFC3339 timestamp when the push-back was recorded
        - `inputs` object — Inputs provided for this push-back event
    - `onSuccess` Node — Status of an individual step within a DAG-run
      - `step` Step, required — Individual task definition that performs a specific operation in a DAG-run
        - `name` string, required — Unique identifier for the step within the DAG-run
        - `id` string — Optional short identifier for the step. Can be used in variable references like ${id.stdout} to access step properties. Must be unique within the DAG if specified
        - `description` string — Human-readable description of what the step does
        - `dir` string — Working directory for executing the step's command
        - `commands` CommandEntry[] — List of commands to execute sequentially
          - `command` string, required — The command to execute
          - `args` string[] — Arguments for the command
        - `script` string — Script content if the step executes a script file
        - `stdout` string — File path for capturing standard output
        - `stderr` string — File path for capturing standard error
        - `output` string — Variable name to store the step's output
        - `call` string — The name of the DAG to execute as a sub DAG-run
        - `params` string — Parameters to pass to the sub DAG-run in JSON format
        - `parallel` object — Configuration for parallel execution of the step
          - `items` union — Array of items to process in parallel. Can be a static array or a reference to a variable containing an array
            - string[]
            - string
          - `maxConcurrent` integer — Maximum number of parallel executions. Default is 10 if not specified
        - `depends` string[] — List of step names that must complete before this step can start
        - `repeatPolicy` RepeatPolicy — Configuration for step repeat behavior
          - `repeat` 'while' | 'until' — Repeat execution mode for steps
          - `interval` integer — Time in seconds to wait between repeat attempts
          - `limit` integer — Maximum number of times to repeat the step
          - `backoff` union
            - boolean — When true, uses default multiplier of 2.0
            - number, float — Custom exponential backoff multiplier
          - `maxIntervalSec` integer — Maximum interval in seconds (caps exponential growth)
          - `condition` Condition — Precondition that must be satisfied before running a step or DAG-run
            - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
            - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
            - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
            - `error` string — Error message if the condition is not met
            - `matched` boolean — Whether the condition was met
          - `exitCode` integer[] — List of exit codes that trigger repeat behavior
        - `mailOnError` boolean — Whether to send email notifications on step failure
        - `preconditions` Condition[] — Conditions that must be met before the step can start
          - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
          - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
          - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
          - `error` string — Error message if the condition is not met
          - `matched` boolean — Whether the condition was met
        - `timeoutSec` integer — Maximum execution time for the step in seconds. If set, this timeout takes precedence over the DAG-level timeout for this step.
        - `executorConfig` object — Executor configuration for this step
          - `type` string — Type of executor (e.g., 'wait', 'http', 'docker', 'command')
          - `config` object — Executor-specific configuration
        - `router` object — Router configuration for switch/case routing
          - `value` string, required — Expression to evaluate (e.g., '${STATUS}')
          - `routes` object[], required
            - `pattern` string, required — Match pattern (exact or 're:regex')
            - `targets` string[], required — Step names to route to
        - `approval` ApprovalConfig — Configuration for a human approval gate on a step
          - `prompt` string — Message displayed to the approver
          - `input` string[] — List of expected input field names from the approver
          - `required` string[] — Subset of input fields that must be provided
          - `rewindTo` string — Optional step name to restart from when the approver pushes the step back. Must reference the step itself or an upstream dependency.
      - `stdout` string, required — Path to the standard output log file for this step
      - `stderr` string, required — Path to the standard error log file for this step
      - `startedAt` string, required — RFC3339 timestamp when the step started
      - `finishedAt` string, required — RFC3339 timestamp when the step finished
      - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, required — Numeric status code indicating current node state: 0: "Not started" 1: "Running" 2: "Failed" 3: "Aborted" 4: "Success" 5: "Skipped" 6: "Partial Success" 7: "Waiting for approval" 8: "Rejected" 9: "Retrying"
      - `statusLabel` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'skipped' | 'partially_succeeded' | 'waiting' | 'rejected' | 'retrying', required — Human-readable status description for the node
      - `retryCount` integer, required — Number of retry attempts made for this step
      - `doneCount` integer, required — Number of successful completions for repeating steps
      - `subRuns` SubDAGRun[] — List of sub DAG-runs associated with this step
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `subRunsRepeated` SubDAGRun[] — List of repeated sub DAG-runs when using repeatPolicy
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `error` string — Error message if the step failed
      - `approvedAt` string — RFC3339 timestamp when the step was approved
      - `approvedBy` string — Username of who approved the step
      - `approvalInputs` object — Key-value inputs provided during approval
      - `rejectedAt` string — RFC3339 timestamp when the step was rejected
      - `rejectedBy` string — Username of who rejected the step
      - `rejectionReason` string — Optional reason for rejection
      - `approvalIteration` integer — Number of times this step has been pushed back for re-execution
      - `pushBackInputs` object — Key-value inputs from the last push-back, injected as environment variables during re-execution
      - `pushBackHistory` PushBackHistoryEntry[] — Chronological push-back history for this step
        - `iteration` integer, required — Push-back iteration number
        - `by` string — Authenticated user who pushed the step back
        - `at` string, date-time — RFC3339 timestamp when the push-back was recorded
        - `inputs` object — Inputs provided for this push-back event
    - `onFailure` Node — Status of an individual step within a DAG-run
      - `step` Step, required — Individual task definition that performs a specific operation in a DAG-run
        - `name` string, required — Unique identifier for the step within the DAG-run
        - `id` string — Optional short identifier for the step. Can be used in variable references like ${id.stdout} to access step properties. Must be unique within the DAG if specified
        - `description` string — Human-readable description of what the step does
        - `dir` string — Working directory for executing the step's command
        - `commands` CommandEntry[] — List of commands to execute sequentially
          - `command` string, required — The command to execute
          - `args` string[] — Arguments for the command
        - `script` string — Script content if the step executes a script file
        - `stdout` string — File path for capturing standard output
        - `stderr` string — File path for capturing standard error
        - `output` string — Variable name to store the step's output
        - `call` string — The name of the DAG to execute as a sub DAG-run
        - `params` string — Parameters to pass to the sub DAG-run in JSON format
        - `parallel` object — Configuration for parallel execution of the step
          - `items` union — Array of items to process in parallel. Can be a static array or a reference to a variable containing an array
            - string[]
            - string
          - `maxConcurrent` integer — Maximum number of parallel executions. Default is 10 if not specified
        - `depends` string[] — List of step names that must complete before this step can start
        - `repeatPolicy` RepeatPolicy — Configuration for step repeat behavior
          - `repeat` 'while' | 'until' — Repeat execution mode for steps
          - `interval` integer — Time in seconds to wait between repeat attempts
          - `limit` integer — Maximum number of times to repeat the step
          - `backoff` union
            - boolean — When true, uses default multiplier of 2.0
            - number, float — Custom exponential backoff multiplier
          - `maxIntervalSec` integer — Maximum interval in seconds (caps exponential growth)
          - `condition` Condition — Precondition that must be satisfied before running a step or DAG-run
            - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
            - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
            - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
            - `error` string — Error message if the condition is not met
            - `matched` boolean — Whether the condition was met
          - `exitCode` integer[] — List of exit codes that trigger repeat behavior
        - `mailOnError` boolean — Whether to send email notifications on step failure
        - `preconditions` Condition[] — Conditions that must be met before the step can start
          - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
          - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
          - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
          - `error` string — Error message if the condition is not met
          - `matched` boolean — Whether the condition was met
        - `timeoutSec` integer — Maximum execution time for the step in seconds. If set, this timeout takes precedence over the DAG-level timeout for this step.
        - `executorConfig` object — Executor configuration for this step
          - `type` string — Type of executor (e.g., 'wait', 'http', 'docker', 'command')
          - `config` object — Executor-specific configuration
        - `router` object — Router configuration for switch/case routing
          - `value` string, required — Expression to evaluate (e.g., '${STATUS}')
          - `routes` object[], required
            - `pattern` string, required — Match pattern (exact or 're:regex')
            - `targets` string[], required — Step names to route to
        - `approval` ApprovalConfig — Configuration for a human approval gate on a step
          - `prompt` string — Message displayed to the approver
          - `input` string[] — List of expected input field names from the approver
          - `required` string[] — Subset of input fields that must be provided
          - `rewindTo` string — Optional step name to restart from when the approver pushes the step back. Must reference the step itself or an upstream dependency.
      - `stdout` string, required — Path to the standard output log file for this step
      - `stderr` string, required — Path to the standard error log file for this step
      - `startedAt` string, required — RFC3339 timestamp when the step started
      - `finishedAt` string, required — RFC3339 timestamp when the step finished
      - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, required — Numeric status code indicating current node state: 0: "Not started" 1: "Running" 2: "Failed" 3: "Aborted" 4: "Success" 5: "Skipped" 6: "Partial Success" 7: "Waiting for approval" 8: "Rejected" 9: "Retrying"
      - `statusLabel` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'skipped' | 'partially_succeeded' | 'waiting' | 'rejected' | 'retrying', required — Human-readable status description for the node
      - `retryCount` integer, required — Number of retry attempts made for this step
      - `doneCount` integer, required — Number of successful completions for repeating steps
      - `subRuns` SubDAGRun[] — List of sub DAG-runs associated with this step
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `subRunsRepeated` SubDAGRun[] — List of repeated sub DAG-runs when using repeatPolicy
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `error` string — Error message if the step failed
      - `approvedAt` string — RFC3339 timestamp when the step was approved
      - `approvedBy` string — Username of who approved the step
      - `approvalInputs` object — Key-value inputs provided during approval
      - `rejectedAt` string — RFC3339 timestamp when the step was rejected
      - `rejectedBy` string — Username of who rejected the step
      - `rejectionReason` string — Optional reason for rejection
      - `approvalIteration` integer — Number of times this step has been pushed back for re-execution
      - `pushBackInputs` object — Key-value inputs from the last push-back, injected as environment variables during re-execution
      - `pushBackHistory` PushBackHistoryEntry[] — Chronological push-back history for this step
        - `iteration` integer, required — Push-back iteration number
        - `by` string — Authenticated user who pushed the step back
        - `at` string, date-time — RFC3339 timestamp when the push-back was recorded
        - `inputs` object — Inputs provided for this push-back event
    - `onAbort` Node — Status of an individual step within a DAG-run
      - `step` Step, required — Individual task definition that performs a specific operation in a DAG-run
        - `name` string, required — Unique identifier for the step within the DAG-run
        - `id` string — Optional short identifier for the step. Can be used in variable references like ${id.stdout} to access step properties. Must be unique within the DAG if specified
        - `description` string — Human-readable description of what the step does
        - `dir` string — Working directory for executing the step's command
        - `commands` CommandEntry[] — List of commands to execute sequentially
          - `command` string, required — The command to execute
          - `args` string[] — Arguments for the command
        - `script` string — Script content if the step executes a script file
        - `stdout` string — File path for capturing standard output
        - `stderr` string — File path for capturing standard error
        - `output` string — Variable name to store the step's output
        - `call` string — The name of the DAG to execute as a sub DAG-run
        - `params` string — Parameters to pass to the sub DAG-run in JSON format
        - `parallel` object — Configuration for parallel execution of the step
          - `items` union — Array of items to process in parallel. Can be a static array or a reference to a variable containing an array
            - string[]
            - string
          - `maxConcurrent` integer — Maximum number of parallel executions. Default is 10 if not specified
        - `depends` string[] — List of step names that must complete before this step can start
        - `repeatPolicy` RepeatPolicy — Configuration for step repeat behavior
          - `repeat` 'while' | 'until' — Repeat execution mode for steps
          - `interval` integer — Time in seconds to wait between repeat attempts
          - `limit` integer — Maximum number of times to repeat the step
          - `backoff` union
            - boolean — When true, uses default multiplier of 2.0
            - number, float — Custom exponential backoff multiplier
          - `maxIntervalSec` integer — Maximum interval in seconds (caps exponential growth)
          - `condition` Condition — Precondition that must be satisfied before running a step or DAG-run
            - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
            - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
            - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
            - `error` string — Error message if the condition is not met
            - `matched` boolean — Whether the condition was met
          - `exitCode` integer[] — List of exit codes that trigger repeat behavior
        - `mailOnError` boolean — Whether to send email notifications on step failure
        - `preconditions` Condition[] — Conditions that must be met before the step can start
          - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
          - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
          - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
          - `error` string — Error message if the condition is not met
          - `matched` boolean — Whether the condition was met
        - `timeoutSec` integer — Maximum execution time for the step in seconds. If set, this timeout takes precedence over the DAG-level timeout for this step.
        - `executorConfig` object — Executor configuration for this step
          - `type` string — Type of executor (e.g., 'wait', 'http', 'docker', 'command')
          - `config` object — Executor-specific configuration
        - `router` object — Router configuration for switch/case routing
          - `value` string, required — Expression to evaluate (e.g., '${STATUS}')
          - `routes` object[], required
            - `pattern` string, required — Match pattern (exact or 're:regex')
            - `targets` string[], required — Step names to route to
        - `approval` ApprovalConfig — Configuration for a human approval gate on a step
          - `prompt` string — Message displayed to the approver
          - `input` string[] — List of expected input field names from the approver
          - `required` string[] — Subset of input fields that must be provided
          - `rewindTo` string — Optional step name to restart from when the approver pushes the step back. Must reference the step itself or an upstream dependency.
      - `stdout` string, required — Path to the standard output log file for this step
      - `stderr` string, required — Path to the standard error log file for this step
      - `startedAt` string, required — RFC3339 timestamp when the step started
      - `finishedAt` string, required — RFC3339 timestamp when the step finished
      - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, required — Numeric status code indicating current node state: 0: "Not started" 1: "Running" 2: "Failed" 3: "Aborted" 4: "Success" 5: "Skipped" 6: "Partial Success" 7: "Waiting for approval" 8: "Rejected" 9: "Retrying"
      - `statusLabel` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'skipped' | 'partially_succeeded' | 'waiting' | 'rejected' | 'retrying', required — Human-readable status description for the node
      - `retryCount` integer, required — Number of retry attempts made for this step
      - `doneCount` integer, required — Number of successful completions for repeating steps
      - `subRuns` SubDAGRun[] — List of sub DAG-runs associated with this step
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `subRunsRepeated` SubDAGRun[] — List of repeated sub DAG-runs when using repeatPolicy
        - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
        - `params` string — Parameters passed to the sub DAG-run in JSON format
        - `dagName` string — Name of the executed sub-DAG. For chat tool calls, this is the tool DAG name.
      - `error` string — Error message if the step failed
      - `approvedAt` string — RFC3339 timestamp when the step was approved
      - `approvedBy` string — Username of who approved the step
      - `approvalInputs` object — Key-value inputs provided during approval
      - `rejectedAt` string — RFC3339 timestamp when the step was rejected
      - `rejectedBy` string — Username of who rejected the step
      - `rejectionReason` string — Optional reason for rejection
      - `approvalIteration` integer — Number of times this step has been pushed back for re-execution
      - `pushBackInputs` object — Key-value inputs from the last push-back, injected as environment variables during re-execution
      - `pushBackHistory` PushBackHistoryEntry[] — Chronological push-back history for this step
        - `iteration` integer, required — Push-back iteration number
        - `by` string — Authenticated user who pushed the step back
        - `at` string, date-time — RFC3339 timestamp when the push-back was recorded
        - `inputs` object — Inputs provided for this push-back event
    - `preconditions` Condition[] — List of preconditions that must be met before the DAG-run can start
      - `condition` string, required — Expression or check to evaluate. When `expected` is omitted, the value runs as a command check using the same variable expansion rules as shell `command` steps.
      - `expected` string — Expected result of the condition evaluation. When set, Dagu compares the evaluated string output instead of using command exit status.
      - `negate` boolean — If true, inverts the condition result (run when condition does NOT match)
      - `error` string — Error message if the condition is not met
      - `matched` boolean — Whether the condition was met
    - `specFromFile` boolean — Whether this DAG-run still has a usable source file on disk, so reschedule can load the current spec from that file instead of the stored historical YAML snapshot.
    - `sourceFileName` string, regex — Name of the DAG file
  - `suspended` boolean, required — Whether the DAG is suspended
  - `errors` string[], required — List of errors encountered during the request
  - `spec` string — The DAG specification in YAML format
  - `editorHints` DAGEditorHints — Editor-only metadata used to synthesize per-document schema hints
    - `inheritedLegacyDefinitions` InheritedLegacyDefinitionHint[], required — Deprecated legacy execution definitions inherited from base config and available to the current DAG
      - `name` string, required — Deprecated legacy execution definition name
      - `targetType` string, required — Builtin executor type that the deprecated legacy execution definition expands to
      - `description` string — Optional deprecated legacy execution definition description
      - `inputSchema` object, required — Resolved JSON Schema object used to validate and document with input
      - `outputSchema` object — Resolved JSON Schema object used to validate stdout JSON output
    - `inheritedCustomActions` InheritedCustomActionHint[] — Custom actions inherited from base config and available to the current DAG
      - `name` string, required — Custom action name
      - `description` string — Optional custom action description
      - `inputSchema` object, required — Resolved JSON Schema object used to validate and document with input
      - `outputSchema` object — Resolved JSON Schema object used to validate stdout JSON output

## Other responses

- `default` — Generic error response

## Changes

- **2026-05-24** (v1) `8a2d5d3e9608` — 1 warning
  - added the new `rate_limited` enum value to the `code` response property for the response status `default`
- **2026-05-19** (v1) `7699c11d9c61` — 2 info
  - added the optional property `dag/resources` to the response with the `200` status
  - added the optional property `localDags/items/dag/resources` to the response with the `200` status
- **2026-05-14** (v1) `2ca38e09e5dc` — 1 breaking, 2 info
  - removed the required property `editorHints/inheritedCustomStepTypes` from the response with the `200` status
  - added the optional property `editorHints/inheritedCustomActions` to the response with the `200` status
  - added the required property `editorHints/inheritedLegacyDefinitions` to the response with the `200` status
- **2026-05-07** (v1) `2cbdac74ef19` — 1 info
  - added the optional property `editorHints/inheritedCustomStepTypes/items/outputSchema` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/dagucloud/apis/dagu/changes/dags/:fileName/get.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/8a2d5d3e9608/schema)
