properties object. This properties object is composed of individual database property objects. These property objects define the database schema and are rendered in the Notion UI as database columns.📘Database rows
If you’re looking for information about how to use the API to work with database rows, then refer to the page property values documentation. The API treats database rows as pages.
| Field | Type | Description | Example value |
|---|---|---|---|
id | string | An identifier for the property, usually a short string of random letters and symbols. Some automatically generated property types have special human-readable IDs. For example, all Title properties have an id of "title". | "fy:{" |
name | string | The name of the property as it appears in Notion. | |
type | string (enum) | The type that controls the behavior of the property. Possible values are: - "checkbox" - "created_by" - "created_time" - "date" - "email" - "files" - "formula" - "last_edited_by" - "last_edited_time" - "multi_select" - "number" - "people" - "phone_number" - "relation" - "rich_text" - "rollup" - "select" - "status" - "title" - "url" | "rich_text" |
type of the object, and the value is an object containing type-specific configuration. The following sections detail these type-specific objects along with example property objects for each type.checkbox type object is empty; there is no additional property configuration."Task complete": {
"id": "BBla",
"name": "Task complete",
"type": "checkbox",
"checkbox": {}
}created_by type object is empty. There is no additional property configuration."Created by": {
"id": "%5BJCR",
"name": "Created by",
"type": "created_by",
"created_by": {}
}created_time type object is empty. There is no additional property configuration."Created time": {
"id": "XcAf",
"name": "Created time",
"type": "created_time",
"created_time": {}
}date type object is empty; there is no additional configuration."Task due date" {
"id": "AJP%7D",
"name": "Task due date",
"type": "date",
"date": {}
}email type object is empty. There is no additional property configuration."Contact email": {
"id": "oZbC",
"name": "Contact email",
"type": "email",
"email": {}
}📘
The Notion API does not yet support uploading files to Notion.
files type object is empty; there is no additional configuration."Product image": {
"id": "pb%3E%5B",
"name": "Product image",
"type": "files",
"files": {}
}formula type object defines the expression in the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
expression | string | The formula that is used to compute the values for this property. Refer to the Notion help center for information about formula syntax. | "prop(\"Price\") * 2" |
"Updated price": {
"id": "YU%7C%40",
"name": "Updated price",
"type": "formula",
"formula": {
"expression": "prop(\"Price\") * 2"
}
}last_edited_by type object is empty. There is no additional property configuration.last_edited_time type object is empty. There is no additional property configuration."Last edited time": {
"id": "jGdo",
"name": "Last edited time",
"type": "last_edited_time",
"last_edited_time": {}
}multi_select type object includes an array of options objects. Each option object details settings for the option, indicating the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | The color of the option as rendered in the Notion UI. Possible values include: - blue - brown - default - gray - green - orange - pink - purple - red - yellow | "blue" |
id | string | An identifier for the option, which does not change if the name is changed. An id is sometimes, but not always, a UUID. | "ff8e9269-9579-47f7-8f6e-83a84716863c" |
name | string | The name of the option as it appears in Notion. Note: Commas (",") are not valid for multi-select properties. | "Fruit" |
"Store availability": {
"id": "flsb",
"name": "Store availability",
"type": "multi_select",
"multi_select": {
"options": [
{
"id": "5de29601-9c24-4b04-8629-0bca891c5120",
"name": "Duc Loi Market",
"color": "blue"
},
{
"id": "385890b8-fe15-421b-b214-b02959b0f8d9",
"name": "Rainbow Grocery",
"color": "gray"
},
{
"id": "72ac0a6c-9e00-4e8c-80c5-720e4373e0b9",
"name": "Nijiya Market",
"color": "purple"
},
{
"id": "9556a8f7-f4b0-4e11-b277-f0af1f8c9490",
"name": "Gus's Community Market",
"color": "yellow"
}
]
}
}number type object contains the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
format | string (enum) | The way that the number is displayed in Notion. Potential values include: - argentine_peso - baht - canadian_dollar - chilean_peso - colombian_peso - danish_krone - dirham - dollar - euro - forint - franc - hong_kong_dollar - koruna - krona - leu - lira - mexican_peso - new_taiwan_dollar - new_zealand_dollar - norwegian_krone - number - number_with_commas - percent - philippine_peso - pound - rand - real - ringgit - riyal - ruble - rupee - rupiah - shekel - singapore_dollar - uruguayan_peso - yen, - yuan - won - zloty | "percent" |
"Price"{
"id": "%7B%5D_P",
"name": "Price",
"type": "number",
"number": {
"format": "dollar"
}
}people type object is empty; there is no additional configuration."Project owner": {
"id": "FlgQ",
"name": "Project owner",
"type": "people",
"people": {}
}phone_number type object is empty. There is no additional property configuration."Contact phone number": {
"id": "ULHa",
"name": "Contact phone number",
"type": "phone_number",
"phone_number": {}
}relation type object contains the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
database_id | string (UUID) | The database that the relation property refers to. The corresponding linked page values must belong to the database in order to be valid. | "668d797c-76fa-4934-9b05-ad288df2d136" |
synced_property_id | string | The id of the corresponding property that is updated in the related database when this property is changed. | "fy:{" |
synced_property_name | string | The name of the corresponding property that is updated in the related database when this property is changed. | "Ingredients" |
"Projects": {
"id": "~pex",
"name": "Projects",
"type": "relation",
"relation": {
"database_id": "6c4240a9-a3ce-413e-9fd0-8a51a4d0a49b",
"synced_property_name": "Tasks",
"synced_property_id": "JU]K"
}
}📘To update a database relation property via the API, share the related parent database with the integration.
rich_text type object is empty; there is no additional configuration."Project description": {
"id": "NZZ%3B",
"name": "Project description",
"type": "rich_text",
"rich_text": {}
}rollup type object contains the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
function | string (enum) | The function that computes the rollup value from the related pages. Possible values include: - average - checked - count_per_group - count - 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 - unchecked - unique - show_original - show_unique - sum | "sum" |
relation_property_id | string | The id of the related database property that is rolled up. | "fy:{" |
relation_property_name | string | The name of the related database property that is rolled up. | Tasks" |
rollup_property_id | string | The id of the rollup property. | "fy:{" |
rollup_property_name | string | The name of the rollup property. | "Days to complete" |
"Estimated total project time": {
"id": "%5E%7Cy%3C",
"name": "Estimated total project time",
"type": "rollup",
"rollup": {
"rollup_property_name": "Days to complete",
"relation_property_name": "Tasks",
"rollup_property_id": "\\nyY",
"relation_property_id": "Y]<y",
"function": "sum"
}
}select type object contains an array of objects representing the available options. Each option object includes the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | The color of the option as rendered in the Notion UI. Possible values include: - blue - brown - default - gray - green - orange - pink - purple - red - yellow | - "red" |
id | string | An identifier for the option. It doesn't change if the name is changed. These are sometimes, but not always, UUIDs. | "ff8e9269-9579-47f7-8f6e-83a84716863c" |
name | string | The name of the option as it appears in the Notion UI. Note: Commas (",") are not valid for select values. | "Fruit" |
"Food group": {
"id": "%40Q%5BM",
"name": "Food group",
"type": "select",
"select": {
"options": [
{
"id": "e28f74fc-83a7-4469-8435-27eb18f9f9de",
"name": "🥦Vegetable",
"color": "purple"
},
{
"id": "6132d771-b283-4cd9-ba44-b1ed30477c7f",
"name": "🍎Fruit",
"color": "red"
},
{
"id": "fc9ea861-820b-4f2b-bc32-44ed9eca873c",
"name": "💪Protein",
"color": "yellow"
}
]
}
}status type object includes an array of options objects and an array of groups objects.options array is a sorted list of list of the available status options for the property. Each option object in the array has the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | The color of the option as rendered in the Notion UI. Possible values include: - blue - brown - default - gray - green - orange - pink - purple - red - yellow | "green" |
id | string | An identifier for the option. The id does not change if the name is changed. It is sometimes, but not always, a UUID. | "ff8e9269-9579-47f7-8f6e-83a84716863c" |
name | string | The name of the option as it appears in the Notion UI. Note: Commas (",") are not valid for status values. | "In progress" |
groups array is a sorted list of the available groups for the property. Each group object in the array has the following fields:| Field | Type | Description | Example value |
|---|---|---|---|
color | string (enum) | The color of the option as rendered in the Notion UI. Possible values include: - blue - brown - default - gray - green - orange - pink - purple - red - yellow | "purple" |
id | string | An identifier for the option. The id does not change if the name is changed. It is sometimes, but not always, a UUID. | "ff8e9269-9579-47f7-8f6e-83a84716863c" |
name | string | The name of the option as it appears in the Notion UI. Note: Commas (",") are not valid for status values. | "To do" |
option_ids | an array of strings (UUID) | A sorted list of ids of all of the options that belong to a group. | Refer to the example status object below. |
"Status": {
"id": "biOx",
"name": "Status",
"type": "status",
"status": {
"options": [
{
"id": "034ece9a-384d-4d1f-97f7-7f685b29ae9b",
"name": "Not started",
"color": "default"
},
{
"id": "330aeafb-598c-4e1c-bc13-1148aa5963d3",
"name": "In progress",
"color": "blue"
},
{
"id": "497e64fb-01e2-41ef-ae2d-8a87a3bb51da",
"name": "Done",
"color": "green"
}
],
"groups": [
{
"id": "b9d42483-e576-4858-a26f-ed940a5f678f",
"name": "To-do",
"color": "gray",
"option_ids": [
"034ece9a-384d-4d1f-97f7-7f685b29ae9b"
]
},
{
"id": "cf4952eb-1265-46ec-86ab-4bded4fa2e3b",
"name": "In progress",
"color": "blue",
"option_ids": [
"330aeafb-598c-4e1c-bc13-1148aa5963d3"
]
},
{
"id": "4fa7348e-ae74-46d9-9585-e773caca6f40",
"name": "Complete",
"color": "green",
"option_ids": [
"497e64fb-01e2-41ef-ae2d-8a87a3bb51da"
]
}
]
}
}🚧It is not possible to update a status database property's
nameoroptionsvalues via the API.Update these values from the Notion UI, instead.
title type object itself is empty; there is no additional configuration."Project name": {
"id": "title",
"name": "Project name",
"type": "title",
"title": {}
}🚧All databases require one, and only one,
titleproperty.The API throws errors if you send a request to Create a database without a titleproperty, or if you attempt to Update a database to add or remove atitleproperty.
📘Title database property vs. database title
A titledatabase property is a type of column in a database.A database titledefines the title of the database and is found on the database object.Every database requires both a database titleand atitledatabase property.
url type object is empty. There is no additional property configuration."Project URL": {
"id": "BZKU",
"name": "Project URL",
"type": "url",
"url": {}
}