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

# download

<Tip>
  Read [the Notte skill](https://notte.cc/skill.md) and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.
</Tip>

[Source: node-sdk/src/functions.ts](https://github.com/nottelabs/notte/blob/main/node-sdk/src/functions.ts)

Download the function code as a python file. Returns the code, and writes
it to `path` when one is provided.

```typescript theme={null}
NotteFunction.download(options?: FunctionDownloadOptions): Promise<string>;
```

## Parameters

<ParamField body="options" type={"FunctionDownloadOptions"}>
  Optional version, decryption key, and local `.py` destination path.

  Default:

  ```typescript theme={null}
  {}
  ```
</ParamField>

## Returns

```typescript theme={null}
Promise<string>
```

The Python source text, including when a local destination is supplied.

## Raises

* InvalidRequestError if the destination does not end in `.py` or the decryption key is invalid.
* NotteError if the source download fails. Local filesystem failures also propagate.

## Example

```typescript theme={null}
const code = await fn.download({ path: './scraper.py' });
```

## Related types

* [FunctionDownloadOptions](/typescript-sdk-reference/types/functiondownloadoptions)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.