---
title: "Get the workspace-wide asset <-> runnable graph"
method: GET
path: "/w/{workspace}/assets/graph"
tags: ["asset"]
---

# Get the workspace-wide asset <-> runnable graph

`GET /w/{workspace}/assets/graph`

## Path parameters

- `workspace` string, required

## Query parameters

- `asset_kinds` string
- `folder` string

## Response `200`

asset graph nodes, lineage edges and trigger edges

- object
  - `assets` object[], required
    - `kind` 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume', required
    - `path` string, required
    - `fork_materialization` 'fork' | 'deferred' — Fork workspaces only — 'fork' when this ducklake asset was materialized in the fork itself, 'deferred' when reads fall back to the parent workspace's current table via a defer view. Omitted otherwise.
  - `runnables` object[], required
    - `path` string, required
    - `usage_kind` 'script' | 'flow' | 'job', required
    - `in_pipeline` boolean — True iff the script is a pipeline member (deployed with `// pipeline`). Omitted when false.
    - `macros` object[] — Macros this script provides to the workspace registry (deployed `// macros` library). Omitted when empty.
      - `name` string, required
      - `params` string, required — verbatim parameter list
      - `is_table` boolean, required
  - `edges` object[], required
    - `runnable_path` string, required
    - `runnable_kind` 'script' | 'flow' | 'job', required
    - `asset_kind` 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume', required
    - `asset_path` string, required
    - `access_type` 'r' | 'w' | 'rw', nullable
  - `triggers` union[], required
    - union
      - object — Asset trigger edge (`// on <asset>`)
        - `trigger_kind` 'asset', required
        - `asset_kind` 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume', required
        - `asset_path` string, required
        - `runnable_kind` 'script' | 'flow' | 'job', required
        - `runnable_path` string, required
      - object — Native trigger edge (schedule, email, kafka, ...). `path` is the trigger row's path.
        - `trigger_kind` 'schedule' | 'email' | 'kafka' | 'mqtt' | 'nats' | 'postgres' | 'sqs' | 'gcp', required
        - `path` string, required
        - `runnable_kind` 'script' | 'flow' | 'job', required
        - `runnable_path` string, required
  - `macro_edges` object[] — Macro-library → consumer edges (deploy-recorded call detection plus `// use`). Omitted when empty.
    - `lib_path` string, required
    - `consumer_path` string, required
    - `macro_names` string[], required
    - `via_use` boolean, required
  - `test_edges` object[] — Ordering-only "must-run-after" edges — a `// data_test relationships` (or custom test reading a pipeline asset) requires the referenced asset's producer to run before the tested script. Not a data-consumption edge; fed into the cascade topo-sort so cold runs order correctly. Omitted when empty.
    - `producer_kind` 'script' | 'flow' | 'job', required
    - `producer_path` string, required
    - `runnable_kind` 'script' | 'flow' | 'job', required
    - `runnable_path` string, required
    - `asset_kind` 's3object' | 'resource' | 'ducklake' | 'datatable' | 'volume', required
    - `asset_path` string, required

## Changes

- **2026-07-05** `3aaba0d0cbb5` — 1 info
  - added the optional property `test_edges` to the response with the `200` status
- **2026-07-05** `88b3716ecf04` — 1 info
  - added the optional property `assets/items/fork_materialization` to the response with the `200` status
- **2026-07-02** `60b6c24f5797` — 2 info
  - added the optional property `macro_edges` to the response with the `200` status
  - added the optional property `runnables/items/macros` to the response with the `200` status

[Change history](https://skmtc.dev/windmill/apis/windmill-api/changes/w/:workspace/assets/graph/get.md)

---

[API](https://skmtc.dev/windmill/apis/windmill-api.md) · [All operations](https://skmtc.dev/windmill/apis/windmill-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/windmill/windmill-api/revisions/79f83d7aff37/schema)
