Handle all block children operations in the Notion API
Note: Access this endpoint through the client instance, e.g., notion$blocks$children. Not to be instantiated directly.
Methods
Method new()
Initialise block children endpoint.
Not to be called directly, e.g., use notion$pages$children instead.
Usage
BlocksChildrenEndpoint$new(client)Method retrieve()
Retrieve a block's children
Arguments
block_idString (required). The ID for a Notion block.
start_cursorCharacter. For pagination. If provided, returns results starting from this cursor. If NULL, returns the first page of results.
page_sizeInteger. Number of items to return per page (1-100). Defaults to 100.
Method append()
Append block children
Arguments
block_idString (required). The ID for a Notion block.
childrenList of lists (JSON array) (required). Block objects to append as children to the block.
afterCharacter. The ID of the existing block after which the new children are appended.
Examples
notion <- notion_client()
# ----- append children to a block
notion$blocks$children$append(
block_id = "23933ea0-c1e4-81d6-a6f6-dd5b57ad4aba",
children = list(
# add a level 2 heading called "Test Heading"
list(
object = "block",
heading_2 = list(
rich_text = list(list(
text = list(content = "Test Heading")
))
)
)
)
)
#> {
#> "object": "list",
#> "results": [
#> {
#> "object": "block",
#> "id": "23933ea0-c1e4-81dc-9f56-f3fa251a757f",
#> "parent": {
#> "type": "page_id",
#> "page_id": "23933ea0-c1e4-81d6-a6f6-dd5b57ad4aba"
#> },
#> "created_time": "2025-07-23T05:00:00.000Z",
#> "last_edited_time": "2025-07-23T05:00:00.000Z",
#> "created_by": {
#> "object": "user",
#> "id": "6b786605-e456-4237-9c61-5efaff23c081"
#> },
#> "last_edited_by": {
#> "object": "user",
#> "id": "6b786605-e456-4237-9c61-5efaff23c081"
#> },
#> "has_children": false,
#> "archived": false,
#> "in_trash": false,
#> "type": "heading_2",
#> "heading_2": {
#> "rich_text": [
#> {
#> "type": "text",
#> "text": {
#> "content": "Test Heading",
#> "link": {}
#> },
#> "annotations": {
#> "bold": false,
#> "italic": false,
#> "strikethrough": false,
#> "underline": false,
#> "code": false,
#> "color": "default"
#> },
#> "plain_text": "Test Heading",
#> "href": {}
#> }
#> ],
#> "is_toggleable": false,
#> "color": "default"
#> }
#> }
#> ],
#> "next_cursor": {},
#> "has_more": false,
#> "type": "block",
#> "block": {},
#> "request_id": "9e6e8dcd-dac3-479f-9d0c-b5ef44b628c9"
#> }
# ----- retrieve children of a block
notion$blocks$children$retrieve("23933ea0-c1e4-81d6-a6f6-dd5b57ad4aba")
#> {
#> "object": "list",
#> "results": [
#> {
#> "object": "block",
#> "id": "23933ea0-c1e4-81dc-9f56-f3fa251a757f",
#> "parent": {
#> "type": "page_id",
#> "page_id": "23933ea0-c1e4-81d6-a6f6-dd5b57ad4aba"
#> },
#> "created_time": "2025-07-23T05:00:00.000Z",
#> "last_edited_time": "2025-07-23T05:00:00.000Z",
#> "created_by": {
#> "object": "user",
#> "id": "6b786605-e456-4237-9c61-5efaff23c081"
#> },
#> "last_edited_by": {
#> "object": "user",
#> "id": "6b786605-e456-4237-9c61-5efaff23c081"
#> },
#> "has_children": false,
#> "archived": false,
#> "in_trash": false,
#> "type": "heading_2",
#> "heading_2": {
#> "rich_text": [
#> {
#> "type": "text",
#> "text": {
#> "content": "Test Heading",
#> "link": {}
#> },
#> "annotations": {
#> "bold": false,
#> "italic": false,
#> "strikethrough": false,
#> "underline": false,
#> "code": false,
#> "color": "default"
#> },
#> "plain_text": "Test Heading",
#> "href": {}
#> }
#> ],
#> "is_toggleable": false,
#> "color": "default"
#> }
#> }
#> ],
#> "next_cursor": {},
#> "has_more": false,
#> "type": "block",
#> "block": {},
#> "request_id": "c6a86d45-a6ea-4d08-87e5-6c47192c3495"
#> }
# ----- iterate through paginated results
if (FALSE) { # \dontrun{
start_cursor <- NULL
has_more <- FALSE
resps <- list()
i <- 1
while (has_more) {
resps[[i]] <- notion$blocks$children$retrieve(
"2926b407e3c44b49a1830609abe6744f",
start_cursor
)
has_more <- resps[[i]][["has_more"]]
start_cursor <- resps[[i]][["next_cursor"]]
i <- i + 1
}
} # }
