Search code examples
phponenote-api

Best way to use One Note API to GET specific pages in specific section in specific notebook?


According to the OneNote API documentation, I can GET specific pages in a specific section using:

../sections/{section-id}/pages[?filter,...]

... and I can GET a specific section in a specific notebook using:

../notebooks/{notebook-id}/sections[filter,...]

... but if I try to combine these to GET specific pages in a specific section in a specific notebook, using:

../notebooks/{notebook-id}/sections/{section-id}/pages[?filter,...]

... I get:

"Badly formed request in oneNoteGet() for: notebooks/< notebook-id >/sections/< section-id >/pages?..."

Of course, I can work around this by first getting a list of all the sections in a specific notebook, then from that list selecting a specific section, and finally requesting specific pages in that section.

But is there a more direct path? Or is this just a deficiency in the current API (in which case I should put in a UserVoice request)?


Solution

  • Use an OData filter on the pages entity set: (make sure you expand it)

    GET ~/pages?$filter=parentNotebook/id%20eq%20'YOURNOTEBOOKID'&$expand=parentNotebook