Skip to main content
All data source objects include a child properties object composed of individual data source property objects. These define the data source schema and are rendered as columns in the Notion UI.
Looking for page property values?To set or read values on individual rows (pages), see Page property values. The API treats data source rows as pages.
Every data source property object contains the following fields:
FieldTypeDescriptionExample value
idstringAn identifier for the property, usually a short string of random letters and symbols. Some automatically generated property types have special human-readable IDs (e.g. all Title properties have an id of "title")."fy:{"
namestringThe name of the property as it appears in Notion.
descriptionstringThe description of a property as it appears in Notion.
typestring (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", "place", "relation", "rich_text", "rollup", "select", "status", "title", "unique_id", "url""rich_text"
Each data source property object also contains a type object. The key of the object is the type, and the value is an object containing type-specific configuration. The following sections detail these type-specific objects.

Checkbox

A checkbox property contains checkboxes. The checkbox type object is empty; there is no additional configuration.
Example checkbox data source property
{
  "Task complete": {
    "id": "BBla",
    "name": "Task complete",
    "type": "checkbox",
    "checkbox": {}
  }
}

Created by

Contains people mentions of each row’s author. The created_by type object is empty. This value is read-only.
Example created by data source property
{
  "Created by": {
    "id": "%5BJCR",
    "name": "Created by",
    "type": "created_by",
    "created_by": {}
  }
}

Created time

Contains timestamps of when each row was created. The created_time type object is empty. This value is read-only.
Example created time data source property
{
  "Created time": {
    "id": "XcAf",
    "name": "Created time",
    "type": "created_time",
    "created_time": {}
  }
}

Date

Contains date values. The date type object is empty; there is no additional configuration.
Example date data source property
{
  "Task due date": {
    "id": "AJP%7D",
    "name": "Task due date",
    "type": "date",
    "date": {}
  }
}

Email

Contains email address values. The email type object is empty.
Example email data source property
{
  "Contact email": {
    "id": "oZbC",
    "name": "Contact email",
    "type": "email",
    "email": {}
  }
}

Files

Contains files uploaded to Notion or external links. The files type object is empty.
Example files data source property
{
  "Product image": {
    "id": "pb%3E%5B",
    "name": "Product image",
    "type": "files",
    "files": {}
  }
}

Formula

Contains values derived from a provided expression. The formula type object has:
FieldTypeDescriptionExample value
expressionstringThe formula used to compute values. Refer to the Notion help center for syntax."prop(\"Price\") / 2"
Example formula data source property
{
  "Updated price": {
    "id": "YU%7C%40",
    "name": "Updated price",
    "type": "formula",
    "formula": {
      "expression": "prop(\"Price\") / 2"
    }
  }
}

Last edited by

Contains people mentions of the person who last edited each row. The last_edited_by type object is empty. This value is read-only.
Example last edited by data source property
{
  "Last edited by": {
    "id": "eB_}",
    "name": "Last edited by",
    "type": "last_edited_by",
    "last_edited_by": {}
  }
}

Last edited time

Contains timestamps of when each row was last edited. The last_edited_time type object is empty. This value is read-only.
Example last edited time data source property
{
  "Last edited time": {
    "id": "jGdo",
    "name": "Last edited time",
    "type": "last_edited_time",
    "last_edited_time": {}
  }
}

Multi-select

Contains values from a range of options. Each row can have one or more options. The multi_select type object includes an options array. Each option has:
FieldTypeDescriptionExample value
colorstring (enum)The color of the option. Possible values: blue, brown, default, gray, green, orange, pink, purple, red, yellow"blue"
idstringAn identifier for the option. Does not change if the name is changed."ff8e9269-9579-47f7-8f6e-83a84716863c"
namestringThe name of the option as it appears in Notion. Commas are not valid. Names must be unique (case-insensitive)."Fruit"
Example multi-select data source property
{
  "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"
        }
      ]
    }
  }
}

Number

Contains numeric values. The number type object has:
FieldTypeDescriptionExample value
formatstring (enum)How the number displays in Notion. Values include: number, number_with_commas, percent, dollar, euro, pound, yen, yuan, won, ruble, rupee, franc, real, lira, krona, ringgit, and more."percent"
Example number data source property
{
  "Price": {
    "id": "%7B%5D_P",
    "name": "Price",
    "type": "number",
    "number": {
      "format": "dollar"
    }
  }
}

People

Contains people mentions. The people type object is empty.
Example people data source property
{
  "Project owner": {
    "id": "FlgQ",
    "name": "Project owner",
    "type": "people",
    "people": {}
  }
}

Phone number

Contains phone number values. The phone_number type object is empty. No format is enforced.
Example phone number data source property
{
  "Contact phone number": {
    "id": "ULHa",
    "name": "Contact phone number",
    "type": "phone_number",
    "phone_number": {}
  }
}

Place

Contains location values. Can be used with the Map view. The place type object is empty.
Place page property values are not fully supported via the API. Reading a place property returns null. See Unsupported properties.
Example place data source property
{
  "Place": {
    "id": "Xqz4",
    "name": "Place",
    "type": "place",
    "place": {}
  }
}

Relation

Contains relations — references to pages in another data source. The relation type object has:
FieldTypeDescriptionExample value
data_source_idstring (UUID)The data source that the relation refers to. Linked page values must belong to this data source."668d797c-76fa-4934-9b05-ad288df2d136"
dual_propertyobjectAn object with synced_property_id and synced_property_name for the corresponding property in the related data source. Present for dual (bidirectional) relations.See example below.
Example relation data source property
{
  "Projects": {
    "id": "~pex",
    "name": "Projects",
    "type": "relation",
    "relation": {
      "data_source_id": "6c4240a9-a3ce-413e-9fd0-8a51a4d0a49b",
      "dual_property": {
        "synced_property_name": "Tasks",
        "synced_property_id": "JU]K"
      }
    }
  }
}
Related databases must be shared with your integrationTo retrieve or update relation properties, the related database must also be shared with your integration.

Rich text

Contains text values. The rich_text type object is empty.
Example rich text data source property
{
  "Project description": {
    "id": "NZZ%3B",
    "name": "Project description",
    "type": "rich_text",
    "rich_text": {}
  }
}

Rollup

Contains values pulled from a related data source via a rollup. The rollup type object has:
FieldTypeDescriptionExample value
functionstring (enum)The function that computes the rollup value. Values include: average, checked, count, count_values, date_range, earliest_date, empty, latest_date, max, median, min, not_empty, percent_checked, percent_empty, percent_not_empty, percent_unchecked, range, show_original, show_unique, sum, unchecked, unique"sum"
relation_property_idstringThe id of the related data source property."fy:{"
relation_property_namestringThe name of the related data source property."Tasks"
rollup_property_idstringThe id of the property being rolled up."fy:{"
rollup_property_namestringThe name of the property being rolled up."Days to complete"
Example rollup data source property
{
  "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

Contains values from a selection of options. Only one option per row. The select type object includes an options array. Each option has:
FieldTypeDescriptionExample value
colorstring (enum)The color of the option. Possible values: blue, brown, default, gray, green, orange, pink, purple, red, yellow"red"
idstringAn identifier for the option. Does not change if the name is changed."ff8e9269-9579-47f7-8f6e-83a84716863c"
namestringThe name of the option as it appears in Notion. Commas are not valid. Names must be unique (case-insensitive)."Fruit"
Example select data source property
{
  "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

Contains values from a list of status options, organized into groups. The status type object includes options and groups arrays. Options — each has:
FieldTypeDescriptionExample value
colorstring (enum)The color of the option. Possible values: blue, brown, default, gray, green, orange, pink, purple, red, yellow"green"
idstringAn identifier for the option."ff8e9269-9579-47f7-8f6e-83a84716863c"
namestringThe name of the option as it appears in Notion. Commas are not valid. Names must be unique (case-insensitive)."In progress"
Groups — each has:
FieldTypeDescriptionExample value
colorstring (enum)The color of the group. Possible values: blue, brown, default, gray, green, orange, pink, purple, red, yellow"purple"
idstringAn identifier for the group."ff8e9269-9579-47f7-8f6e-83a84716863c"
namestringThe name of the group as it appears in Notion."To do"
option_idsarray of stringsSorted list of ids of options that belong to this group.
Example status data source property
{
  "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"] }
      ]
    }
  }
}
When creating a status property without specifying options, defaults (“Not started”, “In progress”, “Done”) with groups (“To-do”, “In progress”, “Complete”) are created. To reconfigure groups after creation, use the Notion UI.

Title

Controls the title that appears at the top of a page when a data source row is opened. The title type object is empty.
Example data source property
{
  "Project name": {
    "id": "title",
    "name": "Project name",
    "type": "title",
    "title": {}
  }
}
All data sources require exactly one title property. The API throws errors if you create a data source without a title property, or attempt to add or remove a title property.
Title data source property vs. data source titleA title data source property is a type of column in a data source. A data source title defines the name of the data source itself, found on the data source object. Every data source requires both.

Unique ID

Automatically incremented, unique across all pages in a data source. Useful for task or bug report IDs (e.g. TASK-1234). This value is read-only. The unique_id type object has an optional prefix:
FieldTypeDescriptionExample value
prefixstring or nullA common prefix assigned to pages. When set, enables lookup URLs like notion.so/TASK-1234."TASK"
Example unique ID data source property
{
  "Task ID": {
    "id": "tqqd",
    "name": "Task ID",
    "type": "unique_id",
    "unique_id": {
      "prefix": "TASK"
    }
  }
}

URL

Contains URL values. The url type object is empty.
Example URL data source property
{
  "Project URL": {
    "id": "BZKU",
    "name": "Project URL",
    "type": "url",
    "url": {}
  }
}