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