- Containers: the folders and groups that give the brain its shape. A container can hold other containers.
- Nodes: the actual content, meaning the pages and the chunks inside them. Nodes live inside containers.
Reading a brain
Find a brain
GET /brains/public lists the public brains. If you already have an ID, GET /brains/{id} fetches that one.Walk the containers
GET /brains/{id}/containers gives you a flat list. GET /brains/{id}/containers/tree gives you the same containers nested in their hierarchy.List the nodes
GET /brains/{id}/containers/{containerId}/nodes returns lightweight previews (id, summary, type) rather than full content. Use the /nodes/tree variant when you want them nested.Querying a brain
Most of the time you do not want to walk the whole graph. You want an answer. That is what query is for:Query a brain
POST /brains/{id}/query searches across the whole brain.Query a container
POST /brains/{id}/containers/{containerId}/query narrows the search to one container.query, and optionally a limit between 1 and 20 (it defaults to 5). You get back the matched pages, chunks, and chunk_parts, a graph_tree that ties them together, and the relations between them.
If a brain has exampleQueries set, those are AI-generated starting points. Try one of those first.
These endpoints always return HTTP 200, even when the query fails. Read the
success and error fields in the response body to find out what actually happened, rather than relying on the status code.Access scope
Reading and querying do not see the same set of brains:- Read endpoints use your own API key, so you can read any public brain plus any brain you own.
- Query endpoints run under a shared Versuno service identity instead of your personal access, so they resolve public brains by ID.

