Skip to main content
PATCH
Adds blocks to a document, or inside a block. Requires Insert content. If any block is rejected, nothing is saved.
string
required
Bearer <token>. See Tokens.
string
Optional. Only 2026-03-11 is accepted. Without it, the current version is used. A different value returns 400.
string
required
A document ID or block ID.
object[]
required
Up to 100 blocks. See Block values.
object
Where to add them. The default is the end.
  • { "type": "end" }
  • { "type": "start" }
  • { "type": "after_block", "after_block": { "id": "..." } }
object
{ "mode": "silent" } sends no notifications for mentions in these blocks. The default is default.

Position

  • after_block needs a direct child of the target. A block elsewhere returns 400, and an ID that doesn’t exist returns 404.
  • If the after_block block was deleted through the API, the new blocks go to the end. If its parent was deleted, the response is 400.
  • If a document ends with the empty line the editor adds, the new blocks go before it.

What each target accepts

table_row and column only go in a table and a column_list. Elsewhere the response is 400.

Response

A list of block objects: the new blocks first, then the siblings after them, up to 100. If there are more siblings, has_more is true. To read the rest, use List block children. Sending children: [] adds nothing and returns the target’s current children.

Errors

See Common rules for shared errors.