OneNote API Near-Term Roadmap

Last Updated on 8/13/2014: Items on the roadmap have been updated to reflect which ones are now available in production.

Hey folks, this is James Lau - I am the Lead Program Manager on the OneNote API team. In this blog post, I’d like to share with your our near-term roadmap and get your feedback.

Last week, we launched the initial version of our API. The first set of features are focused on scenarios for creating pages in OneNote: mobile app scanners, hardware scanners, save-it-for-later for newsreaders, etc. Of course, we are far from done, and we have already started are busy working on the next set of features. Instead of "going dark" and then shipping features that we think you want, we would rather have a dialog with you on what we are building.

One of the core principles we have on our team is customer transparency. We understand that you are trusting us and taking a bet on our platform when you use our API. As such, not only do you deserve to know what we are planning, but you also deserve to have a say in what we do! We have set up a OneNote API feedback site so you can participate in our planning, vote on features and submit your ideas.

Here is a list of the capabilities and features that we are planning to deliver over the next 3 to 6 months. That is a very rough timeframe, and priorities can change at any time, so please don't base your plan on this timeframe. The features below are also not listed in strict priority order. We have multiple teams tackling this list simultaneously, so some of these will be built in parallel. Nonetheless, we would love to get your feedback on their relative importance to you.

  1. PDF Rendering ( Live in Production, see announcement here ). In the current API, you can create a page with a PDF attachment, but it cannot be rendered onto the page directly. This feature will enable a PDF to be rendered onto the page, making it usable directly on the OneNote page. Since PDF is by far the most popular scan format, this is particularly important to scanner scenarios.

  2. Improved error codes (Live in Production, see announcement here). Today, our error codes and messages aren't very helpful. For example, if you missed including the office.onenote_create scope when you asked your user to sign in, when you call the page create API, you will just get a 401 Unauthorized error back with no message telling you that you are missing the office.onenote_create scope. We would like to provide richer error messages, particularly for the 4XX type client errors, so we can help you pinpoint what is wrong with your request.

  3. API to create in a specific notebook and section (Live in Production, see announcement here). In the current API, all the pages created through the API will end up in the default location (see our blog post on the default page location). This feature will enable developers to create UI to let the user pick a specific location where the page should be created.

  4. API to create a notebook (Live in Production, see announcement here). Lets your app create a new notebook. (i.e. POST https://www.onenote.com/api/v1.0/notebooks)

  5. API to create a section (Live in Production, see announcement here). Lets your app create a new section within a notebook. (i.e. POST https://www.onenote.com/api/v1.0/sections)

  6. API to do whole page replacement. This will be the first version of our page update API, which is to enable you to replace the entire page (i.e. PUT https://www.onenote.com/api/v1.0/pages/{id}).

  7. API to get default location. For apps that don’t want to go through the hassle of creating UI to let the user pick where he wants the page to be created, they can use this API to at least get back the default notebook name and section name to show the user which location the page is going to be created in.

  8. Checkbox and other tag support. This would allow developers to use TODO's and other types of tags in OneNote. Note that tags in OneNote aren't page-level tags like in a blog post. OneNote tags are things like TODO, Important, Question, etc.

    image

  9. API to delete a notebook, delete a section and delete a page.
    (i.e. DELETE https://www.onenote.com/api/v1.0/notebooks/{id},
    DELETE https://www.onenote.com/api/v1.0/sections/{id},
    DELETE https://www.onenote.com/api/v1.0/pages/{id})

  10. API to recall list of pages (Live in Beta, see announcement here). Enables an app to enumerate all the pages in the user's notebooks. For example, your app might want to list the most recently created pages in OneNote to let the user choose a page to add its content into your app. (i.e. GET https://www.onenote.com/api/v1.0/pages)

  11. API to recall page content. We expect most developers will use this API along with #10 to get the contents of a page back and use it inside the app. (i.e. GET https://www.onenote.com/api/v1.0/pages/{id})

  12. API to recall images across notebooks or within a notebook. This is useful in scenarios where you want to enumerate all of the images stored inside the user's notebooks and allow them to pick the ones they want to use in your app. (i.e. GET https://www.onenote.com/api/v1.0/images or GET https://www.onenote.com/api/v1.0/notebooks/{id}/images)

Please let us know of anything you want that's missing and vote on the ones that you really want *right now*! Your feedback will really help us prioritize and influence what we work on next.

Other than transparency, our team also believes in delivering customer value early. That means we are going to be delivering new features as they are completed and not take a "big bang" approach. We do daily deployments to our service too, so there are tons of opportunities to get these features out on a regular basis.

 

Best,

James (@jmslau)