Skip to main content

Overview

A page object is made up of page properties that contain data about the page. When you send a request to Create a page, set the page properties in the properties object body parameter. Retrieve a page surfaces the identifier, type, and value of a page’s properties. Retrieve a page property item returns information about a single property ID. Especially for formulas, rollups, and relations, Notion recommends using this API to ensure you get an accurate, up-to-date property value that isn’t truncating any results. Refer to Page property items for specific API shape details when using this endpoint. An Update page query modifies the page property values specified in the properties object body param.
Pages that live in a data source are easier to query and manage.Page properties are most useful when interacting with a page that is an entry in a data source, represented as a row in the Notion app UI.If a page is not part of a data source, then its only available property is its title.

Attributes

Each page property value object contains the following fields:
Size limits for page property valuesFor information about size limitations for specific page property objects, refer to the limits for property values documentation.
When returned from the Retrieve page property item API, there’s an additional field, object, which is always the string "property_item", as described in Page property items.

Type objects

Checkbox

Data source property config: Checkbox

Example properties body param for a POST or PATCH page request that creates or updates a checkbox page property value

Example checkbox page property value as returned in a GET page request

Created by

Data source property config: Created by

Example created_by page property value as returned in a GET page request

Created time

Data source property config: Created time

Example created_time page property value as returned in a GET page request

Date

Data source property config: Date
If the type of a page property value is "date", then the property value contains a "date" object with the following fields:

Example properties body param for a POST or PATCH page request that creates or updates a date page property value

Example date page property value as returned in a GET page request

Email

Data source property config: Email

Example properties body param for a POST or PATCH page request that creates or updates an email page property value

Example email page property value as returned in a GET page request

Files

Data source property config: Files

Example creation or update of files property

The following is an example properties body parameter for a POST or PATCH page request that creates or updates a files page property value. When providing an external URL, the name parameter is required. When providing a file_upload, the name is optional and defaults to the filename of the original File Upload.

Example files page property value as returned in a GET page request

Array parameter overwrites the entire existing valueWhen updating a files page property value, the value is overwritten by the new array of files passed.If you pass a file object containing a file hosted by Notion, it remains one of the files. To remove any file, don’t pass it in the update request.

Formula

Data source property config: Formula
Formula property value objects represent the result of evaluating a formula described in the data source’s properties. If the type of a page property value is "formula", then the property value contains a "formula" object with the following fields:

Example formula page property value as returned in a GET page request

The Retrieve a page endpoint returns a maximum of 25 inline page or person references for a formula property. If a formula property includes more than 25 references, then you can use the Retrieve a page property item endpoint for the specific formula property to get its complete list of references.

Icon

Page icon and cover are not nested under propertiesThe icon and cover fields in the Create a page and Update page APIs are top-level parameters, not nested under properties.
The icon field is a discriminated union on the type key. Different types are available depending on whether you are reading or writing: For full schema details and examples of each type, see the Emoji and icon reference.

Example responses

Example: setting an icon

To set the cover image, use the cover parameter with the same file types (external, file_upload) in the Create a page or Update page request body.

Last edited by

Data source property config: Last edited by

Example last_edited_by page property value as returned in a GET page request

Last edited time

Data source property config: Last edited time

Example last_edited_time page property value as returned in a GET page request

Multi-select

Data source property config: Multi-select
If the type of a page property value is "multi_select", then the property value contains a "multi_select" array with the following fields:

Example properties body param for a POST or PATCH page request that creates or updates a multi_select page property value

Example multi_select page property value as returned in a GET page request

If you want to add a new option to a multi-select property via the Update page or Update data source endpoint, then your connection needs write access to the parent database.

Number

Data source property config: Number

Example properties body param for a POST or PATCH page request that creates or updates a number page property value

Example number page property value as returned in a GET page request

People

Data source property config: People

Example properties body param for a POST or PATCH page request that creates or updates a people page property value

Example people page property value as returned in a GET page request

Retrieve individual property items to avoid truncationThe Retrieve a page endpoint can’t be guaranteed to return more than 25 people per people page property. If a people page property includes more than 25 people, then you can use the Retrieve a page property item endpoint for the specific people property to get a complete list of people.

Phone number

Data source property config: Phone number

Example properties body param for a POST or PATCH page request that creates or updates a phone_number page property value

Example phone_number page property value as returned in a GET page request

Relation

Data source property config: Relation

Example properties body param for a POST or PATCH page request that creates or updates a relation page property value

Example relation page property value as returned in a GET page request

To update a relation property value via the API, share the related parent database with the connection.If a relation property value is unexpectedly empty, then make sure that you have shared the original source database for the data source that the relation points to with the connection.Ensuring correct permissions is also important for complete results for rollup and formula properties.

Rollup

Data source property config: Rollup
If the type of a page property value is "rollup", then the property value contains a "rollup" object with the following fields:

Example rollup page property value as returned in a GET page request

For rollup properties with more than 25 references, use the Retrieve a page property endpointBoth the Retrieve a page and Retrieve a page property endpoints will return information related to the page properties. In cases where a rollup property has more than 25 references, the Retrieve a page property endpoint must but used.Learn more about rollup properties in Notion’s Help Center.
The API does not support updating rollup page property values.To change a page’s rollup property, use the Notion UI.

Rich text

Data source property config: Rich text

Example properties body param for a POST or PATCH page request that creates or updates a rich_text page property value

Example rich_text page property value as returned in a GET page request

The Retrieve a page endpoint returns a maximum of 25 populated inline page or person references for a rich_text property. If a rich_text property includes more than 25 references, then you can use the Retrieve a page property item endpoint for the specific rich_text property to get its complete list of references.

Select

Data source property config: Select
If the type of a page property value is select, then the property value contains a select object with the following fields:

Example properties body param for a POST or PATCH page request that creates or updates a select page property value

Example select page property value as returned in a GET page request

Status

Data source property config: Status
If the type of a page property value is status, then the property value contains a status object with the following fields:

Example properties body param for a POST or PATCH page request that creates or updates a status page property value

Example status page property value as returned in a GET page request

Title

Data source property config: Title

Example properties body param for a POST or PATCH page request that creates or updates a title page property value

Example title page property value as returned in a GET page request

The Retrieve a page endpoint returns a maximum of 25 inline page or person references for a title property. If a title property includes more than 25 references, then you can use the Retrieve a page property item endpoint for the specific title property to get its complete list of references.

URL

Data source property config: URL

Example properties body param for a POST or PATCH page request that creates or updates a url page property value

Example url page property value as returned in a GET page request

Unique ID

Data source property config: Unique ID
Unique IDs can be read using the API with a GET page request, but they cannot be updated with the API, since they are auto-incrementing.

Example unique_id page property value as returned in a GET page request

Verification

The verification status of a page in a wiki database. Pages can be verified, unverified, or expired (when a verification’s end date is in the past). You can set or update the verification status via the Create page and Update page endpoints. The verified_by field is read-only and is automatically set to the acting connection.
The verification property is only available for pages that are part of a wiki database. To learn more about wiki databases and verifying pages, see our Help Center article.

Example verification page property values as returned in a GET page request

Unverified
Verified with no expiration date set
Verified with 90-day expiration date

Example: set verification via Update page

The verified_by field is ignored when writing — the acting connection is always recorded as the verifier. Do not set the verification Owner property in the same request; it is managed automatically.

Unsupported properties

The Public API supports a subset of property types. Unsupported types will be returned with a null value. Exclude these unsupported types when you are updating page properties.

Paginated page properties

The title, rich_text, relation and people page properties are returned as a paginated list object of individual property_item objects. An abridged set of the the properties found in the list object is below. Refer to the pagination documentation for additional information.