Built by Metorial, the integration platform for agentic AI.

Learn More

Tools

Update Block

Update an existing block's content and properties in the Roam Research graph. Only the provided fields will be modified; unspecified fields remain unchanged.

Batch Actions

Execute multiple write operations in a single batch request. Supports creating, updating, moving, and deleting blocks and pages. Actions are executed in the provided order. For creating nested blocks, assign a custom UID to a parent block and reference it in child blocks within the same batch.

Pull Entity Data

Retrieve structured data for a specific entity (page or block) from the Roam graph by its identifier. Returns selected or all attributes of the entity using Datomic pull syntax. Use this to get detailed information about a known page or block, including its content, children, references, and metadata.

Query Graph

Execute a Datalog query against the Roam Research graph database. Supports the full Datomic-style Datalog syntax with `:find` and `:where` clauses. Use this to search for blocks by content, find pages by title, traverse references, and perform aggregations across the graph. Queries can be parameterized via `args` for safe variable injection.

Delete Block

Permanently delete a block from the Roam Research graph. This also removes all child blocks nested under it. An exact read precedes deletion and independently checks absence afterward. The API does not provide undo or erase history, backups or referenced copies. An already absent target returns success false without another delete.

Get Page

Retrieve an exact page by title with its native nested block tree. Optionally download this page as locally generated JSON; this is not a full graph export.

Create Page

Create a new page in the Roam Research graph. Pages are identified by their title and can optionally be assigned a specific UID. After creation, blocks can be added to the page using the Create Block tool.

Create Block

Create a new block (content unit) in the Roam Research graph under a specified parent page or block. Blocks support Roam markup syntax including `[[page references]]`, `#tags`, `((block references))`, **bold**, *italic*, and TODO/DONE markers.

Update Page

Rename an existing page in the Roam Research graph by updating its title. The page is identified by its UID.

Search Blocks

Search for blocks containing specific text in the Roam Research graph. Returns matching blocks with their UIDs and content. This is a convenience wrapper around a Datalog query that performs case-sensitive text search across all blocks.

Delete Page

Permanently delete a page and all its blocks from the Roam Research graph. An exact read precedes deletion and independently checks absence afterward. The API does not provide undo or erase history, backups or referenced copies. An already absent target returns success false without another delete.

Add Daily Note

Add a block to an existing daily note page identified by its MM-DD-YYYY UID. Defaults to the current UTC date.

Move Block

Move an existing block to a new position within the Roam Research graph. The block can be moved to a different parent page or block, and its order among siblings can be specified.

List Pages

Discover page titles and UIDs with a native Datalog query. Returns a locally sorted, bounded subset; no native cursor or complete-graph guarantee is provided.

Get Block

Read a block by its exact UID, including native content, display properties, parent and child UIDs.