January 30th, 2025

Introducing the Microsoft Graph Export-Import APIs for Exchange in public preview

We are happy to announce the availability of the Export-Import APIs in Public Preview (Beta). This is a set of Microsoft Graph APIs that empower applications to discover, import, and export content in Exchange Online mailboxes in full fidelity.

Many of our customers currently rely on APIs powered by Exchange Web Services (EWS) for tasks like Exchange mailbox backup, archiving and migration. However, with the EWS deprecation initiative, customers have been asking for a method built on the Microsoft Graph platform to discover mailbox items, selectively export them and then import these items into Exchange Online mailboxes.

API features

We are introducing a solution that includes several valuable features, enabling users to effectively utilize these new APIs:

  1. Discovery into Mailbox Hierarchy: The APIs allow drilling down into the mailbox hierarchy, including mailbox folders, child folders, and individual mailbox items.
  2. Agnostic to the type of mailbox items: Our solution identifies and supports all types of mailbox items, such as messages, contacts, and calendar items, given that they fall under the IPM subtree (refer to IPM Subtree | Microsoft Learn for more information).
  3. Support for Archive Mailboxes: Our solution provides support for both users’ primary mailboxes and their In-Place Archive mailboxes.
  4. Folder Management: Users can create, update, and delete mailbox folders, allowing flexibility in modifying mailbox folder structures.
  5. Extended Properties: Our solution enables support for single-value and multi-value extended properties associated with mailbox folders and items. These properties allow storing and accessing custom data that is not already exposed in the Microsoft Graph API metadata (refer to Outlook extended properties overview – Microsoft Graph v1.0 | Microsoft Learn for more information).
  6. Granular Permission Scopes: We ensure controlled access for applications and users, allowing them to read, export, and import their Exchange mailbox data based on their specific use cases.

View the documentation here.

Note: These APIs currently do not support Public Folders.

Let us know what you think!

We would love to hear your feedback! If you have any suggestions, questions, or issues you would like to report, please leave a comment below or send us an email at ExoImExApiFeedback@microsoft.com. Please refrain from opening support tickets for these APIs during public preview as this is not supported at this time.

23 comments

  • Marianchuk, Maksym 2 weeks ago

    Hello Everyone!
    I have a question:
    – when is this feature planned to be in the release version?
    And also regarding Public Folder, when is it planned to create Import/Export support for them?

    Thank you!

  • Sesha krishnan

    What’s the plan/ETA for supporting batching for import items?

  • Daniel Míšaný

    Hello,

    based on my testing Import does not persist the categories, so if I export items with category, the category is not shown when importing the mail. I specifically tested with the update.

    • Cameron ParkerMicrosoft employee Author

      Hello Daniel, thank you for the feedback! Not as part of these APIs specifically, however the team is exploring adding this capability to Microsoft Graph in the future.

  • Daniel Míšaný

    Is there any plan Import/Export will work also for other entities? In EWS it worked also for Calendar items, Tasks, Contacts?

    • Cameron ParkerMicrosoft employee Author · Edited

      Replying to your question here as I could not reply directly to it underneath

      Yes, we are planning to make this Generally Available for all clouds including GCC High.

      • Daniel Míšaný

        Hello,

        I have found out problem in delta of mailbox folders, when getting delta and folder is deleted (put to deleted items) or moved from one folder to another, it is missing Old parent folder identifier which would kind of indicate that the folder has been moved. In EWS old parent folder ID was returned as far as I remember.

      • Daniel Míšaný

        Will it be available for GCC high?

  • SSK

    Hello,

    Will these APIs be available under the SDKs for Graph?

  • Martin Macháček · Edited

    What I see is not the best developer experience when importing items.

    As a developer, I can use the Microsoft Graph SDK like C# or PowerShell to create an import session, but then I need to write my own client to import items, because the import endpoint is not calling the Graph API, but the Outlook API (https://outlook.office365.com/api/gbeta). Developers can't use the Graph Explorer which allows to call only endpoints with the base URL https://graph.microsoft.com

    The SDKs have retry handling, throttling, error catching, etc., but for importing I have to implement a lot of things myself.

    There will be no Graph API documentation...

    Read more
  • Glen Scales

    Its good to see this couple of questions

    Is this going to be a metered API either now or in the future ?

    Is it throttled the same way as other Mail and Calendar API’s are in the Graph (eg 4 concurrent connection limits)

    You don’t currently have an importItem documented in the API docs https://learn.microsoft.com/en-us/graph/api/resources/mailbox-import-export-api-overview?view=graph-rest-beta there is https://learn.microsoft.com/en-us/graph/import-exchange-mailbox-item which shows how to do it but the API docs need some updating to include it.

    • Glen Scales

      In EWS there are 27 concurrent connections allowed in Exchange Online in Graph there are only 4, for most things that's not too much of a problem but for something that needs volume it is, one example is I've tried doing a large hygiene tasks using the Graph in Exchange which involved moving 1000's of mailbox items. In the Graph it took 6 minutes per 1000 items in the EWS it too 1 minute because It could have higher batch limits and the native batch execution in EWS seems a lot more efferent to the way the batch endpoint...

      Read more
    • J

      We are currently using the Graph API endpoints to access all of these things, I am wondering the same thing for throttling. It feels pretty similar in terms of what is available to access, what about the performance?

      • Cameron ParkerMicrosoft employee Author

        Thank you for the feedback! There are no plans for these APIs to be metered. Throttling for Outlook resources applies to the resources in these APIs as well.

        We’re interested in receiving feedback around throttling and performance with these APIs and encourage customers to share their experience with us as part of this preview!