---
title: "Retrieve collected outputs from a DAG-run"
method: GET
path: "/dag-runs/{name}/{dagRunId}/outputs"
tags: ["dag-runs"]
---

# Retrieve collected outputs from a DAG-run

`GET /dag-runs/{name}/{dagRunId}/outputs`

Fetches the outputs.json file containing all step outputs collected during the DAG-run execution. Returns the outputs as a JSON object where keys are the output names (converted from UPPER_CASE to camelCase by default, or custom key if specified) and values are the captured output strings.

## Path parameters

- `name` string, regex, required — Name of the DAG
- `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.

## Query parameters

- `remoteNode` string

## Response `200`

Successfully retrieved outputs. Returns the collected outputs with metadata. If the DAG-run completed but captured no outputs, returns an empty outputs object.

- DAGRunOutputs — Collected outputs from step executions in a DAG-run, including execution metadata. Outputs are populated from string-form output, stdout.outputs, and outputs.write. If the DAG-run completed but no outputs were captured, the outputs object will be empty and metadata fields may be empty strings.
  - `metadata` OutputsMetadata, required — Execution context metadata for the outputs
    - `dagName` string, regex, required — Name of the DAG
    - `dagRunId` string, required — Unique identifier for the DAG-run. The special value 'latest' can be used to reference the most recent DAG-run.
    - `attemptId` string, required — Attempt identifier within the run
    - `status` 'not_started' | 'running' | 'failed' | 'aborted' | 'succeeded' | 'queued' | 'partially_succeeded' | 'waiting' | 'rejected', required — Human-readable status description for the DAG-run
    - `completedAt` string, date-time, required — RFC3339 timestamp when execution completed
    - `params` string — JSON-serialized parameters passed to the DAG
  - `outputs` object, required — Collected step outputs as key-value pairs. String-form output names are converted from UPPER_CASE to camelCase; stdout.outputs and outputs.write keys are preserved. Values are strings in this API response. Empty object if no outputs were captured.

## Other responses

- `404` — DAG-run not found
- `default` — Generic error response

## Changes

- **2026-05-24** (v1) `8a2d5d3e9608` — 2 warning
  - added the new `rate_limited` enum value to the `code` response property for the response status `404`
  - 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 `404`
  - 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/dag-runs/:name/:dagRunId/outputs/get.md)

---

[API](https://skmtc.dev/dagucloud/apis/dagu.md) · [All operations](https://skmtc.dev/dagucloud/apis/dagu/llms.txt) · [OpenAPI document](https://skmtc.dev/dagucloud/apis/dagu/revisions/c5b8d495669e?raw)
