---
title: "list every draft the current user has in this workspace, across all kinds"
method: GET
path: "/w/{workspace}/drafts/list"
tags: ["draft"]
---

# list every draft the current user has in this workspace, across all kinds

`GET /w/{workspace}/drafts/list`

## Path parameters

- `workspace` string, required

## Query parameters

- `all_users` boolean
- `compare_to_workspace` string

## Response `200`

the user's drafts

- object[]
  - `kind` 'script' | 'flow' | 'app' | 'raw_app' | 'resource' | 'variable' | 'trigger_schedule' | 'trigger_webhook' | 'trigger_default_email' | 'trigger_email' | 'trigger_http' | 'trigger_websocket' | 'trigger_postgres' | 'trigger_kafka' | 'trigger_nats' | 'trigger_mqtt' | 'trigger_amqp' | 'trigger_sqs' | 'trigger_gcp' | 'trigger_azure' | 'trigger_poll' | 'trigger_cli' | 'trigger_nextcloud' | 'trigger_google' | 'trigger_github' | 'data_pipeline', required — Closed set of item kinds a user can autosave as a draft. Mirrors the Postgres `DRAFT_KIND` enum and the backend `UserDraftItemKind`.
  - `path` string, required
  - `summary` string — Best-effort, read from the draft JSON's `summary` field when the editor shape carries one.
  - `draft_path` string — User-typed friendly path from the draft JSON's `draft_path`, when set and different from the storage path (e.g. a never-deployed item parked at `u/{user}/draft_{uuid}`).
  - `draft_only` boolean, required — No deployed counterpart exists at this path — the draft is the whole item.
  - `legacy_draft` boolean, required — The listed draft is a legacy workspace-level row (email NULL) predating the per-user drafts migration. Only true when no per-user draft exists at this path.
  - `created_at` string, date-time, required
  - `can_write` boolean, required — Whether the current user may deploy/discard this draft (same check the deploy/discard endpoints enforce).
  - `mine` boolean, required — The row belongs to the current user (own draft or the legacy no-owner row) and is therefore actionable. Always true in the default listing; with `all_users=true`, other users' rows are false (view-only).
  - `unchanged_from_parent` boolean — Only present when `compare_to_workspace` was passed. True when this draft is identical to the parent's draft at the same path/kind/owner (cloned in on fork and never edited here).
  - `draft_users` object[] — Draft authors at this (path, kind) — the legacy NULL-email row surfaced as a null username. Populated only for the shared full-page-editor kinds (script/flow/app/raw_app); omitted for drawer kinds, which keep their drafts private. Feeds the Draft badge's owner-avatar circles.
    - `username` string, nullable

---

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