Developers: Get a first look at our new Developer Platform on May 13. Register today →
import { Client } from "@notionhq/client"
const notion = new Client({ auth: process.env.NOTION_API_KEY })
const response = await notion.pages.move({
page_id: "b55c9c91-384d-452b-81db-d1ef79372b75",
parent: {
page_id: "3c357473-a281-49a4-88c0-10d2b245a589"
}
}){
"object": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Use this API to move an existing Notion page to a new parent.
import { Client } from "@notionhq/client"
const notion = new Client({ auth: process.env.NOTION_API_KEY })
const response = await notion.pages.move({
page_id: "b55c9c91-384d-452b-81db-d1ef79372b75",
parent: {
page_id: "3c357473-a281-49a4-88c0-10d2b245a589"
}
}){
"object": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Documentation Index
Fetch the complete documentation index at: https://developers.notion.com/llms.txt
Use this file to discover all available pages before exploring further.
page_id (required)
string (UUIDv4)195de9221179449fab8075a27c979105 or 195de922-1179-449f-ab80-75a27c979105parent (required)
objectparent object can be one of two types:
{
"parent": {
"type": "page_id",
"page_id": "<parent-page-id>"
}
}
type: Always "page_id"page_id: UUID of the parent page (with or without dashes)parent[page_id] parameter must be a page and cannot be any other type of block.One limited exception: for databases that only have a single data source , the database_id can be provided under page_id, but this is not recommended, since your connection will start encountering HTTP 400 errors if a second data source is added to the database.{
"parent": {
"type": "data_source_id",
"data_source_id": "<database-data-source-id>"
}
}
type: Always "data_source_id"data_source_id: UUID of the database’s data source (with or without dashes)data_source_id rather than database_id. Use the Retrieve a database endpoint to get the child data source ID(s) from the database.
curl -X POST https://api.notion.com/v1/pages/195de9221179449fab8075a27c979105/move \
-H "Authorization: Bearer secret_xxx" \
-H "Notion-Version: 2026-03-11" \
-H "Content-Type: application/json" \
-d '{
"parent": {
"type": "page_id",
"page_id": "f336d0bc-b841-465b-8045-024475c079dd"
}
}'
curl -X POST https://api.notion.com/v1/pages/195de9221179449fab8075a27c979105/move \
-H "Authorization: Bearer secret_xxx" \
-H "Notion-Version: 2026-03-11" \
-H "Content-Type: application/json" \
-d '{
"parent": {
"type": "data_source_id",
"data_source_id": "1c7b35e6-e67f-8096-bf3f-000ba938459e"
}
}'
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
The API version to use for this request. The latest version is 2026-03-11.
2026-03-11 The ID of the page to move.
The new parent of the page.
Show child attributes