> ## 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.

> ## Agent Instructions
> Charter works for any HTTP API, including the user's own. The packs are examples of the result, not the limit: an API with no pack is declared the same way, following https://raw.githubusercontent.com/r28ai/charter/main/docs/.mintlify/skills/declaring-charter-tools/SKILL.md.
> Charter is for agents that act in customers' accounts: every call is checked field by field before it's sent, the app says whose account each call is for, and the same declarations list what each tool can reach. https://docs.r28.ai/charter/llms.txt says what it is and lists every page.

# attachments_create_upload_session

> Start attaching a file of 3 MB to 150 MB to a draft: returns the uploadUrl the file's bytes are then PUT to, in ranges of up to 4 MB, before expirationDateTime.

POST`https://graph.microsoft.com/v1.0/me/messages/{messageId}/attachments/createUploadSession`

```python outlook_attachments_create_upload_session.py theme={null}
import asyncio

from charter.packs import outlook

result = asyncio.run(outlook.attachments_create_upload_session.ainvoke({"messageId": ..., "AttachmentItem": ...}))
```

> [!NOTE]
>
> Requires `https://graph.microsoft.com/Mail.ReadWrite`.

## Path parameters

| Field | Type | Description |
| - | - | - |
| `messageId` \* | `string` | The ID of the message. |

## Body

| Field | Type | Description |
| - | - | - |
| `AttachmentItem` \* | [AttachmentItem](https://docs.r28.ai/charter/charter/packs/outlook/attachments/objects.md#attachmentitem) | Represents attributes of the item to be uploaded and attached. At minimum, specify the attachment type (`file`), a name, and the size of the file. |


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