Microsoft's New OneNote Service API Backs Free Apps for Windows, Mac OS, iOS and Android
Microsoft recently announced the initial release of the OneNote API, which enables programmatic integration of its free-form information gathering and multi-user collaboration tool across different programming languages and platforms like Windows, Windows Phone, iOS, Mac OS, Android and the web.
The OneNote API launched together with several apps from Microsoft and third party providers like IFTTT. Microsoft's apps include the OneNote Clipper, which is promoted as "your camera for the web, snapshotting any webpage you see directly into OneNote". Notably, it works by capturing an image of the page and then using OneNote's built-in OCR capabilities to make scanned text searchable and editable. The Office Lens app builds on the same foundation and transforms a smartphone's camera into a pocket scanner for printed or handwritten documents, which trims and enhances the scans to make them more readable by straightening angles for example.
The API facilitates OAuth 2.0 and the Live SDK for Microsoft accounts to authenticate users against their OneDrive, where the notebooks are stored. It follows a RESTful design pattern and has been released in an agile fashion, initially featuring a single REST resource https://www.onenote.com/api/v1.0/pages only, where clients can POST a page into the user's default section. The request body is a subset of HTML5 with some OneNote specific restrictions and additions like a custom data-render-src attribute in the <img> tag, which triggers the service to capture web page snapshots from the supplied URL and insert it on the page. Similarly, it is possible to capture images and embedded files. Nonpublic web content can be sent inside a multipart mime envelope along with the request instead.
The OneNote API team has a dedicated blog and started with posts explaining the default note location and HTML in the OneNote API. They also shared their near-term roadmap and a UserVoice feedback site, where users can comment and vote to influence priorities. The roadmap suggests the API will cover many features present in OneNote itself soon, for example:
- creating and deleting notebooks and sections and deleting pages
- getting the default location and creating pages in a specific notebook and section
- adding checkboxes and other tags
- enumerating pages, content and images (according to the available notebook hierarchy recall preview, the API is going to return data using the OData 4.0 specification)
Scott Hanselmann, on the web platform team at Microsoft, qualified this development approach as Microsoft's quiet API revolution on his personal blog:
[…] the real story here is that Microsoft has woken up to the power of the API. Some may argue that they've always had powerful web APIs, which is true, however the breadth and scope of these APIs and their ubiquity seems to have accelerated in recent years. They are clearer, more open, simpler, and more cross-platform than ever before.
At the same time as the OneNote API, Microsoft also announced a Mac OS version of OneNote. All OneNote clients are freely available now, including the Windows version formerly part of the Office suite, though some features like SharePoint and Outlook integration remain restricted to Office customers (those are also not yet available for Mac OS, but planned for a future release).