---
title: "get script by path"
method: GET
path: "/w/{workspace}/scripts/get/p/{path}"
tags: ["script"]
---

# get script by path

`GET /w/{workspace}/scripts/get/p/{path}`

## Path parameters

- `workspace` string, required
- `path` string, required

## Query parameters

- `with_starred_info` boolean
- `get_draft` boolean

## Response `200`

script details

- object — Overlay fields added to every "get by path" response that accepts the `get_draft` query parameter. The deployed payload is sent untouched in the response body; the authed user's saved draft for this path — whatever shape the editor wrote — is attached as the sibling `draft` field when `get_draft=true` and a draft exists. The frontend pairs the two to present diff / reset / discard UI; the server never merges them. When `no_deployed=true` there is no deployed row at this path — the response body is a best-effort stand-in synthesized from the draft, and only `draft` is canonical. Callers should disable "diff vs deployed" UI in that case.
  - `workspace_id` string
  - `hash` string, required
  - `path` string, required
  - `parent_hashes` string[] — The first element is the direct parent of the script, the second is the parent of the first, etc
  - `summary` string, required
  - `description` string, required
  - `content` string, required
  - `created_by` string, required
  - `created_at` string, date-time, required
  - `archived` boolean, required
  - `schema` object
  - `deleted` boolean, required
  - `is_template` boolean, required
  - `extra_perms` object, required
  - `lock` string
  - `lock_error_logs` string
  - `language` 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp' | 'nu' | 'java' | 'ruby' | 'rlang' | 'duckdb' | 'bunnative' | 'dbt', required
  - `kind` 'script' | 'failure' | 'trigger' | 'command' | 'approval' | 'preprocessor', required
  - `starred` boolean, required
  - `tag` string
  - `draft_only` boolean
  - `envs` string[]
  - `concurrent_limit` integer
  - `concurrency_time_window_s` integer
  - `concurrency_key` string
  - `debounce_key` string
  - `debounce_delay_s` integer
  - `debounce_args_to_accumulate` string[]
  - `max_total_debouncing_time` integer
  - `max_total_debounces_amount` integer
  - `cache_ttl` number
  - `dedicated_worker` boolean
  - `ws_error_handler_muted` boolean
  - `priority` integer
  - `restart_unless_cancelled` boolean
  - `timeout` integer
  - `delete_after_secs` integer — If set, delete the job's args, result and logs after this many seconds following job completion
  - `visible_to_runner_only` boolean
  - `auto_kind` string
  - `codebase` string
  - `has_preprocessor` boolean, required
  - `on_behalf_of_email` string
  - `on_behalf_of` string — Authorization identity the runnable runs as: u/{username}, g/{group}, or a bare email when the username is itself email-shaped. The only stored half of the identity; on_behalf_of_email is derived from it.
  - `modules` object, nullable — Additional script modules keyed by relative file path
  - `labels` string[]
  - `inherited_labels` string[] — Labels inherited from the parent folder, computed at read time. Read-only — edit them on the folder.
  - `is_draft` boolean, required
  - `draft_saved_at` string, date-time
  - `no_deployed` boolean
  - `draft` object
  - `other_drafts_users` object[] — Other workspace users (and the legacy NULL-email row, if any) with a saved draft at the same path. Populated only on the authed user's "get by path" responses for kinds the editor surfaces a fork banner for (script, flow, app, raw_app). Empty / omitted for kinds without that UI.
    - `username` string, nullable — Workspace username of the draft owner. `null` represents the legacy workspace-level (NULL-email) row. Emails never leave the server.
    - `draft_saved_at` string, date-time, required — When this user's draft was last saved (`draft.created_at`), surfaced in the fork modal as "Last updated".

---

[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/versions/155a35b3caff/schema)
