The data model
A brain is a graph. Versuno builds it by indexing a source, then storing the result as two kinds of objects:- Containers are the folders. They give the brain its shape, and a container can hold other containers.
- Nodes are the content. Every node has a
type, and the two you will see most arepage(a document) andchunk(a section of a page).
containerId (the folder they belong to) and a brainId (the brain they belong to).
Inside a page
A single page breaks down further when you query it. A page contains chunks, and each chunk contains chunk parts. The chunk part is the smallest retrievable unit, and it is what a query scores for relevance:graph_tree that ties them back together in this shape.
Public versus private
Every brain has anisPublic flag. It controls who is allowed to read the brain and everything inside it:
- A public brain is readable by anyone with a valid API key. The same applies to its containers and its nodes.
- A private brain is readable only by its owner.
isPublic set to true, which opens up read access at the database level for that brain and its whole subtree.
Access and security
Reading a brain and querying a brain take two different paths, and they resolve different sets of brains. This is the part worth understanding before you build against the API.- Read endpoints run as you. They use your API key, so row-level security lets you see any public brain plus any brain you own.
- Query endpoints do not run as you. They run under a shared Versuno service identity, so they resolve public brains by ID regardless of who owns them. Your API key is still required and still validated at the edge, but it is not the identity that reads the data.
- You cannot currently query a private brain through the public API, even one you own, because the query runs as the service identity rather than as you.
- The brain-level query is metered. Each call to
POST /brains/{id}/querycounts against your usage. The container-scoped query is not metered.
How a query runs
When you call a query endpoint, this is the pipeline it goes through:Search the brain
A vector search ranks chunk parts across the brain by similarity. You can narrow it to a single container, bias it toward named
entities, and cap the results with limit (1 to 20, default 5).Assemble the graph
The matched chunk parts are rolled back up into their chunks and pages, and the relations between objects are attached as
graph_context.success and error fields in the envelope rather than the status code. See the Query a brain endpoint for the full request and response shape.

