---
title: "Download Run Artifacts"
method: GET
path: "/api/v1/runs/{id}/artifacts/download"
tags: ["Run Internals"]
---

# Download Run Artifacts

`GET /api/v1/runs/{id}/artifacts/download`

Streams a ZIP archive with the latest captured version of each artifact path.
Stage order, retry number, and then stage ID determine the latest version, matching the artifacts page.
Captures from the graph's boundary nodes are excluded, identified by their `start` and `exit` handler type rather than by node name.

The archive streams, so the response status is sent before the first artifact is read.
A failure after that point aborts the transfer rather than returning `500`.
The ZIP central directory is written last, so a truncated download does not open as a valid archive.

## Path parameters

- `id` string, required

## Response `200`

ZIP archive containing the latest artifact files

## Other responses

- `404` — Run not found
- `500` — Artifact archive could not be prepared

---

[API](https://skmtc.net/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.net/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fabro-sh/fabro-run-api/revisions/1493908ec53f/schema)
