> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riggery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Download a file

> Save a public file.

On the graph, add **Download a file**. On an agent, open **Web** and turn **Download a file** on. Saves a public file with the other files on this Instance and returns its id.

<h2 id="input">
  Input
</h2>

Inspector **Settings**. Empty-field rules for the Graph: [Previous nodes](/graph/previous-nodes). **Insert value** is on **URL**.

On an Agent Tool, **URL** can be **Agent decides** or **Fixed**.

| Field | Required | Empty | Notes |
| - | - | - | - |
| **URL** | Yes | Fail | Public `http` or `https` address. A private-network address is rejected. Up to 10 MB. |

JPEG, PNG, GIF, and WebP are stored as images when the file matches that type. Any other file is stored as a file, including a page. [Read a page](/graph/tools/web-read) returns the text of a page.

<h2 id="output">
  Output
</h2>

On the next node, **Previous nodes** lists **`Download a file`: Result** (`{{Download a file.text}}` while the name is unique).

| Output | In menu | Type | Next node gets |
| - | - | - | - |
| Result | Yes | Text | File id, name, type, and size. The file is stored on the Instance. |
