List mail messages
mail_list_messagesLists Outlook messages newest-first, supporting filters for unread, folder, or properties, and paging via skip. Returns a compact preview with subject, sender, and metadata; retrieve full content with mail_get_message.
Instructions
Lists Outlook messages newest-first, 10 per call by default (50 max), as a compact projection: id, subject, from, toRecipients, receivedDateTime, isRead, hasAttachments, bodyPreview and webLink. Bodies are never included — bodyPreview is Graph's first 255 characters, and mail_get_message returns the rest. Page with skip. Note that Exchange rejects some filter/orderby combinations with "The restriction or sort order is too complex"; when that happens, drop orderby or sort on the same property you filtered.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | How many messages to return. Defaults to 10; 50 is the ceiling. | |
| skip | No | Messages to skip before returning results. Use it to page: 0, then 10, then 20. | |
| filter | No | Raw OData $filter, e.g. "importance eq 'high'" or "receivedDateTime ge 2026-01-01T00:00:00Z". Combined with unreadOnly using and. | |
| select | No | Graph message property names to return instead of the default projection, e.g. ["subject","importance","conversationId"]. id is always included. Do not ask for "body" here — use mail_get_message. | |
| orderby | No | Sort order. Defaults to "receivedDateTime desc" (newest first). | receivedDateTime desc |
| folderId | No | Restrict to one mail folder. Accepts a folder id from mail_list_folders or a well-known name: inbox, drafts, sentitems, deleteditems, archive, junkemail, outbox, clutter, conversationhistory, scheduled. Omit to list the whole mailbox. | |
| unreadOnly | No | Return only unread messages (adds "isRead eq false" to the filter). |