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 theproperties 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:| Field | Type | Description | Example value |
|---|---|---|---|
id | string | An underlying identifier for the property. Historically, this may be a UUID, but newer IDs are a short ID that’s always URL-encoded in the API and in integration webhooks.id may be used in place of name when creating or updating pages.id remains constant when the property name changes. | "f%5C%5C%3Ap" |
type | string (enum) | The type of the property in the page object. Possible type values are: - checkbox - created_by - created_time - date - email- files - formula- last_edited_by - last_edited_time- multi_select- number- people- phone_number- relation - rollup- rich_text - select - status- title- url - unique_id- verificationRefer to specific type sections below for details on type-specific values. | "rich_text" |
checkboxcreated_bycreated_timedateemailfilesformulalast_edited_bylast_edited_timemulti_selectnumberpeoplephone_numberrelationrolluprich_textselectstatustitleurlunique_idverification | object | A type object that contains data specific to the page property type, including the page property value. Refer to the type objects section for descriptions and examples of each type. | "checkbox": true |
Size limits for page property valuesFor information about size limitations for specific page property objects, refer to the limits for property values documentation.
object, which is always the string "property_item", as described in Page property items.
Type objects
Checkbox
| Field | Type | Description | Example value |
|---|---|---|---|
checkbox | boolean | Whether the checkbox is checked (true) or unchecked (false). | true |
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
| Field | Type | Description | Example value |
|---|---|---|---|
created_by | object | A user object containing information about the user who created the page. created_by can’t be updated. | Refer to the example response objects below. |
Example created_by page property value as returned in a GET page request
Created time
| Field | Type | Description | Example value |
|---|---|---|---|
created_time | string (ISO 8601 date and time) | The date and time that the page was created. The created_time value can’t be updated. | "2022-10-12T16:34:00.000Z" |
Example created_time page property value as returned in a GET page request
Date
If thetype of a page property value is "date", then the property value contains a "date" object with the following fields:
| Field | Type | Description | Example value |
|---|---|---|---|
end | string (ISO 8601 date and time) | (Optional) A string representing the end of a date range. If the value is null, then the date value is not a range. | "2020-12-08T12:00:00Z" |
start | string (ISO 8601 date and time) | A date, with an optional time. If the date value is a range, then start represents the start of the range. | "2020-12-08T12:00:00Z” |
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
| Field | Type | Description | Example value |
|---|---|---|---|
email | string | A string describing an email address.”[email protected]”` |
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
| Field | Type | Description | Example value |
|---|---|---|---|
files | array of file objects | An array of objects containing information about the files. | Refer to the example response objects below. |
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
Formula property value objects represent the result of evaluating a formula described in the data source’s properties. If thetype of a page property value is "formula", then the property value contains a "formula" object with the following fields:
| Field | Type | Description | Example value |
|---|---|---|---|
boolean || date || number || string | boolean || date || number || string | The value of the result of the formula. The value can’t be updated directly via the API. | 42 |
type | string (enum) | A string indicating the data type of the result of the formula. Possible type values are: - boolean - date - number - string | "number" |
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 parameters and fields in the Create a page and Update page properties APIs are top-level are not nested under properties.| Field | Type | Description | Example value |
|---|---|---|---|
icon | an object | Icon object | Refer to the example response objects below. |
Example emoji icon property value as returned in GET page request
Example uploaded icon page property value as returned in a GET page request
Example updating a page icon to an uploaded file
After uploading an image using the File Upload API, use the File Upload’s ID in the Create a page or Update page properties API to attach it as a page icon. For example:cover parameter, nesting a file_upload parameter the same way as the icon example.
Last edited by
| Field | Type | Description | Example value |
|---|---|---|---|
last_edited_by | object | A user object containing information about the user who last updated the page. last_edited_by can’t be updated. | Refer to the example response objects below. |
Example last_edited_by page property value as returned in a GET page request
Last edited time
| Field | Type | Description | Example value |
|---|---|---|---|
last_edited_time | string (ISO 8601 date and time) | The date and time that the page was last edited. The last_edited_time value can’t be updated. | "2022-10-12T16:34:00.000Z" |
Example last_edited_time page property value as returned in a GET page request
Multi-select
If thetype of a page property value is "multi_select", then the property value contains a "multi_select" array with the following fields:
| Field | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | Color of the option. Note: the color value can’t be updated via the API. Possible "color" values are: - blue- brown- default(the default value)- gray- green- orange- pink- purple- red- yellow | "red" |
id | string | The ID of the option. You can use id or name to update a multi-select property. | "b3d773ca-b2c9-47d8-ae98-3c2ce3b2bffb" |
name | string | The name of the option as it appears in Notion. If the multi-select data source property does not yet have an option by that name, then the name will be added to the data source schema if the integration also has write access to the parent data source. Note: Commas ( ",") are not valid for select values. | "JavaScript" |
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 integration needs write access to the parent database.
Number
| Field | Type | Description | Example value |
|---|---|---|---|
number | number | A number representing some value. | 1234 |
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
| Field | Type | Description | Example value |
|---|---|---|---|
people | array of user objects | An array of user objects. | Refer to the example response objects below. |
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
| Field | Type | Description | Example value |
|---|---|---|---|
phone_number | string | A string representing a phone number. No phone number format is enforced. | "415-867-5309" |
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
| Field | Type | Description | Example value |
|---|---|---|---|
has_more | boolean | If a relation has more than 25 references, then the has_more value for the relation in the response object is true. If a relation doesn’t exceed the limit, then has_more is false. | Refer to the example response objects below. |
relation | an array of page references | An array of related page references. A page reference is an object with an id key and a string value corresponding to a page ID in another data source. | Refer to the example response objects below. |
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 integration.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 integration.Ensuring correct permissions is also important for complete results for rollup and formula properties.Rollup
If thetype of a page property value is "rollup", then the property value contains a "rollup" object with the following fields:
| Field | Type | Description | Example value |
|---|---|---|---|
array || date || incomplete || number || unsupported | Corresponds to the field. For example, if the field is number, then the type of the value is number. | The value of the calculated rollup. The value can’t be directly updated via the API. | 1234 |
function | string (enum) | The function that is evaluated for every page in the relation of the rollup. Possible "function" values are: - average - checked - count - count_per_group - count_values - date_range - earliest_date - empty - latest_date - max - median - min - not_empty - percent_checked - percent_empty - percent_not_empty - percent_per_group - percent_unchecked - range - show_original - show_unique - sum - unchecked - unique | "sum" |
type | array || date || incomplete || number || unsupported | The value type of the calculated rollup. | number |
Example rollup page property value as returned in a GET page request
Rich text
| Field | Type | Description | Example value |
|---|---|---|---|
rich_text | an array of rich text objects | An array of rich text objects | Refer to the example response objects below. |
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
If the type of a page property value isselect, then the property value contains a select object with the following fields:
| Property | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | The color of the option. Possible "color" values are: - blue- brown- default- gray- green- orange- pink- purple- red- yellowDefaults to default. The color value can’t be updated via the API. | red |
id | string | The ID of the option. You can use id or name to update a select property. | "b3d73ca-b2c9-47d8-ae98-3c2ce3b2bffb" |
name | string | The name of the option as it appears in Notion. If the select data source property doesn’t have an option by that name yet, then the name is added to the data source schema if the integration also has write access to the parent data source. Note: Commas ( ",") are not valid for select values. | "jQuery" |
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
If the type of a page property value isstatus, then the property value contains a status object with the following fields:
| Property | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | The color of the option. Possible "color" values are: - blue- brown- default- gray- green- orange- pink- purple- red- yellow Defaults to default. The color value can’t be updated via the API. | "red" |
id | string | string | "b3d773ca-b2c9-47d8-ae98-3c2ce3b2bffb" |
name | string | The name of the option as it appears in Notion. | "In progress" |
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
| Field | Type | Description | Example value |
|---|---|---|---|
title | an array of rich text objects | An array of rich text objects. | Refer to the example response objects below. |
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
| Field | Type | Description | Example value |
|---|---|---|---|
url | string | A string that describes a web address. | "https://developers.notion.com/" |
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
| Field | Type | Description | Example value |
|---|---|---|---|
number | number | The ID count (auto-incrementing). | 3 |
prefix | string or null | An optional prefix to be applied to the unique ID. | ”RL” |
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 url 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 or unverified, and verifications can have an optional expiration date set. The verification status cannot currently be set or updated via the public API.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.| Field | Type | Description | Example value |
|---|---|---|---|
state | string | The verification state of the page. "verified" or "unverified". | "unverified" |
verified_by | User object or null | If the page if verified, a User object will be included to indicate the user who verified the page. | Refer to the example response objects below. |
date | Object or null | If the page is verified, the date object will include the date the verification started (start). If an expiration date is set for the verification, an end date (end) will be included. (ISO 8601 date and time.) | Refer to the example response objects below. |
Example verification page property values as returned in a GET page request
Unverified
Unsupported properties
The Public API supports a subset of property types. Unsupported types will be returned with anull value. Exclude these unsupported types when you are updating page properties.
Paginated page properties
Thetitle, 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.
| Field | Type | Description | Example value |
|---|---|---|---|
object | "list" | Always "list". | "list" |
type | "property_item" | Always "property_item". | "property_item" |
results | list | List of property_item objects. | [{"object": "property_item", "id": "vYdV", "type": "relation", "relation": { "id": "535c3fb2-95e6-4b37-a696-036e5eac5cf6"}}... ] |
property_item | object | A property_item object that describes the property. | {"id": "title", "next_url": null, "type": "title", "title": {}} |
next_url | string or null | The URL the user can request to get the next page of results. | "http://api.notion.com/v1/pages/0e5235bf86aa4efb93aa772cce7eab71/properties/vYdV?start_cursor=LYxaUO&page_size=25" |