Skip to main content
Deletes a block by setting its in_trash property to true. Deleting a block also affects its children - they will inherit the parent’s trash status.

Method Signature

Source: Client.ts:613-624

Parameters

block_id
string
required
The ID of the block to delete
auth
string
Optional authentication token to override the client-level auth

Response

Returns the deleted block as a BlockObjectResponse or PartialBlockObjectResponse with in_trash set to true.
object
string
Always "block"
id
string
The block ID
in_trash
boolean
Always true after deletion
archived
boolean
Archived status of the block
last_edited_time
string
Timestamp when the block was deleted
last_edited_by
PartialUserObjectResponse
User who deleted the block

Examples

Delete a Block

Delete Multiple Blocks

Delete with Confirmation

Delete and Log Details

Conditional Deletion

Restoring Deleted Blocks

You can restore a deleted block by updating its in_trash property:

Important Notes

Deleting a block with children will also move all child blocks to trash. Child blocks inherit the parent’s trash status.
Blocks in trash can be permanently deleted by Notion’s system after 30 days. To restore a block, use the update endpoint before permanent deletion occurs.
Deleting a child page or child database block will move the entire page or database and its contents to trash.

Error Handling

Bulk Deletion with Error Handling

Differences from Archive

Deletion (in_trash: true) and archival (archived: true) are different:
  • Archive (archived: true) - Use for blocks you want to hide but keep indefinitely. Archived blocks stay archived until manually unarchived.
  • Delete (in_trash: true) - Use for blocks you intend to permanently remove. Trashed blocks are auto-deleted after 30 days.