Skip to main content

Overview

A page’s properties object holds its property values. In a data source, each page is a row and each property is a column in table view. The data source defines the property names and types. The tabs compare the same property across API objects. Schema and Page value examples each show one entry in a response’s properties object. Page write shows an Update page request body; Create page also needs a parent. Read-only types have no Page write tab. For title, rich_text, people, and relation, the Property item tab shows one entry in a paginated results array. For other types, it shows the endpoint response. Replace example names and IDs with values from your workspace.

Attributes

A property’s id stays the same when its name changes. IDs can be short strings or UUIDs. The Name property always has the ID title. Responses use URL-encoded property IDs, such as f%5C%5C%3Ap. Pass the returned ID as-is to the SDK or in an API path. Don’t encode it a second time. You can also use a property ID as a key in a request’s properties object. Page responses map property names to values. Page writes can use names or IDs. A page whose parent is another page has only a title property. For pages in a data source, write keys must match that data source’s schema. The object: "property_item" field appears only in property-item responses. It is not part of a page response’s properties entries.

Writing and clearing values

Create page and Update page accept a properties object. Each entry contains the key for its type and the value to save. Response-only fields such as id, has_more, and rich text plain_text are not needed in a write. On update, omitted properties keep their values. An array replaces the entire value of that property; it does not append items. Keep any existing people, files, tags, or related pages you still need in the submitted array. For example, {"properties":{"Due date":{"date":null}}} clears a page’s date. Setting a whole schema entry to null instead removes the property from the data source. Writes must fit the request limits. A successful read can contain more items than one write accepts.

Type objects

Button

A Button property returns button: {}. The API does not expose its actions or let you press it by updating a page.
Schema

Checkbox

checkbox is true when checked and false when unchecked.
Schema

Created by

created_by is a user object for the page’s creator. Notion sets this read-only value. The user object may contain only object and id.
Schema

Created time

created_time is the page’s creation time as an ISO 8601 timestamp. Notion sets this read-only value.
Schema

Date

date is a date object or null. It can hold a date, a time, or a range. When you provide time_zone, include a time in start and end, without a UTC offset. Otherwise, use an offset in a timestamp or a date such as 2026-09-15. Omitted end and time_zone fields return as null.
Schema

Email

email is an email address string or null.
Schema

Files

The Files & media property uses the API key files. Its value is an array of file objects, each with a name. An external file uses external: { "url": "https://example.com/file.pdf" }. A file hosted by Notion returns type: "file", a temporary download URL, and an expiry_time. Retrieve the page again to get a fresh URL after it expires. To attach an uploaded file, use type: "file_upload" and file_upload: { "id": "..." } with a completed file upload. Reads return the attached file as type: "file", not file_upload. A file update replaces the full list, so include files you want to keep.
Schema

Formula

formula holds the result of the expression in the data source schema. The result is read-only; the expression can be changed through Update a data source. The result’s type is string, number, boolean, date, or unsupported. Read the field with that name. A supported result can be null when it has no value.
Schema

Formula result types

These are the objects inside the formula field.

Unsupported formula

A formula or rollup can return type: "unsupported" with unsupported: {} when it depends on too many related pages or nested calculations. This result has no usable value. Reduce the related pages or simplify the calculation. Requesting the property again does not remove this limit. For data source queries, filter the returned properties and retrieve details only when you need them.
Formula field

Last edited by

last_edited_by is a user object for the page’s last editor. Notion sets this read-only value. The user object may contain only object and id.
Schema

Last edited time

last_edited_time is the page’s last edit time as an ISO 8601 timestamp. Notion sets this read-only value.
Schema

Multi-select

multi_select is an array of selected options. Each response option has id, name, and color. Write options by id or name; use [] for no selection. A new option name adds an option to the schema if your connection can write to the parent data source. Option names cannot contain commas. To edit the available options, see Multi-select schemas.
Schema

Number

number is a JSON number or null. The schema’s number format controls its display in Notion. For example, 0.25 displays as 25% with the percent format.
Schema

People

The Person property uses the API key people. A page response contains an array of people or groups. User objects can be partial, so do not assume that a name or email is present. Writes accept user IDs, including bots that appear as user objects in the API. Bots used internally by Notion may not be assignable. Retrieve a page property item returns a paginated list with one user in each item’s people field. Use it when a page response omits people.
Schema

Phone number

The Phone property uses the API key phone_number. Its value is a string or null. The API does not enforce a phone-number format.
Schema

Place

place is a location object or null. It supports reading and writing coordinates, with optional place details. It is the property used by map views. The API does not look up coordinates from a name or address. Provide lat and lon when writing a value.
Schema

Relation

relation is an array of related page IDs. Each page must belong to the data source named by the relation schema. In a page response, has_more: true means the relation has more than 25 page references. Use property-item pagination to read the rest. A page write replaces the relation, so read all existing references before adding one. Share the related database with your connection too. Missing access can leave relation values empty or make formula and rollup results incomplete. Check access before treating an empty result as missing data.
Schema

Rich text

The Text property uses the API key rich_text. Its value is an array of rich text objects. These can contain formatted text, mentions, and equations. Writes use the input fields for each rich text type. Responses also include annotations, plain_text, and href. Text in a page property is separate from the page’s content blocks.
Schema

Rollup

rollup holds the result of a calculation over a relation. Its value is read-only. The schema defines the relation, target property, and function. A page response puts array values in rollup.array. The property-item endpoint puts individual values in results and rollup metadata in property_item.rollup. It can also return type: "incomplete" while pagination is in progress. Share the related database with your connection too. Missing access can leave relation values empty or make formula and rollup results incomplete. Check access before treating an empty result as missing data.
Schema

Unsupported rollup

A formula or rollup can return type: "unsupported" with unsupported: {} when it depends on too many related pages or nested calculations. This result has no usable value. Reduce the related pages or simplify the calculation. Requesting the property again does not remove this limit. For data source queries, filter the returned properties and retrieve details only when you need them.
Rollup field
Some rollup functions also have endpoint-specific limits.

Select

select is one option object or null. A response option has id, name, and color. Write an option by id or name. A new option name adds an option to the schema if your connection can write to the parent data source. Option names cannot contain commas. Option colors belong to the schema, not the page value.
Schema

Status

status is one status option or null. The response contains id, name, and color, just like a select value. Write an existing status option by id or name. A page write does not create a new status option or set its group. Use Update data source properties to manage status options.
Schema

Title

The Name property uses the API key title. Its value is an array of rich text objects. Each data source has exactly one Name property, which names each page in that data source. For a page whose parent is another page, use title as the property key. This is separate from the name of the data source itself.
Schema

Unique ID

The ID property uses the API key unique_id. It contains number and prefix. Notion assigns the number; you cannot set it in a page write. The number is unique within the data source. Either field can be null. The schema’s prefix controls labels such as TASK-42.
Schema

URL

url is a URL string or null.
Schema

Verification

verification is available on pages in a wiki database. It is an object or null. Verification dates require timestamps, such as 2026-09-15T09:00:00Z. Date-only values such as 2026-09-15 return a validation error. Omit date or set it to null to verify without an expiration. An unverified value has date: null and verified_by: null. A verified page becomes expired when its end date passes. You can write verification through Create page or Update page. The acting connection is recorded as the verifier. Omit verified_by and do not set the wiki’s verification Owner property in the same request.
Schema

Unsupported properties

Not every property feature in Notion is writable through the API. Button values are empty objects. Unknown or unavailable values must not be copied into page writes. A null value can also mean an empty supported property; it does not by itself mean that the type is unsupported.

Icon

A page’s icon and cover are top-level fields on the page object. They are not entries in properties. See Emoji and icon for icon types and examples.

Paginated page properties

A page response can omit values when a property refers to many pages or people: Use Retrieve a page property item when you need the full value. Read every page of property items. Formula and rollup calculation limits still apply. The list response and cursor fields are defined in Page property items. For a complete SDK example, see Read every item in a page property.