---
title: "Update page"
method: PATCH
path: "/v1/pages/{page_id}"
tags: ["Pages"]
---

# Update page

`PATCH /v1/pages/{page_id}`

## Path parameters

- `page_id` string, required

## Headers

- `Notion-Version` '2026-03-11', required

## Request body

- object
  - `properties` object
  - `icon` union
    - FileUploadPageIconRequest
      - `type` 'file_upload' — Always `file_upload`
      - `file_upload` object, required
        - `id` string, required — ID of a FileUpload object that has the status `uploaded`.
    - EmojiPageIconRequest
      - `type` 'emoji' — Always `emoji`
      - `emoji` string, required
    - ExternalPageIconRequest
      - `type` 'external' — Always `external`
      - `external` object, required
        - `url` string, required — The URL of the external file.
    - CustomEmojiPageIconRequest
      - `type` 'custom_emoji' — Always `custom_emoji`
      - `custom_emoji` object, required
        - `id` string, required
        - `name` string — The name of the custom emoji.
        - `url` string — The URL of the custom emoji.
    - IconPageIconRequest
      - `type` 'icon' — Always `icon`
      - `icon` object, required — A Notion native icon, specified by name and optional color.
        - `name` string, required
        - `color` 'gray' | 'lightgray' | 'brown' | 'yellow' | 'orange' | 'green' | 'blue' | 'purple' | 'pink' | 'red' — One of: `gray`, `lightgray`, `brown`, `yellow`, `orange`, `green`, `blue`, `purple`, `pink`, `red`
  - `cover` union
    - FileUploadPageCoverRequest
      - `type` 'file_upload' — Always `file_upload`
      - `file_upload` object, required — The file upload for the cover.
        - `id` string, required — ID of a FileUpload object that has the status `uploaded`.
    - ExternalPageCoverRequest
      - `type` 'external' — Always `external`
      - `external` object, required — External URL for the cover.
        - `url` string, required — The URL of the external file.
  - `is_locked` boolean — Whether the page should be locked from editing in the Notion app UI. If not provided, the locked state will not be updated.
  - `template` union
    - object
      - `type` 'default', required
      - `timezone` string — IANA timezone to use when resolving template variables like @now and @today (e.g. 'America/New_York'). Defaults to the authorizing user's timezone for public integrations, or UTC for internal integrations.
    - object
      - `type` 'template_id', required
      - `template_id` string, required
      - `timezone` string — IANA timezone to use when resolving template variables like @now and @today (e.g. 'America/New_York'). Defaults to the authorizing user's timezone for public integrations, or UTC for internal integrations.
  - `erase_content` boolean — Whether to erase all existing content from the page. When used with a template, the template content replaces the existing content. When used without a template, simply clears the page content.
  - `in_trash` boolean
  - `is_archived` boolean

## Response `200`

- union
  - PageObjectResponse
    - `object` 'page', required — The page object type name.
    - `id` string, uuid, required
    - `created_time` string, date-time, required — Date and time when this page was created.
    - `last_edited_time` string, date-time, required — Date and time when this page was last edited.
    - `in_trash` boolean, required — Whether the page is in trash.
    - `is_archived` boolean, required — Whether the page has been archived.
    - `is_locked` boolean, required — Whether the page is locked from editing in the Notion app UI.
    - `url` string, required — The URL of the Notion page.
    - `public_url` string, nullable, required — The public URL of the Notion page, if it has been published to the web.
    - `parent` union, required
      - DatabaseParentResponse
        - `type` 'database_id', required — The parent type.
        - `database_id` string, uuid, required
      - DataSourceParentResponse
        - `type` 'data_source_id', required — The parent type.
        - `data_source_id` string, uuid, required
        - `database_id` string, uuid, required
      - PageIdParentForBlockBasedObjectResponse
        - `type` 'page_id', required — The parent type.
        - `page_id` string, uuid, required
      - BlockIdParentForBlockBasedObjectResponse
        - `type` 'block_id', required — The parent type.
        - `block_id` string, uuid, required
      - AgentIdParentForBlockBasedObjectResponse
        - `type` 'agent_id', required — The parent type.
        - `agent_id` string, uuid, required
      - WorkspaceParentForBlockBasedObjectResponse
        - `type` 'workspace', required — The parent type.
        - `workspace` true, required — Always true for workspace parent.
    - `properties` object, required — Property values of this page.
    - `icon` union, required
      - EmojiPageIconResponse
        - `type` 'emoji', required — Type of icon. In this case, an emoji.
        - `emoji` string, required
      - FilePageIconResponse
        - `type` 'file', required — Type of icon. In this case, a file.
        - `file` InternalFileResponse, required
          - `url` string, required — The URL of the file.
          - `expiry_time` string, date-time, required — The time when the URL will expire.
      - ExternalPageIconResponse
        - `type` 'external', required — Type of icon. In this case, an external URL.
        - `external` object, required — The external URL for the icon.
          - `url` string, required — The URL of the external file or resource.
      - CustomEmojiPageIconResponse
        - `type` 'custom_emoji', required — Type of icon. In this case, a custom emoji.
        - `custom_emoji` CustomEmojiResponse, required
          - `id` string, uuid, required
          - `name` string, required — The name of the custom emoji.
          - `url` string, required — The URL of the custom emoji.
      - IconPageIconResponse
        - `type` 'icon', required — Type of icon. In this case, a Notion native icon.
        - `icon` NoticonIconResponse, required
          - `name` string, required
          - `color` 'gray' | 'lightgray' | 'brown' | 'yellow' | 'orange' | 'green' | 'blue' | 'purple' | 'pink' | 'red', required — One of: `gray`, `lightgray`, `brown`, `yellow`, `orange`, `green`, `blue`, `purple`, `pink`, `red`
    - `cover` union, required
      - FilePageCoverResponse
        - `type` 'file', required — Type of cover. In this case, a file.
        - `file` InternalFileResponse, required
          - `url` string, required — The URL of the file.
          - `expiry_time` string, date-time, required — The time when the URL will expire.
      - ExternalPageCoverResponse
        - `type` 'external', required — Type of cover. In this case, an external URL.
        - `external` object, required — The external URL for the cover.
          - `url` string, required — The URL of the external file or resource.
    - `created_by` PartialUserObjectResponse, required
      - `id` string, uuid, required
      - `object` 'user', required — Always `user`
    - `last_edited_by` PartialUserObjectResponse, required
      - `id` string, uuid, required
      - `object` 'user', required — Always `user`
  - PartialPageObjectResponse
    - `object` 'page', required — The page object type name.
    - `id` string, uuid, required

## Other responses

- `400`
- `401`
- `403`
- `404`
- `406`
- `409`
- `429`
- `500`
- `503`
- `504`
- `529`

---

[API](https://skmtc.net/notion/apis/notion-api.md) · [All operations](https://skmtc.net/notion/apis/notion-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/notion/notion-api/versions/551da43bb186/schema)
