Change page level

OneNote API support

Hi there, In this Beta API update we are allowing developers to change the indentation level for a page (aka page level) programmatically. For those of you who are unfamiliar with this feature, the following image shows how pages can be indented in three levels:

Here is a quick recipe for how to do this, followed by an example:

  • Get the ID of the page for which you want to change the indentation level.
  • Make sure to append the following headers to the request:
    • A valid Authorization header.
    • Content-Type set to application/json.
  • Use the PATCH verb.
  • The URL for the API is: https://www.onenote.com/api/beta/me/notes/pages/{id}
  • In the body of the request append the following JSON object: {“level”:”{page level}“} Replace {page level} with 0, 1 or 2 where 0 means no indentation at all and 2 is the maximum indentation level.
  • Any response other than a 204 (HTTP no content) means that something went wrong.

Here’s an example of what such a request might look like if we wanted to change the indentation level of a specific page to 1:

PATCH https://www.onenote.com/api/beta/me/notes/pages/1-567446387463478 Content-Type: application/json Authorization: Bearer  eyJ0eXAiOiJKV1…

{“level”: “1”}

Gotchas:

  • The indentation level for the first page in a section cannot be changed, it only works starting at the second page and onwards (if attempted, the request will fail with an HTTP status of 400).
  • If the page above an indented page is moved to another location or deleted, the indented page will lose its indentation.
  • The only valid values for the level property are 0, 1, 2.
  • This API is still in Beta so please don’t forget the /beta in the URL.
  • Please refer to the PATCH content API documentation for additional information about PATCH APIs.

You can use the following APIs to get the value of the current page level:

GET https://www.onenote.com/api/v1.0/me/notes/pages/{id}?pagelevel=true

Or

GET https://www.onenote.com/api/v1.0/me/notes/sections/{id}/pages?pagelevel=true

Please note that you will have to append the pagelevel=true parameter to the request URL.

Let us know what you think on UserVoice, contact us on twitter @onenotedev, or ask questions tagged onenote on Stack Overflow.

Enjoy, Yanir

Feedback usabilla icon