Heading 2 in the Notion UI:
Keys
Fields marked with an * are available to connections with any capabilities. Other properties require read content capabilities in order to be returned from the Notion API. Consult the connection capabilities reference for details.
Block types that support child blocks
Some block types contain nested blocks. The following block types support child blocks:- Bulleted list item
- Callout
- Child database
- Child page
- Column
- Heading 1, when the
is_toggleableproperty istrue - Heading 2, when the
is_toggleableproperty istrue - Heading 3, when the
is_toggleableproperty istrue - Heading 4, when the
is_toggleableproperty istrue - Meeting notes (renamed from Transcription in
2026-03-11) - Numbered list item
- Paragraph
- Quote
- Synced block
- Table
- Template
- To do
- Toggle
The API does not support all block types.Only the block type objects listed in the reference below are supported. Any unsupported block types appear in the structure, but contain a
type set to "unsupported". The unsupported object includes a block_type field that identifies the underlying block type (e.g., "form", "button").Block type objects
Every block object has a key corresponding to the value oftype. Under the key is an object with type-specific block information.
Many block types support rich text. In cases where it is supported, a
rich_text object will be included in the block type object. All rich_text objects will include a plain_text property, which provides a convenient way for developers to access unformatted text from the Notion block.Audio
Audio block objects contain a file object detailing information about the audio file.Supported audio types
The following file types can be attached with external URLs in the API as well as in the Notion app UI:.mp3.wav.ogg.oga.m4a
file_upload ID.
Supported file upload types
See the file upload reference for a list of supported file extensions and content types when attaching a File Upload to a block. Audio blocks only support file types in the “audio” section of the table.Bookmark
Bookmark block objects contain the following information within thebookmark property:
Breadcrumb
Breadcrumb block objects do not contain any information within thebreadcrumb property.
Bulleted list item
Bulleted list item block objects contain the following information within thebulleted_list_item property:
Callout
Callout block objects contain the following information within thecallout property:
Child database
Child database block objects contain the following information within thechild_database property:
Creating and updating
child_database blocksTo create or update child_database type blocks, use the Create a database and the Update a database endpoints, specifying the ID of the parent page in the parent body param.Child page
Child page block objects contain the following information within thechild_page property:
Creating and updating
child_page blocksTo create or update child_page type blocks, use the Create a page and the Update page endpoints, specifying the ID of the parent page in the parent body param.Code
Code block objects contain the following information within thecode property:
Column list and column
Column lists are parent blocks for columns. They do not contain any information within thecolumn_list property.
columns. They do not require any information within the column property, but a width_ratio number between 0 and 1 can be provided to customize the width of a column relative to others in the same column list. When omitted, the default is to use equal widths for all columns. When provided, width_ratios should add up to 1.
Columns can only be appended to column_lists.
column_list block using Append block children, the column_list must have at least two columns, and each column must have at least one child.
Retrieve the content in a column list
Follow these steps to fetch the content in acolumn_list:
1
Get the
column_list ID from a query to Retrieve block children for the parent page.2
Get the
column children from a query to Retrieve block children for the column_list.3
Get the content in each individual
column from a query to Retrieve block children for the unique column ID.Divider
Divider block objects do not contain any information within thedivider property.
Embed
Embed block objects include information about another website, or an uploaded file, displayed within the Notion UI. Theembed property contains the following information:
Provide either
url or file_upload when creating or updating an embed, not both. An embed backed by an uploaded file is returned with a temporary, signed embed.url. The link expires, so fetch the block again from the API to get a fresh url instead of caching it.Vimeo video links can be embedded in a Notion page using the API using the embed block type.For example, the following object can be passed to the Append block children endpoint:For other video sources, see Supported video types.
JSON
HTML blocks
An embed backed by an uploaded HTML file is an HTML block: the Notion app renders the file’s contents interactively in a sandboxed iframe instead of linking out to it. This is the same block the app creates with the/html command and that agents create through Notion MCP.
To create an HTML block with the API:
- Upload a file with an
.htmlor.htmextension using the File Upload API. - Attach it to an embed block via
embed.file_uploadwhen creating or updating the block.
Create an HTML block
embed.url for the underlying HTML file, like any other file-backed embed. Updating the embed to point at a non-HTML file or at a url turns it back into a regular embed.
Equation
Equation block objects are represented as children of paragraph blocks. They are nested within a rich text object and contain the following information within theequation property:
File
File block objects contain the following information within thefile property:
Headings
All heading block objects,heading_1, heading_2, heading_3, and heading_4, contain the following information within their corresponding objects:
Image
Image block objects contain a file object detailing information about the image.Supported external image types
The image must be directly hosted. In other words, theurl cannot point to a service that retrieves the image. The following image types are supported:
.bmp.gif.heic.jpeg.jpg.png.svg.tif.tiff
Supported file upload types
See the file upload reference for a list of supported file extensions and content types when attaching a File Upload to a block. Image blocks only support file types in the “image” section of the table.Link Preview
Link Preview block objects contain the originally pastedurl:
Meeting notes
In API version
2026-03-11, the transcription block type was renamed to meeting_notes. If you’re using an older API version, see transcription below.Meeting notes blocks are read-only. You cannot create or update them using the API. Use the child block IDs returned in the
children field to fetch the full content of each section using the Retrieve a block or Retrieve block children endpoints.meeting_notes (or transcription in older API versions) property:
All top-level fields are optional and only present when the corresponding data is available.
Mention
A mention block object is a child of a rich text object that is nested within a paragraph block object. This block type represents any@ tag in the Notion UI, for a user, date, Notion page, Notion database, or a miniaturized version of a Link Preview.
A mention block object contains the following fields:
Numbered list item
Numbered list item block objects contain the following information within thenumbered_list_item property:
Paragraph
Paragraph block objects contain the following information within theparagraph property:
Supported file upload types
See the file upload reference for a list of supported file extensions and content types when attaching a File Upload to a block. PDF blocks only support a type of.pdf.
Quote
Quote block objects contain the following information within thequote property:
Synced block
Similar to the Notion UI, there are two versions of asynced_block object: the original block that was created first and doesn’t yet sync with anything else, and the duplicate block or blocks synced to the original.
An original synced block must be created before corresponding duplicate block or blocks can be made.
Original synced block
Original synced block objects contain the following information within thesynced_block property:
Duplicate synced block
Duplicate synced block objects contain the following information within thesynced_from object:
Table
Table block objects are parent blocks for table row children. Table block objects contain the following fields within thetable property:
Table rows
Follow these steps to fetch thetable_rows of a table:
1
Get the
table ID from a query to Retrieve block children for the parent page.2
Get the
table_rows from a query to Retrieve block children for the table.table_row block object contains the following fields within the table_row property:
When creating a table block using the Append block children endpoint, the
table must have at least one table_row whose cells array has the same length as the table_width.Table of contents
Table of contents block objects contain the following information within thetable_of_contents property:
Tab
Tab block objects represent a tabbed container. Thetab property is an empty object ({}). Each tab within the container is a paragraph child block — the paragraph’s rich_text serves as the tab label, the paragraph’s icon sets the tab icon, and the paragraph’s children contain the tab’s content.
Only paragraph blocks can be direct children of a tab block. When creating tabs via Append block children, provide a tab block with paragraph children, each containing their own nested content blocks. Each paragraph child can optionally include an icon to display alongside the tab label.
Template
Deprecation NoticeAs of March 27, 2023 creation of template blocks will no longer be supported.
template property:
To do
To do block objects contain the following information within theto_do property:
Toggle blocks
Toggle block objects contain the following information within thetoggle property:
Transcription
Thetranscription block type is identical to meeting_notes except for the type name. In responses, type is "transcription" and the content object key is transcription instead of meeting_notes. All fields are the same — see the meeting notes reference for details.
Unsupported
When a block type is not yet supported by the API, the response includestype set to "unsupported" and an unsupported object with a block_type field. The block_type value is a plain string identifying the underlying internal block type (e.g., "form", "button", "drive"). This field is informational only and does not expose block content.
The
block_type value is a plain string, not an enum. New values may appear as Notion adds new block types. Do not rely on a fixed set of values.Video
Video block objects contain a file object detailing information about the video.Supported video types
.amv.asf.avi.f4v.flv.gifv.mkv.mov.mpg.mpeg.mpv.mp4.m4v.qt.wmv- YouTube video links that include
embedorwatch. E.g.https://www.youtube.com/watch?v=[id],https://www.youtube.com/embed/[id]
Vimeo video links are not currently supported by the video block type. However, they can be embedded in Notion pages using the
embed block type. See Embed for more information.