# Bundle download URL

> A presigned URL for the live code bundle. Download the tar.gz and extract it.

Source: https://docs.generalinput.com/api/workflows/bundle-url



<Endpoint method="GET" path="/v1/workflows/:id/bundle-url" />

<Access scope="workflows:manage" />

Pull. The live version's files as one gzipped tar, served from storage through a short-lived presigned `GET`.

## Response [#response]

```json
{
  "workflowType": "code",
  "downloadUrl": "https://storage.example/…?X-Amz-Signature=…"
}
```

## Example [#example]

```sh
URL=$(curl -s "https://cloud.generalinput.com/v1/workflows/wf_01HX/bundle-url" \
  -H "Authorization: Bearer $GI_API_KEY" | jq -r .downloadUrl)
curl -s "$URL" | tar -xz -C ./digest
```

The archive is flat: `workflow.json`, `main.ts`, `package.json` at the root, with any subdirectories (`scripts/`, `src/`, `handlers/`) as the type requires.
