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

# messages_delta

> Track changes to the messages in one folder. The first round returns every message a page at a time and ends with a delta_link; pass that as next_link later to get only what was created, updated or removed since.

GET`https://graph.microsoft.com/v1.0/me/mailFolders/{folderId}/messages/delta`

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

from charter.packs import outlook

result = asyncio.run(outlook.messages_delta.ainvoke({"folderId": ...}))
```

> [!NOTE]
>
> Requires `https://graph.microsoft.com/Mail.Read` or `https://graph.microsoft.com/Mail.ReadWrite`. Pages by cursor: `next_link` is sent back as `next_link`.

## Path parameters

| Field | Type | Description |
| - | - | - |
| `folderId` \* | `string` | The folder ID, or a well-known folder name. Well-known names work regardless of the locale of the user's mailbox: archive, clutter, conflicts, conversationhistory, deleteditems, drafts, inbox, junkemail, localfailures, msgfolderroot, outbox, recoverableitemsdeletions, scheduled, searchfolders, sentitems, serverfailures, syncissues. |

## Query parameters

| Field | Type | Description |
| - | - | - |
| `changeType` | `"created" \| "updated" \| "deleted"` | A custom query option to filter the delta response based on the type of change. Supported values are `created`, `updated`, or `deleted`. |
| `$select` | `string` | Use the $select query parameter to return a subset of properties for a resource. With $select, you can specify a subset or a superset of the default properties. For example, `from,subject` returns only the from and subject properties. |
| `$filter` | `string` | The only supported `$filter` expressions are `$filter=receivedDateTime+ge+&#123;value&#125;` or `$filter=receivedDateTime+gt+&#123;value&#125;`. |
| `$orderby` | `string` | The only supported `$orderby` expression is `$orderby=receivedDateTime+desc`. If you don't include an `$orderby` expression, the return order is not guaranteed. |
| `nextLink` | `string` | The `next_link` or `delta_link` a previous call returned (Graph's `@odata.nextLink` / `@odata.deltaLink`). A `delta_link` ends a round and starts the next one, returning only what changed since. Either link carries every parameter of the first request, the folder included, so when it is set the others are ignored. |

## Headers

| Field | Type | Description |
| - | - | - |
| `maxPageSize` | `integer` Prefer: odata.maxpagesize=\{} | The maximum number of messages in each page of the response, sent as the `Prefer: odata.maxpagesize=&#123;x&#125;` request header. The page size, not a limit: the round still returns every message, a page at a time. ≥ 1 |


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