Create page
Namespace: microsoft.graph
Important
APIs under the /beta
version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.
Create a new OneNote page in the default section of the default notebook.
To create a page in a different section in the default notebook, you can use the sectionName
query parameter. Example: ../onenote/pages?sectionName=My%20section
The POST /onenote/pages
operation is used only to create pages in the current user's default notebook. If you're targeting other notebooks, you can create pages in a specified section.
Note: There is a limit to the number of pages that can be added to a section using this API. For details, see Create OneNote pages for all limitations with this API.
This API is available in the following national cloud deployments.
Global service | US Government L4 | US Government L5 (DOD) | China operated by 21Vianet |
---|---|---|---|
✅ | ❌ | ❌ | ❌ |
Permissions
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permission type | Least privileged permissions | Higher privileged permissions |
---|---|---|
Delegated (work or school account) | Notes.Create | Notes.ReadWrite, Notes.ReadWrite.All |
Delegated (personal Microsoft account) | Notes.Create | Notes.ReadWrite |
Application | Notes.ReadWrite.All | Not available. |
HTTP request
POST /me/onenote/pages
POST /users/{id | userPrincipalName}/onenote/pages
POST /groups/{id}/onenote/pages
POST /sites/{id}/onenote/pages
Request headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer {token}. Required. Learn more about authentication and authorization. |
Content-Type | string | text/html or application/xhtml+xml for the HTML content, including for the required "Presentation" part of multipart requests. Multipart requests use the multipart/form-data; boundary=your-boundary content type. |
Request body
In the request body, supply the HTML content for the page.
The body can contain HTML placed directly in the request body, or it can contain a multipart message format as shown in the example. If you're sending binary data, then you must send a multipart request.
Response
If successful, this method returns a 201 Created
response code and the new onenotepage object in the response body.
Example
Request
The following example shows a request.
In the ../onenote/pages
path, you can use the sectionName
query parameter to create a page in a specific section in the default notebook. Example: ../onenote/pages?sectionName=My%20section
. If the section doesn't exist (or was renamed), the API will create a new section.
POST https://graph.microsoft.com/beta/me/onenote/pages
Content-type: multipart/form-data; boundary=MyPartBoundary198374
--MyPartBoundary198374
Content-Disposition:form-data; name="Presentation"
Content-Type:text/html
<!DOCTYPE html>
<html>
<head>
<title>A page with <i>rendered</i> images and an <b>attached</b> file</title>
<meta name="created" content="2015-07-22T09:00:00-08:00" />
</head>
<body>
<p>Here's an image from an online source:</p>
<img src="https://..." alt="an image on the page" width="500" />
<p>Here's an image uploaded as binary data:</p>
<img src="name:imageBlock1" alt="an image on the page" width="300" />
<p>Here's a file attachment:</p>
<object data-attachment="FileName.pdf" data="name:fileBlock1" type="application/pdf" />
</body>
</html>
--MyPartBoundary198374
Content-Disposition:form-data; name="imageBlock1"
Content-Type:image/jpeg
... binary image data ...
--MyPartBoundary198374
Content-Disposition:form-data; name="fileBlock1"
Content-Type:application/pdf
... binary file data ...
--MyPartBoundary198374--
Response
The following example shows the response. Note: The response object shown here is truncated for brevity. All of the properties will be returned from an actual call.
HTTP/1.1 200 OK
Content-type: application/json
{
"title": "title-value",
"createdByAppId": "createdByAppId-value",
"links": {
"oneNoteClientUrl": {
"href": "href-value"
},
"oneNoteWebUrl": {
"href": "href-value"
}
},
"contentUrl": "contentUrl-value",
"content": "content-value",
"lastModifiedDateTime": "2016-10-19T10:37:00Z"
}