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

# extensions_delete

> Delete an open extension from a message.

DELETE`https://graph.microsoft.com/v1.0/me/messages/{messageId}/extensions/{extensionId}`

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

from charter.packs import outlook

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

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

## Path parameters

| Field | Type | Description |
| - | - | - |
| `messageId` \* | `string` | The ID of the message. |
| `extensionId` \* | `string` | An extension name which is a unique text identifier for an extension, or a fully qualified name which concatenates the extension type and unique text identifier. The fully qualified name is returned in the id property when you create the extension. |


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