Skip to content
OneNote export using Microsoft Graph API
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

OneNote Export

Export OneNote notebooks as JSON + HTML using the Microsoft Graph REST API. The Graph Explorer is helpful for learning the API.

Access Tokens

Most of the battle is getting access tokens for your personal Microsoft account. Try this "streamlined" process:

  1. Register an application with MS Graph
  2. Under the Platforms header, create a web app and set the Redirect URL to http://localhost:3000/token
  3. Set the environment variable CLIENT_ID to the Application ID generated for your app
  4. Start the Node web app and visit /login in your browser
  5. Login to your MS account, getting redirected to /token
  6. Copy the access token out of the URL and assign it to the environment variable ACCESS_TOKEN
  7. Restart the Node web app

Be warned that the access token expires after an hour or so.


The web app presents a simplified version of Microsoft's API for getting OneNote data:

  • /notebooks: Get all notebooks as JSON list.
  • /sections: Get all notebook sections as JSON list.
  • /pages: Get all notebook pages (excluding HTML content) as JSON list.
  • /content: Get all notebook pages (including HTML content) as JSON list.
You can’t perform that action at this time.