Process and structure your Outlook / Office 365 inbox using Microsoft Graph API. Filter emails by sender, subject, body text, date range, unread/read, and save bodies + attachments into a clean dataset for HR, invoices, leads, support, and compliance.
This actor connects to Microsoft Graph API and retrieves emails from one or more Outlook / Office 365 mailboxes based on your filters.
Results are saved into an Apify Dataset with both bodyHtml and bodyText. Attachments (optional) are downloaded and stored
in Apify Key-Value Store, then linked back to each dataset item for easy access and exporting.
bodyHtml, bodyText) in datasetto, cc, bcc)mailbox)id)receivedDateTime, sentDateTime)subject)from, to, cc, bcc)isRead)bodyPreview, bodyHtml, bodyText)conversationId)attachmentNames)attachmentPaths)attachments)tenantId, clientId, clientSecret, and mailboxesuserAccessToken and mailboxesdateFrom, dateTo, senderEmails, subjectIncludes,
bodyIncludes, onlyUnread, folders, and limits like maxMessagesPerMailbox.
attachmentExtensions, attachmentMinSizeKB, attachmentMaxSizeKB,
attachmentNameIncludes, attachmentNameExcludes.
{
"mailbox": "billing@yourdomain.com",
"id": "AAMkAGVmMDEzYj... (Graph message id)",
"receivedDateTime": "2025-11-18T09:15:22Z",
"sentDateTime": "2025-11-18T09:14:58Z",
"subject": "Invoice #48291 - November",
"from": "vendor@example.com",
"to": "billing@yourdomain.com",
"cc": "",
"bcc": "",
"isRead": false,
"bodyPreview": "Hi, please find attached invoice #48291...",
"bodyHtml": "<html>...</html>",
"bodyText": "Hi, please find attached invoice #48291...",
"conversationId": "AAQkAGVmMDEzYj...",
"attachmentNames": "invoice_48291.pdf",
"attachmentPaths": "inbox-attachments/billing@yourdomain.com/AAMkAGVmMDEzYj.../invoice_48291.pdf",
"attachments": [
{
"name": "invoice_48291.pdf",
"contentType": "application/pdf",
"size": 245812,
"extension": ".pdf",
"kvPath": "inbox-attachments/billing@yourdomain.com/AAMkAGVmMDEzYj.../invoice_48291.pdf"
}
]
}