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

# file_uploads_create

> Start a file upload. With `mode="external_url"` Notion fetches the file from a public HTTPS URL itself and no further upload step is needed — the one mode that completes without sending raw bytes, which this pack cannot do. Poll `file_uploads_retrieve` until the status is `uploaded`, then reference the ID as a `file_upload` on a page, block or files property.

<div className="tool-route"><span className="tool-row-method" data-method="POST">POST</span><code>{"https://api.notion.com/v1/file_uploads"}</code></div>

```python notion_file_uploads_create.py theme={null}
from charter.packs import notion

result = await notion.file_uploads_create.ainvoke({})
```

<Note>
  Requires `Insert content`.
</Note>

## Body

<div className="reference-table">
  | Field  | Type                                                                                    | Description                                                             |
  | ------ | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
  | `body` | [FileUploadCreateBody](/charter/charter/packs/notion/file_uploads/objects#fileuploadcreatebody) | How the file will arrive. All fields optional for a single-part upload. |
</div>
